Amazon
SeattleSDE I 2014SDE II 2016Senior SDE 2019
A programming language for user interfaces
- Role
- Tech lead
- Team
- 10–12 engineers
- Scale
- part of ~80% of amazon.com pages
- Security
- Amazon's preferred XSS defense
- Focus
- language design, type systems, compilers, interop with other languages
- Stack
- Kotlin compiler; JVM and JavaScript targets
- Tooling
- language server, MCP server
I'm tech lead of the team that builds and owns an internal programming language for user interfaces: server-rendered, client-rendered, sparsely hydrated, and native. It's statically typed, compiles to the JVM and JavaScript, and has grown from a safe HTML templating language into a full UI language that lives alongside TypeScript, with a language server for editors and an MCP server for AI agents.
I set its direction with the team: a north star of an approachable language that catches problems in the compiler, so engineers and AI agents alike can build UI quickly and safely across Amazon's polyglot stacks, and a plan each year that moves it closer. I ground those calls in industry analysis, in what its users tell us, and in the compile-time metrics we built to catch regressions before they ship.
Its guarantees are built in. The compiler knows where every value lands in the markup, and its runtime escapes each one for exactly that place, so templates are safe from cross-site scripting by construction. Amazon's security organization names it the first-choice defense in server-rendered HTML. I led the ground-up redesign of its type system: familiar to any TypeScript developer, with types that are sound by construction, and every template's signature inferred.
I designed and built its reactivity, the model React, Svelte, and SwiftUI share: when state changes, only the markup that depends on it updates. The compiler tracks state through the type system, and each template compiles to a server render plus a client bundle that hydrates only its reactive regions. I led five engineers in delivering it, and it runs across thousands of Amazon shopping experiences.
Along the way, I've mentored engineers to seven promotions: five to SDE II, two to senior.
A front-end build system and asset pipeline
- Scale
- thousands of teams across Amazon shopping
- Stack
- JVM core (Java, Kotlin), Ruby, JavaScript
The front-end build tooling behind Amazon's retail pages (similar to Grunt, Gulp, or webpack), paired with the system that ships their assets to the CDN. Every page builds as a matrix of variants — device × locale × language × A/B test — with each combination sliced to carry only what it needs (the key to fast pages before HTTP/2), so each new dimension multiplies the build. As a core contributor, I introduced switching tools that let teams declare variants without building every combination, keeping builds fast as the matrix grows, and designed the plugin framework teams extend it with.
A front-end framework and component library
- Team
- 10–20 engineers
The foundation of Amazon's retail pages. I worked across it — the carousel on mobile, tablet, and desktop, sweeping refactors, a TV navigation interface for the web — and designed how new versions were released to product teams.