Design, implement, and maintain Python modules/packages in the modelling codebase; own components over time and steward their quality and usability for other teams.
Translate modelling methods into production‑quality code, collaborating with method owners in the Modelling team; ensure implementations are readable, tested, and traceable.
Improve code quality and developer experience by refactoring for clarity, strengthening interfaces and simplifying implementations.
Champion automated testing and TDD; driving the adoption of modern software engineering practices in the model development team.
Participate in code reviews and technical design discussions
Identifying and addressing architectural bottlenecks and opportunities to improve scalability and developer experience
Requirements
Professional Python experience (3+ years) in a commercial, team‑based software environment, delivering components used by other teams/customers
Strong software engineering fundamentals
Comfortable collaborating with Modelling, Research, and Product teams to implement methods as robust, maintainable code; motivated to raise standards for others
A relevant degree in a quantitative field such as Mathematics, Physics, Engineering, or Computer Science
An interest in working in the energy/decarbonization sector
Experience building software using Test Driven Development and Continuous Delivery (desirable)
Experience developing modelling or simulation software, or with mathematical optimisation (LPs/MIPs) - particularly in the energy industry (desirable)
Experience stewarding internal libraries/SDKs, packaging (pyproject.toml, Poetry/uv) and dependency management at scale (desirable)
Experience in managing or mentoring junior colleagues (desirable)