Skip to main content

Writing

Series

Multi-part posts that follow a single story from constraints to conclusions.

View all series
· 28 min read · Part 4 of 4

Streaming Excel to a Database Without Losing a Single Row

The data pipeline behind a warehouse system: exporting snapshots to Excel, streaming bulk imports over gRPC with typed error codes, staging tables, atomic database swaps, and the SQL Server migration that made it all possible.

· 22 min read · Part 3 of 4

Running a Warehouse System on a 4 GB Server with No Docker

The architecture behind a production warehouse system: Koa.js over Express, gRPC for process isolation, Unix pipes for log forwarding, systemd instead of Docker, and a polyglot monorepo where a Rust/WASM binary is just another npm package.

· 6 min read

Splitmix32: Thirteen Lines of Beautiful Randomness

I went looking for a seeded PRNG in TypeScript and found splitmix32, a 32-bit pseudorandom number generator so elegant it made me want to understand every single bit.

· 27 min read · Part 2 of 4

Three Generations of a Warehouse Routing Engine

From a Node.js solver built on npm libraries to a 144 KB Rust/WASM binary with Jump Point Search, compile-time code generation, and a nearest-neighbor + 2-opt solver that closes within 1% of the ILP optimum.

· 14 min read · Part 1 of 4

Walking Is the Most Expensive Warehouse Operation

How one engineer built a custom route optimization system for a small Italian warehouse: the problem, the constraints, and why naive pick sequences waste half an operator's shift.

· 12 min read

Barcode Scanners Are Keyboards With Extra Steps

From bars and spaces to keystrokes in your input field. How UPC-A barcodes encode data, how scanners decode them, and why your barcode reader acts like a keyboard.

· 5 min read

Working with Me

A user manual for collaborating with me: communication preferences, working style, and what I care about.

· 7 min read

Investigating `createRequire is not a function`

A debugging journey through webpack internals, WebAssembly loading, and ESM edge cases. Four dead ends before finding the fix.

· 9 min read · Part 3 of 3

Stochastic Greedy: Scaling Submodular Maximization to Massive Datasets

Stochastic Greedy replaces greedy's full scan with random subsampling, reducing runtime from O(nk) to O(n log(1/ε)) while losing only an additive ε in the approximation guarantee. This post covers the algorithm, its proof, and practical guidance.

· 13 min read · Part 2 of 3

The Greedy Algorithm for Submodular Maximization

The greedy algorithm achieves a (1 - 1/e) approximation for monotone submodular maximization, provably the best any efficient algorithm can do. This post covers the algorithm, its proof, Lazy Greedy, and when greedy fails.

· 15 min read · Part 1 of 3

An Introduction to Submodularity

A practical introduction to submodular functions, the mathematical framework behind diminishing returns, covering set functions, marginal gains, and real-world applications from sensor placement to influence maximization.

· 2 min read

Fixing "SDK Build Tools is Too Low" in React Native

A Gradle-based solution using afterEvaluate to permanently fix SDK Build Tools version mismatches across React Native Android dependencies.