I’m Nick Babcock, a software engineer with 10+ years of fullstack and DevOps experience forged in the fires as a startup’s foundational engineer.
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.
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.Dot or Not? A type safety story about file extensions
Published on: Should programmers expect file extensions to start with a dot or not? Or is there a way to approach the problem such that the answer doesn’t matter, as long as the given abstraction makes intent explicit and foolproof. See how tagged and opaque types fit nicely as a solution.Practical responsive image sprites for the web
Published on:An image sprite sheet is a collection of images combined into one, so that browsers don’t need to request each image separately.
How does one create a sprite sheet?
And how can we measure any potential benefit?
What problems can appear and how do we work around them?
Pitfalls of React Query
Published on: React Query is a staple in async state and data fetching management. In addition to saving me from reimplementing similar caching mechanisms and fine grained updates, it was also the first library that solidified the concept of client vs server state, and how they are fundamentally different. Nothing is without tradeoffs, so I wanted to shed light on some potential pitfalls, not to disparage React Query usage, but to increase awareness.You might not need a React animation library: transitions
Published on:While React animation libraries have seductive landing pages and can be powerful, consider whether you truly need one. These libraries can enhance user experience, but sometimes the simplest solution is the best one.
I find that my animation needs are met with just CSS, so let’s take a tour at of ways one can add effects to their web application.
The composition king: compound components
Published on: Repeatedly adding orthogonal properties to a React component causes unwieldy bloat. Transitioning to a compound component will invert control and allow clients the flexibility they need. It comes at a cost, though. What are these costs, can we mitigate them, and what are alternative solutions?The WebAssembly value proposition is write once, not performance
Published on: Too many lead with performance when talking about the benefits of Wasm. This is misguided as Wasm may not even beat JS in speed, much less native code. Instead the value proposition of Wasm comes from having the same codebase be able to target web use cases without reimplementating everything.The dark side of inlining and monomorphization
Published on: After introducing an incremental lexer that is generic over aRead
instance, compilation times quadrupled and output size tripled. What happened? And is it possible to claw back without any downsides?