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.
When React strict mode meets a one-way door
Published on: I’ve built several applications with transferring offscreen canvases to web workers in React, and the strict mode has been continual sticking point that LLMs seem inadequate in, so I figured I’d type up my thoughts.
Wasm is not an implementation detail
Published on: Stop inlining Wasm as base64 and using top level awaits. Learn why treating WebAssembly as an implementation detail hurts performance and how to properly bundle for Cloudflare, SIMD, and modern runtimes.
The serde optimization gauntlet: Wasm and arenas
Published on: Arena allocators are having a bit of a moment. I’m often hearing about them. I have a data model that is deserialized from 200MB of binary data in the browser via Wasm and performance is a key feature. Could arena allocators be a good fit?
Life after wasm-pack: an opinionated deconstruction
Published on: Wasm-pack, the rustwasm working group, and other Wasm related tools were sunset and archived in July 2025, after more than 5 years of being on life support. Since wasm-pack can be seen as an abstraction layer over several tools, what is an effective way to peel back this layer and use the tools directly?
Top-level await is a footgun: The Wasm worker edition
Published on: Web workers that load Wasm through an ES6 import with the help of bundler plugins can silently drop messages during startup. This happens because the top level await for Wasm’s asynchronous initialization blocks the worker’s message handler registration, creating a race condition that’s often invisible.
Are SIMD gather instructions underrated?
Published on: SIMD gather instructions seem incredibly useful, and I’ve measured they improve performance by 3x. If compiler can auto vectorize the equivalent scalar code, they must be underrated right?
The DuckDB and Arrow rabbit hole: data modeling adventures
Published on: I didn’t understand the hype around Duckdb until recently, where I wanted to share data and Duckdb was the perfect fit. While powerful, it has rough edges, such as limited ecosystem support for tagged unions and substantial Wasm payload sizes for web deployment. Still, DuckDB has me excited to revisit how I structure bespoke data queries.
A Bevy app entirely off the main thread
Published on: There are several options for how to structure a Bevy app for the web. I’m a proponent of shifting as much as possible to web workers, but shifting an entire Bevy app to a web worker is going to require elbow grease as we ditch the builtin windowing system.