Ryan Tornberg

Greenfield is a blast.
Brownfield is
the tougher game.

Brownfield is where I have done my best work. Software architect and player-coach engineering manager: I design the architecture, lead the team, and still write production code.

Work

Most of my career has been the systems nobody gets to rewrite from scratch: the ones already in production, already carrying money, prescriptions, or public records. The job is to change them without breaking what people depend on.

Platform migrations

Moving live products between frameworks, data stores and identity providers while they keep shipping. Recent examples: three production mobile apps moved from Xamarin to .NET MAUI with no break in releases, and a patient app's sign-in moving from Keycloak to Auth0, a multi-step cutover I am leading now.

Architecture with a paper trail

Decision records, spikes before commitments and designs that name what they gave up. I would rather spend a week comparing four messaging designs than a year living with the wrong one.

The questions upstream of the code

Most of what I am worth happens before anyone writes code: checking what is actually true, guarding the decisions that cannot be undone cheaply and writing plans specific enough that people argue with them.

Teams that run like small companies

I manage engineers and run the full performance cycle. I have run a product team as a self-contained business inside a larger company: its own roadmap, its own releases, its own results.

AI-assisted engineering you can review

I build the practice around the tools: independent review, claims marked as checked or unchecked and evaluations that catch it when the guidance an agent follows goes wrong. The workspace behind it has its own page.

Selected work

Four figures from my current work. The first two are architecture and planning. The last two come from the agent workspace my team develops in: how its work is measured, and how a gap gets fixed. Each figure links on its own. How the workspace works has its own page, with eleven more figures.

Systems register Every outside system we call. Architecture model Plain text in the repository. Every call names its data class. Commit gate, again in CI Unregistered system, unclassified call or stale diagram: it stops. Network map Zones, data classes, dependencies. Diagrams in the docs Regenerated, never hand-edited. Impact lookup Who calls this? What data crosses? drawn from checked on every commit generated
Every architecture view is generated from one text model, which a commit gate checks against the systems register. Every call in the model names the class of data it carries.
Share of what the team can finish by the cut-off All known must-ship work: 129% build cut-off cutover 29% over capacity about week 11 finished at the measured rate 100% 50% 0% 0 2 4 6 8 10 12 weeks from the forecast
At the team’s measured rate, must-ship work came to about 129% of what it could finish before the build cut-off, and it would not have fit by the cutover either. Leaders adjusted the timelines.
Verification share of agent actions seven changes one check 1 in 8 Where delegated work runs 62% smaller, cheaper models 38% frontier model by task
Both ratios are read out of session logs, not estimated: one action in eight is a verification step, and 62% of delegated work runs on smaller models.
"I had to ask a person" The escalation itself. Logged as a gap Not as user error. Fixed in the workspace By whoever hit it. the same question is not asked twice One team QA a director adopted by choice, never mandated
A question a developer has to escalate to a person is logged as a gap in the workspace, not as user error. Adoption spread by choice, never by mandate.

Background

I have built software for city governments, retirement plans, clinical research, defense research, e-commerce, and pharmacies. The first online payment system I built for the City of Tucson ran for more than a decade. Today I work on healthcare platforms that pharmacies across the country depend on.

I studied jazz before I studied software. The habits carry over: listen hard, keep time and know when to improvise.

I live in Tucson, Arizona and work remotely.

Contact

Email
RyanTornberg@gmail.com
LinkedIn
linkedin.com/in/rtornberg
Resume
Sent on request, by email.