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 is a founding role. Aurora's São Paulo office is an established modelling hub for the Americas, but the Origin Model Development team there is still to be built — and you'll be the one building it. You will lead a new cross-office squad within the Origin Model Development team — with existing Oxford-based engineers and São Paulo-based engineers that you will help recruit. If you're drawn to the early-stage work of standing up a team — hiring the first engineers, setting the working norms, earning technical authority by doing the work yourself — this is that job. Bridging the two sites and keeping the squad working as one is the heart of it. This is a hands-on technical leadership role — the technical work is the primary job, not delivery management alone. You will write and review production code alongside your squad, co-design the squad's module boundaries with a senior technical authority who holds final say on architecture contracts, and deliver new features and progressive migration from a mature Python codebase into a well-bounded, modern architecture. The codebase uses GAMS with MOSEK as the optimisation solver. Deep expertise in energy system and numerical optimisation is strongly preferred for this work. 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. Beyond personal productivity, this role contributes to building the agent workflows and tooling that raise the velocity of the whole team. If you have strong opinions about what good AI-assisted engineering actually looks like in production, this is an environment where those opinions matter. Running a cross-office team well is genuinely hard. Neither office is secondary to the other — the squad lead's job is to ensure São Paulo never becomes a remote execution arm for Oxford decisions. You will own the cohesion of the squad across two offices and two time zones — protecting the daily overlap window as synchronous time, and defaulting to async-first written decisions outside it. The São Paulo role requires 3 days a week in the office. Building a new team requires consistent in-person presence, and you will work closely with the existing teams already based there. Lead the squad's technical work hands-on — write and review production code as a core part of the role, not an occasional contribution. Co-design the squad's module boundaries and reusable interfaces with a senior technical authority who holds the final architecture contracts — contribute heavily to those design decisions while they remain the single decision-maker on seam boundaries. Drive the squad's delivery: board health, sprint cadence, stand-up, retrospective, velocity, and blocker removal — across two offices. Prevent office-line fracture — allocate work along the squad's seam, never along geographic lines. It is one squad. Protect the daily Oxford / São Paulo overlap window as synchronous time; default to written, recorded, async-first decisions outside it. Line-manage the São Paulo-based engineers in the squad: run 1:1s, write performance reviews, and provide ongoing development feedback. The Modelling Software Engineering Manager sets strategy, is the escalation point, and owns the formal process end-to-end — including compensation decisions. Found the São Paulo side of the squad from close to zero — the squad will grow over time, with the São Paulo side building out progressively, and you will be one of its first engineers. Shape roles and participate in interviewing recruits alongside the Modelling Software Engineering Manager, who owns hiring end-to-end. Work closely with peer squad leads to distribute work across squads and surface commonalities — so squads do not reimplement the same thing; route genuinely cross-cutting architecture decisions through the senior technical authority who owns the architecture contracts. Design features generic enough to serve multiple regions through the squad's interface — while actively resisting premature generalisation. Generic enough, not overcomplicated.