We’re looking for a Principal Software Engineer to join our digital product delivery function, shaping the technical direction of client engagements and delivering high-quality outcomes through strategic influence, hands-on support, and deep domain knowledge.
Requirements
- Experience in a consulting environment with client engagements
- Ability to influence senior client stakeholders and support teams with technology and process enablers to support continuous delivery and DevOps ways of working
- Experience with multiple programming languages, in web and/or mobile and multiple paradigms (e.g. declarative, functional, object oriented...)
- Experience with establishing good engineering practice focused on lean, cross-discipline, continuous delivery
- Experience with cloud infrastructure such as Azure, GCP, AWS, and understanding of progressive ways of managing infrastructure, such as infrastructure-as-code, cluster orchestration tools (e.g. Docker, K8s)
- Experience with setting up modern CI/CD pipelines to support continuous delivery and deployment and good understanding of the trade-offs (e.g. pipelines-as-code, monorepos, GitOps, branching and release strategies, etc.)
- Experience in designing system-level architecture and navigating trade-offs in web based systems (e.g. Microservices, REST APIs, CQRS)
- An understanding of information security including common attack vectors, awareness of relevant regulation and restrictions (e.g. PCI, GDPR...)
- Experience in design and testing strategies to enable gradual evolution of systems over time
- Good understanding of data storage approaches and tools and trade-offs involved (RBDMSs, key-value stores, column stores, log storage,...)
- Good understanding of applying cryptography in software development (e.g. TLS, PKI, HMAC, hashing algorithms, etc.)
- Good understanding of algorithms and data structures to solve distributed computing problems (e.g. content-based addressing, immutable data structures, CRDTs, consensus protocols, merkle DAGs, etc.