
Principal Software Engineer – Modelling
Aurora Energy Research
full-time
Posted on:
Location: 🇬🇧 United Kingdom
Visit company websiteJob Level
Lead
Tech Stack
Python
About the role
- Be the in-house expert for all battery and asset energy dispatch modelling
- 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
- Knowledge of power and energy trading methodologies
- Familiarity with mathematical optimisation methods
- Strong software engineering fundamentals
- Experience of leading others in technical work
- An interest in working in the energy/decarbonization sector
- Professional Python experience (3+ years) in a commercial, team‑based software environment, delivering components used by other teams/customers
- 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
- Desirable attributes:
- Experience building software using Test Driven Development and Continuous Delivery
- Experience developing modelling or simulation software, or with mathematical optimisation (LPs/MIPs) - particularly in the energy industry
- Experience in energy trading or energy generation asset simulation
- Experience stewarding internal libraries/SDKs, packaging (pyproject.toml, Poetry/uv) and dependency management at scale
- Experience in managing or mentoring junior colleagues