2025 year in review

Another 365 in the bag. Last year I migrated to newer technologies and made some incremental speed related discoveries. Let's get to it!
Get back to compiling
I continued to iterate on Speedrun with 27 releases. Among the highlights, it now seamlessly works with the Console's new multisession support and colorizes favicons. I did fewer unhinged videos, but this is me with a wild beard channeling xkcd #303 and showcasing the 1-click deeplink feature.
Blog like it's 2004
This year's blog themes were migrations and speed. Migrations are a necessary but thankless slog and I migrated from the Serverless Framework 3 to the CDK and from Node.js to LLRT. This made my api over 50% faster. While we're talking about speed, I also wrote about the techniques I use to shave 90ms off my coldstarts with Node 22. I'm convinced blogging is one of the better ways of getting information out there so I'll keep it up. A blog outlasts the zeitgeist of the social timeline, is easily consumed without headphones in public and allows you to surgically convey exactly what you want without any retakes.
A failure to launch
Something interesting about Lambda coldstarts between Node 20 and Node 22. When you use the AWS Javascript SDK V3, Node 22 has a 50 ms longer coldstart than Node 20. If you don't use the AWS Javascript SDK, the coldstart is similar. I haven't been able to explain it yet.
— David Behroozi (@rootothez.bsky.social) February 26, 2025 at 11:37 AM
[image or embed]
When I discovered that the AWS JavaScript V3 SDK was adding 50 ms to your Lambda coldstarts when using Node 22, I traced it back to the SDK importing the http request module whether you use http or not. I cut a GitHub issue and further traced it to changes made in Node 22 that loaded the heavyweight undici library when using http. Unfortunately, neither issue was acted on so the issue persists. I did spend several hours trying to fix it myself in the smithy codebase, but alas my attempts failed so I patched around the problem and gave up. I let Claude have a go at it today and it looked promising but it didn't compile.
Did I do what I said I would?
Yes. Last year I got stuck on Day 16b of Advent of Code 2024, but vowed not to crack. In February after some real struggle, I completed all 25 days. Huzzah! I also gave a talk at the local JavaScript meetup called Speedrunning OnCall and completed Total TypeScript, one of the courses I bought but hadn't really started. New to the rotation of conferences this year was CascadiaJS. It was refreshingly non-commercial and filled with good people, so I'll be back.
What's next
A video game?
I got my start in video games and have always been interested in game development. My GitHub avatar is actually pixel art from the game I made when I was 16. I have a mediocre idea with ghosts and time travel that I may pursue.
Grab AI by the horns
I'll be honest, I haven't embraced AI. However, when I visited London, a developer told me they had only used Claude to write code for the last month so it's clearly not going away. Now that I've taken Matt Pocock's course on building a digital assistant this year I'll give AI a bit more rope to figure out how I can incorporate it beyond creating hero images.
Cheers
Thanks for reading. May your 2026 involve some hand-written code and may it compile without errors.