
I’m Nick Babcock, a software engineer with 10+ years of fullstack and DevOps experience earned as the principal developer on flagship products.
You might know me from my open source work, or from one of my many articles covering topics from authoring Wasm libraries to intricacies in Rust to edge compute to React component design.


Default musl allocator considered harmful (to performance)
Published on: In a real world benchmark, the default musl allocator caused a 7x slowdown compared to other allocators. I recommend all Rust projects immediately swap to a different allocator in a musl environment.
The right tool for the job: positioned IO for Zip archives
Published on: What is thepread
syscall and why do Zip implementations favor it to unlock powerful concurrent decompression? And how can we emulate pread
on systems without that syscall? And what does Go and .NET have to do with it?

Keeping up with the fronted Joneses: streaming server side rendering
Published on:Streaming server side rendering. Edge compute. Web app architecture advancements are making classic SPAs appear long in the tooth. While it can be irritating to try and keep up with these advancements, they bring tangible benefits.
It’s time to say goodbye Next.js and hello Remix.

Cloudflare's forbidden Steam
Published on: Cloudflare workers face 403 forbidden errors with Steam’s OpenID. Is Steam detecting Cloudflare via IP addresses or is there a difference in what requests originating from Cloudflare look like?
The hidden nuance of the JavaScript File API
Published on:Did you know that the files originating from a file input don’t have all their data buffered into memory? Seems intuitive that this is how JS would work, otherwise web sites operating over files would be terribly memory inefficient.
Don’t let this efficient File
deceive you.

SQL reduction: ask for forgiveness
Published on: Be on the lookout for consolidating and reducing the number of SQL statements to decrease the surface area for logical bugs and improve performance. One technique is to restructure application logic to ask the database for forgiveness: assume the happy path and roll back after determining the statement touched unintended rows. Your database abstraction may be getting in the way.
Next.js on Cloudflare: a gem with rough edges
Published on: In a parallel universe, Vercel’s pricing would be more transparent, and I would have never checked out Cloudflare. But it’s not, and I did. Despite rough edges, Cloudflare undoubtedly has the edge when it comes to value and performance.
The accidental journey to TrueNAS Scale
Published on: Last month I found myself in the unenviable position of having just executed the most dangerous command on the boot drive of a NAS. At first there was panic, but I decided to look on the bright side and take this opportunity for a fresh start with TrueNAS Scale.