Surviving the (parsing) Storm
How an event-loop blocking issue turned into a multi-week review of per-key revivers, schema-driven walkers, simdjson, V8 codegen, and ultimately a custom Serialization/Deserialization pipeline.
Real events, real donors, real money. All passing through the same platform, on the same night. This blog is where we think out loud about keeping a large codebase fast, making reliability boring, getting honest answers out of our observability, and the rewrites and improvements we build and ship to meet the needs of our charity partners.
The calls we made, the rewrites we're glad we did, and the incidents we learned from.
How an event-loop blocking issue turned into a multi-week review of per-key revivers, schema-driven walkers, simdjson, V8 codegen, and ultimately a custom Serialization/Deserialization pipeline.
Working outline for an article exploring the structural parallels between the charity sector and open source software — both critical, both chronically underfunded, both running on a model that assumes goodwill is enough.
One query parameter. No code changes. 59% faster at P95. 68% faster at P99. That's what deleting a stray flag from our Prisma connection string did to database performance across our platform. The flag had been silently taxing every query for months after a migration we thought was complete.
Reflections on AI agents in software development, embracing automation without losing the magic of creation, and how Trellis approaches AI adoption as a supplement to developers rather than a replacement.
A look back at 2025, what we worked on, how fast (or slow?) we moved, state of the codebase and the major projects we worked on.
How we built a comprehensive testing strategy that lets us move fast without sacrificing stability, featuring our layered approach from unit tests to load testing with [K6](https://k6.io), and the tools that power our quality-first culture.
An in-depth analysis of our Nx task graph, target distribution, and how Nx Cloud has saved us over 26 years of computation time across our monorepo.
A deep dive into how we've architected our Nx workspace to support 14 applications and 1200+ libraries, including custom plugins, module boundaries, and deployment strategies.
Performance comparison between Angular v11 with Webpack 4 and Angular v12 with Webpack 5, including build times and bundle sizes.
A guide to converting legacy codebases to use Nx's incremental compilation, including common issues and solutions.