
I’m Nick Babcock, a software engineer with 10+ years of fullstack and DevOps experience who loves blogging about everything from Wasm benchmarks (and how to author Wasm libraries), to designing responsive React components, to system design of PDX Tools.


MySQL text ID collation: tread carefully
Published on: Using a randomly generated text ID, like Nano ID, in your MySQL table? Then you should tweak the default collation for the column, or re-run the collision probability with a reduced alphabet as by default MySQL can consider two Nano IDs equal even if they differ in casing.
Decapitation: a migration from antd to headless story
Published on: With headless component libraries on the rise, I decided to take a look at them after I couldn’t update Antd 4 or Next.js to their next versions. This is my story.
Advantages of opaque types over value objects
Published on: Creating an immutable object with value semantics can be tricky to get right when the Javascript world revolves around referential equality and different implementations of structural equality. And even once solved, transporting and restoring this value from JSON can be unergonomic. This is where opaque types have a chance to shine.
Too edgy, a serverless search
Published on: Memory comes at a premium when looking to host an application, and sometimes edge provider limits prohibit an otherwise routine deployment. So if the plan is spin out memory hungry functions into separate microservices, which serverless provider provides the best local experience and least vendor lock-in?
There and back again with zstd zips
Published on: A couple years ago, I transitioned zips to brotli compressed tarballs to take advantage of the Content-Encoding header. Now, after running benchmarks showing that zstd in user space has neglibigle costs, I’m transitioning back to zip, but this time files are compressed with zstd.
New browser APIs unlock new possibilities
Published on: When new browser APIs get announced or are implemented, there is an inevitable push back where people lament privacy, security, or how browsers are too bloated. From someone who uses new browser APIs, they are a welcomed sight as they make the impossible, possible.
CycleList: a cyclical activity tracker
Published on: I, unironically, wrote a todo app, CycleList, where completing a task has it fall to the bottom of the list with an updated completed time. Tasks completed least recently then bubble up to the top, creating a sort of cycle.
Designing Responsive React Components for 2023
Published on: Designing responsive web sites is a tale as old as CSS media queries, but with the proliferation of JS component libraries, like React, there is a trap that is starting to become a thorn in the side of rising popularity of server-side rendered (SSR) React.