Architecture for a new greenfield web platform at a long-established scientific software company.
The work
A greenfield web platform, built alongside a suite of long-established desktop applications and intended to carry the next generation of the company’s products. It puts the company’s chemistry simulation engine behind configurable operator workflows.
What I was responsible for
- Owning the architecture and making the major technical decisions, including reversing earlier ones where they were already constraining the platform
- Building the base architecture: React and TypeScript over a C# backend, with plant definitions and widget schemas as JSON documents in object storage and PostgreSQL for the relational side
- Calculations as JSON request and response against the containerised simulation engine, with every request and response persisted for replay and audit
- A custom SVG renderer for the plant diagram, handling thousands of process nodes and the streams between them, with a congestion model driving layout and spacing, built while prototyping the move of a desktop tool to the web
- A view-aware agent session, aware of what is on the page and proposing a batch of changes for a person to review, refine and accept or decline, designed as multiple readers with a single writer and extensible to concurrent writers through deltas and branching history
- Establishing how architectural decisions got made: researched, written up and circulated for agreement rather than announced
- Setting engineering standards across the team: visual regression on Playwright and Storybook, localisation through Paraglide, accessibility through axe, and dark mode, all treated as core testable concerns from the start rather than retrofits
- Navigating the simulation engine’s long-established Fortran and C++ codebase, and investigating statistical approaches to speeding up its calculations
- Working directly with the company’s domain experts in place of a product owner
- Translating between the exec team and the engineering team
Agent-assisted development
- Setting standards for how the team got useful output from agents before code reached review
- My own front end over Azure DevOps, adding self-review and agent review to pull requests and wired into a markdown knowledge store
- A terminal UI running several concurrent Claude Code sessions as tabs against that same knowledge base