About this role
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. The models span power markets across the globe — translating complex energy system dynamics into robust, scalable software that underpins our market outlooks, client insights, and software platforms.
This role sits within a cross-office squad that bridges Aurora's São Paulo and Oxford offices. You will be among the first engineers hired into the São Paulo side of the squad — helping to establish a team that works as one across two time zones, not as two separate groups. Your squad lead is based in São Paulo alongside you; Oxford-based engineers in your squad are your peers.
- The day-to-day work is substantive software engineering on a Python codebase.
- You will take full ownership of medium-complexity features and components — from design through to production operation.
- The codebase uses GAMS with MOSEK as the optimisation solver; no prior experience with either is required.
- The work spans new feature development and progressive migration of existing features from a mature legacy codebase into a well-bounded, modern architecture — a mix of building new capability and improving the foundations it runs on.
- Aurora is investing actively in AI-assisted engineering — not as a policy, but as a practice.
- Engineers here are expected to use AI tools fluently across the full development workflow: writing, reviewing, testing, and analysing code.
- If you have experience with AI-assisted engineering and a view on where it genuinely adds value, this is an environment where that matters.
- Take full ownership of medium-complexity features and components end-to-end — design, implementation, testing, and production operation; you are responsible for their health over time, not just at point of delivery.
- Break down and estimate your own work reliably; deliver in increments so value is visible early and feedback arrives continuously.
- Review others' code substantively — give technical feedback that helps the author improve, not just flags issues.
- Contribute to technical discussions in the squad; offer solutions, not just problems.
- Actively support the engineers around you — junior engineers in particular — in technical and non-technical areas.
- Operate within the cross-office squad as a full peer — participate in shared ceremonies, communicate clearly across time zones, and default to written decisions so neither office is blocked.