Software Developer, Software Engineer, Python
Listed on 2026-10-10
-
Software Development
Software Engineer, Python, Backend Developer, SQL Developer
Location of role
Oxford, UK
DepartmentTranslational Medicine
Key ResponsibilitiesMain purpose of the role
Development and maintenance of robust, production-quality software that supports Immunocore’s scientific and operational activities. The role will focus on designing, developing and supporting scientific data-driven applications, integrated analytic workflows and vendor-based platforms, ensuring these systems remain maintainable, reliable, secure, well-documented and scalable. The Software Developer will work closely with scientific teams to translate complex research and operational requirements into well-designed software solutions that will help scientific teams work efficiently and make informed decisions.
The role will contribute across the software lifecycle, from requirements gathering and implementation, to testing, deployment and ongoing support.
- Design, develop, test and maintain production-quality software applications and components for Immunocore systems using Python/Django and/or JavaScript/React/HTML/CSS.
- Contribute to the maintenance, implementation and optimisation of key bioinformatic analysis pipelines to process scientific data efficiently and reproducibly.
- Develop and maintain automated test suites to ensure software quality, reliability and maintainability.
- Collaborate with scientific and operational stakeholders to gather, analyse, refine, and document software requirements, ensuring alignment with business and research objectives.
- Design and maintain database schemas, data models and SQL queries to support efficient, reliable and scalable data management.
- Plan and implement data migrations to support system upgrades, platform changes and legacy system replacement while maintaining data integrity.
- Develop a strong understanding of scientific workflows and propose technical solutions to improve data interoperability, workflow automation and operational efficiency.
- Take ownership of software features and projects throughout their lifecycle, including design, implementation, testing and ongoing support, delivering high-quality, well-tested solutions on time.
- Collaborate with team members through peer-review practices such as code reviews and pair programming to maintain code quality, promote best practices, and facilitate knowledge transfer within the team.
- Support the deployment, monitoring and troubleshooting of production systems, contributing to their reliability, performance and continuous improvement.
Experience & knowledge
Essential- Demonstrated professional experience developing web applications using Python/Django and/or JavaScript/React
- Strong understanding of relational database design, data modelling, query optimisation and SQL.
- Experience working within collaborative Git-based version control workflows, including branching, code review, merge requests and conflict resolution.
- Experience writing and maintaining clear and reliable automated tests.
- Understanding of software design principles, maintainable architecture and modern development practices.
- Excellent communication skills to interact effectively and build requirements with technical and non-technical stakeholders.
- Experience collaborating within a multi-disciplinary team.
- Strong willingness to learn new tools and libraries to continuously improve technical skills and stay up to date with industry trends
- Demonstrated ability to take ownership of software development projects through design, implementation, testing and support.
- Experience as a bioinformatician/data analyst, enabling insights into biological data processing and analysis.
- Experience in writing scientific software to address specific research needs.
- Experience supporting CI/CD pipelines and automated deployment practices.
- Fa…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).