Tech Lead Platform Engineer / London
The Technical Lead in the Platform Group will be working on delivery of a new software platform designed according to service-oriented architecture with web UI in a container-based environment. The Technical Lead will be skilled and experienced in delivering solutions on a Digital platform with good understanding of distributed programming in an event-driven service architecture, working with versioned APIs and services, using web protocols such as REST and cloud utilities such as Docker and Kubernetes. The Technical Lead will be skilled in general software engineering, full stack development, as well as digital specialities, and will be experienced working successfully and accountably within a scrum team, delivering good quality solutions. Will have leadership skills to successfully organize and direct a small engineering team and work with distributed teams. He or she will be a confident and supportive guide and mentor for more junior team members and will participate as a thoughtful, credible technical advisor in general technical discussions.
- Develop and enhance a suite of components and Services within a Domain-based service-oriented platform hosted on Containers for cloud and on premises deployment. Components and Services will be used by other development teams to build Client products. The platform will include utilities for identity and access, service mesh, logging, messaging, monitoring, composable UI, administration, storage management etc.
- Design and implement APIs according to architectural guidelines. For this a clear understanding of micro services architecture and RESTful API design would be useful, along with good understanding of strategies for API backward compatibility and versioning.
- Help to enhance our CI/CD pipeline to make all aspects of product development, deployment and maintenance fast and efficient. Useful experience here would be with Docker, Kubernetes and their associated deployment utilities, APIs, and CLI tooling, configuring and working with CI/CD pipelines in Azure DevOps, Jenkins or similar suites
- Full stack development from web-based UI development down to messaging and storage solutions, using preferred specialist skills and knowledge wherever appropriate, but also performing generalist tasks within the scrum team to ensure timely delivery of effective and high-quality solutions
- Incorporate open-source tools into the foundations of the Client Platform for functions with good industry solutions - such as message passing or event management.
- Test solutions before handing them off to QA teams, enhancing and using automated unit, integration, functional, and performance tests.
- From time to time apply skills to refactoring or reworking legacy software solutions to run on the new Client Platform. For this some experience of Microsoft desktop architectures and conventions would be useful.
- Collaborate closely with multi-disciplinary teams on planning, designing, testing and documenting standards.
- Take personal accountability for the timeliness and quality of deliverables, working on assigned tasks as part of a team, but understanding when it is necessary to ask for help to overcome blockers
- Share design, process, and architecture learnings with other developers. Assist colleagues in an open way and guide more junior team members.
- Take opportunities for training and learning to keep up to date with industry trends and standards in the healthcare industry and the wider software engineering domain
- Use personal skills and ingenuity to deliver valuable innovations which will make a difference for healthcare professionals and patients who depend on our solutions.
Relevant Knowledge, skills and competencies
- Bachelor's degree in Computer Science or a related field
- 8+ years of relevant experience, preferably for medical applications.
- Significant .NET Platform (C#, .NET Core)
- Back end: Microservices, REST APIs (openAPI, Swagger), MS SQL Node, Rabbit MQ, Kafka
- Infrastructure: Docker, Kubernetes, Terraform, gRPC, VMware, Azure DevOps, CI/CD, Sonarqube
- Understanding and experience of version management, with knowledge of API Gateways
- Familiarity with Familiarity with various design patterns such as Domain Driven Design, CQRS and Event Sourcing
- Confidence with asynchronous programming and event driven systems using Message queues
- Proficient with Shell Scripting using Linux Shell / Bash and/or Windows Powershell.
- Experience of working with Agile delivery processes- understanding of SAFE agile practices
- Excellent understanding and experience of the overall SDLC for application development
- Experience of working in a strongly regulated industry - preferably healthcare
- Strong technical communication skills, and the ability to influence others with articulation and insight