Tony Tang, Head of Engineering at Fonts Ninja. Large-scale TypeScript, built faster with AI.
I'm Tony. I've spent about ten years building software and the last several leading it, going from writing TypeScript systems to running the teams that keep them standing. Most of that work has had the same shape: take something that no longer scales and rebuild it into something that does.
These days I build faster than I ever have, because AI is part of how I work, not a gimmick bolted on the side. I'm taking my team AI-first and writing about what that actually looks like, where the leverage is real and where you still have to check the work yourself. I help other engineers learn to work this way too.
Start here
Learn Effect
A narrated, animated-code course on Effect: you watch the code build itself and hear why each move earns its place.
First 4 lessons free.
A small world that runs on TypeScript.
Everything I work on, built as one system you can walk around. Drag to turn it, pick a place to visit.
-
01 · TypeScript
The Type Foundry
Every block has exactly one slot it fits. Watch for the ones that don't: the compiler throws them out before they ship. That's the job of types, making the wrong thing impossible to build.
-
02 · AI
The Core
The agents do the carrying, faster than any team I've run. They still only build where the types allow, and nothing lands without someone checking it.
-
03 · System design
The City
Thousands of new sites a day come in through one gate. The queue absorbs the bursts, the workers take what they can handle, and the store never feels the spike.
-
04 · Migrations
The Bridge
Millions of records crossing from the old store to the new one while traffic keeps flowing: dual-write, backfill, verify, cut over. Nobody notices, and that's the point.
-
05 · Teaching
The Lighthouse
Everything I learn the hard way, I write down so the next engineer gets there faster. Those paper planes are lessons, heading out.
-
06 · Review
The Reviewer
AI makes building fast. Judgment is what keeps it standing, so every block that lands passes under these glasses first.
Drag to turn the world No models, no textures: every shape here is TypeScript.
The path so far
- 2025–now
Head of Engineering / Fonts Ninja
Leading a team of five, taking us AI-first while migrating legacy systems to ones that scale: we process thousands of new sites a day. The leverage is real, but someone still checks the work.
- 2020–2025
Lead Developer / Planity
Grew from developer to lead of a team of six, running real scale: Lambda and DynamoDB serving hundreds of appointments a minute, and a zero-downtime stats migration to Elasticsearch that came out faster and cheaper.
- 2017–2019
Analyst Programmer / LCL
My first real team, inside a bank, where best practices stopped being theory.
- 2016–2017
Web Developer / FWA
My first job: keeping a multinational's critical stock system alive. Legacy code you cannot break teaches you fast.
Writing
All articles →Featured essay
Your best practices are suggestions. Effect makes them law.
Agents copy whatever your codebase already does, and convention can't stop them. I went deep enough on Effect to build a course on it. Here's why the compiler is the reviewer you actually need.
Right now I'm taking my team AI-first, and writing down what actually works. If that's your world too…
Say hello.
Bring me something you're scaling, an AI workflow that isn't pulling its weight yet, or a type you can't make behave: I read everything. I take on a couple of 1:1 mentees when the fit's right.