Job reference: P2412
Senior Software Engineer
You'll be working on a range of projects, but with a focus on digiLab's exciting flagship product twinLab.
Role and Responsibilities:
Key responsibilities of this role are to:
- Collaborate with a cross-functional team to design, develop, and maintain high-quality software solutions.
- Contribute to the architectural design, development, testing, and deployment of software applications.
- Apply security best practices throughout the software development lifecycle. Mentor and guide junior engineers, fostering a collaborative and learning-oriented environment.
- Implement and adhere to software design patterns, SOLID principles, and architectural best practices.
- Demonstrate a deep understanding of CI/CD pipelines and ensure efficient deployment processes.
- Apply knowledge of site reliability engineering to enhance system reliability and performance.
- Champion “Scrum” and make strong contributions to team-process improvements
- Collaborate with product management to understand and translate business requirements into technical solutions.
- Provide technical support to customers and lead diagnosis and mitigation in incident management investigations
- Ensure adherence to RESTful API design principles.
About you:
Key qualifications for this role are:
- 3-5 years of industry experience in (scientific) software development.
- Experience with DevOps and MLOps.
Desired technical qualifications include:
- Master’s level qualification in computer science or related degree.
- 2-5+ years of professional experience with collaborative software development.
- Deep understanding of Python.
- Deep understanding of Linux, bash, and the command line.
- Familiarity with modern, statistical machine learning and AI, as well as with the Numpy, Scipy, and Pandas libraries.
- Ability to write logical, consistent, self-explanatory code.
- Experience with security best practices and user-account management.
- Experience with RESTful API design and best practices.
- Experience of AWS best practices, as well as experience with : IAM; Lambda; S3; CloudWatch; CloudFormation; API Gateway; ECR; EC2; Cognito.
- Strong understanding of software design patterns, SOLID and DRY principles, and architectural patterns.
- Experience with Git/GitHub and best practices.
- Experience configuring and using CI/CD pipelines.
- Knowledge of the software testing pyramid and of types of automated testing (smoke; component; unit; performance; load; end-to-end).
- Experience with Docker and other containerisation platforms.
- Knowledge of deployment-reliability engineering and the ability to implement reliability best practices.
Team and communication:
- Proven ability to collaborate and work well as part of a fast-paced “agile” team, preferably via “scrum”.
- Excellent communication and interpersonal skills.
- Proven ability to lead and mentor team members.
In addition to the above, a couple of 'nice to haves' are:
- A PhD in a STEM field.
- Experience with front-end development: HTML; CSS; React; Javascript/Typescript.
- Experience with UI/UX design principles.
- Experience with PyTorch or other deep-learning libraries.
- An understanding of Bayesian statistics.
We offer a range of additional benefits, including:
- 4 day working week
- Employee Assistance Programme (EAP) scheme
- BUPA private health care (via salary sacrifice)