Principal Software Engineer (Node.js)
At Deimos , we're on a mission to become Africa's number one multi-cloud partner - leading the way in implementation, migration, and modernisation across AWS, Google Cloud, Azure, Huawei, et al. We combine this with bespoke software engineering services and our own homegrown products (Salus, Patrol, and others in incubation) to help businesses transform, scale, and thrive.
We're an Africa-based team passionate about implementing engineering best practices. We leverage the latest technologies, and build globally competitive solutions for our clients. With Deimos being one of the two moons of Mars, we like to refer to ourselves as "Martians", who are on a mission to Mars, together.
Our teams value the ability to learn and adapt to technology changes while appreciating solid foundational design and the craft of software engineering. As such, our teams enjoy working with various clients who have different problems to solve. If this sounds like you, you would be an ideal fit for our environment.
Note: You must be based in one of the countries we currently hire in - in Africa or the UK.
Role Overview
We are looking for an experienced Principal Software Engineer to join our Professional Services team. You will build software solutions across a multitude of domains, ensuring that each project is done with scalability, maintainability, performance, security, and operational excellence in mind.
You will be expected to fill the role of a technical lead while providing guidance and mentorship within the team. You will work closely with the Scrum POs, Engineering Managers and Directors to ensure quality across all projects Deimos participates in. You will collaborate with other leads to constantly improve our processes, technologies, and architectures.
This role does not entail managing people directly, but it does entail managing the quality of the work output at Deimos . You will report to a Director of Software Engineering who is on a mission to deliver high-value projects built to the best of our ability.
What will this person be doing:
- End-to-End System Ownership
Own the architecture and lifecycle of critical systems—from design through production—ensuring they are scalable, resilient, observable, and operationally efficient. Drive long-term maintainability and reduce technical debt at a system-wide level.
- Cloud-Native & Distributed Systems Engineering
Design and build high-scale, distributed services using modern Node.js and TypeScript, with strong emphasis on containerization (Docker), orchestration (e.g., Kubernetes), and cloud-native patterns (event-driven, asynchronous processing, fault tolerance).
- Architectural Leadership Across Domains
Define and evolve system architecture across multiple teams and services. Lead the decomposition of monolithic systems into well-bounded, loosely coupled microservices aligned to business domains.
- Technical Strategy & Decision Authority
Act as a technical authority in the organization—evaluating and introducing frameworks, tools, and engineering practices. Make high-impact decisions balancing trade-offs between scalability, cost, performance, and delivery speed.
- API & Integration Design
Design robust, versioned, and well-governed APIs (REST/GraphQL/event-driven), ensuring consistency, performance, and developer usability across internal and external consumers.
- Operational Excellence & Observability
Drive best practices around logging, monitoring, tracing, and alerting. Ensure systems are production-ready with clear SLOs/SLAs and proactive incident management strategies.
- Engineering Quality & Standards
Set the benchmark for code quality, testing strategy (unit, integration, contract, performance), and CI/CD practices. Actively review and guide implementation to maintain high engineering standards.
- Security & Compliance by Design
Embed security best practices (authentication, authorization, data protection, secrets management) into system architecture and delivery p