Modelling Software Engineer
Modelling Software Engineer joining Aurora's Origin Model Development team in Oxford (hybrid), owning features end-to-end in the Python-based energy forecasting platform that predicts power prices and investment across 20+ electricity markets, with GAMS/MOSEK optimisation running on Docker and AWS.
- Compensation
- Not disclosed
- Location
- Oxford, Oxford
- Work setup
- Hybrid
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 2+ years
- Category
- Software engineering
- Posted
Skills
Must have
- 2–4 years of professional software engineering experience with a track record of independently owning production software
- Strong fundamentals in testing, clean module design, and maintainable code; Python is the primary language
- Writes automated tests as a normal part of work
- Track record of code review, giving and receiving constructive technical feedback
- Comfortable breaking down and estimating work independently and delivering reliably
- Thinks about the 'why' before the 'how' and understands business/user value
- Collaborative; actively supports others in the squad, including junior engineers
- Own features end-to-end: requirements, design, implementation, testing, deployment, and live operation
- Use AI tooling to write, review, test, and analyse code
Nice to have
- Familiarity with agile delivery in squad-based teams
- Hands-on experience with AI-assisted engineering
- Experience with scientific computing, data pipelines, platform engineering, or domain-specific software (energy, finance, or similar)
- Knowledge of mathematical optimisation (LP or MIP) from energy systems, operations research, or quantitative finance
Full description
The Origin Model sits at the centre of Aurora's forecasting capability, allowing Aurora to help governments, investors, and utilities make billion-dollar decisions on the journey to net zero. It forecasts power prices, generation, capacity expansion, and investment across more than 20 electricity markets worldwide, translating complex energy system dynamics into robust, scalable software that underpins our market outlooks, client insights, and software platforms. The Origin model is a substantial Python codebase, with optimisation components written in GAMS and solved using MOSEK. Prior experience with mathematical optimisation is not required. Models are executed on Docker containers supported by an AWS-based infrastructure.
You'll join one of the squads in the Origin Model Development team, a squad of 4–7 engineers working alongside a product representative. You'll own features from requirements through adoption to production. Much of the work is about making complex model concepts easier to understand and finding the core set of functionality that meets the needs of diverse power markets in a scalable way. We use AI tooling across the development process not just for writing code, and you'll help us find where it genuinely adds value.
Aurora takes the work seriously. We do not take ourselves too seriously. The team that operates well is one where people are direct, admit mistakes, and enjoy the work. The person in this role will help maintain this culture.
- Own features and components end-to-end: requirements, design, implementation, testing, deployment, and live operation. You operate what you build, not just ship it.
- Break down and estimate your own work accurately, and deliver to those estimates reliably. Deliver in increments so value is visible early and feedback arrives continuously.
- Review others' code regularly, giving substantive, constructive feedback that helps the author improve, not just catching bugs.
- Identifying and championing best practices and processes for software development.
- Write maintainable, robust code. Favour simple solutions over complex ones, and treat operational requirements (logging, scalability, security) as part of the design, not an afterthought.
- Use AI tooling to write, review, test, and analyse code, and help shape how the team applies it.
- Actively support others in the squad, both junior engineers and those with varied backgrounds. You don't need to be their line manager to make a difference to their development.
Required attributes:
- 2–4 years of professional software engineering experience, with a track record of independently owning production software.
- Strong fundamentals in testing, clean module design, and maintainable code. Python is the primary language of the codebase.
- You write automated tests as a normal part of your work.