Featured post what's this? ✨ Extremely Personal Software and the Collapse of the Talent Pipeline Open source software is changing, and there's a new strain / a new breed of tooling: Extremely Personal Software (EPS). Skilled programmers will reap most of the benefits, while the market adjusts and people figure out how to bring this new workflow to th...
I don't know if I like working at higher levels of abstraction AI tools push us to higher abstraction. I'm not sure I like what that costs us.
Why Vibe Coding Won't Build More Successful Products. Why vibe coding isn't shipping more successful products. More Code ≠ More Products.
Hiding code in code - Hart Traveller You can hide arbitrary code (or any data for that matter) in self executing code. A neat example and a python package (PyPi | GitHub) are included.
Exclusive scheduled jobs using database locks Using locks implemented as rows in an SQL database enables running scheduled background jobs in an application, providing a best-effort guarantee that only one application instance at a time runs …
Beating App Store review: lessons from shipping a minimal indie game What App Store ‘Minimum Functionality’ really means, based on shipping a focused, minimal indie game and navigating multiple review rejections.
Building Better Country Selects A practical UX critique of the standard country dropdown, with guidance for better search, ordering, labeling, and implementation.
Breaking Down the Jelly Slider After the Jelly Slider implementation gained a lot of attention, I decided to write this post to explain how it works in detail and show…
The Noble Path It is a truth universally acknowledged that an indie hacker in possession of a widget must be in want of a business model... Every tool is a startup now. Every script is a SaaS product. Every neat little hack you cobbled together on a Sunday afternoon ...
Bus travel from Lima to Rio de Janeiro In 2025, I traveled by bus in South America, starting in Lima, Peru and ending in Rio de Janeiro, Brazil. Here are some details for anyone interested in doing the same.
Intent-Driven Development As software engineers, I get the feeling we’re moving almost entirely away from code. And I don’t just mean having conversations with agents where they write all the code. But even further, maintaining just a system of prompts that describes the software....
Playful leadership development in mid-career academic mentoring and coaching Matthew Beach and Joanne Yao have a bit of fun with playful approaches to mid-career academic mentoring and coaching
The Mechanics of Autonomous Software Translation 2026 started with a boom of AI-assisted autonomous translations, on 14th of January, Cursor published their post on Scaling long-running autonomous coding in which they created translations of a browser, Java LSP, Windows emulator and Excel. This was foll...
Chasing Boring at Just the Right Speed Asking the Right Questions A while back when I was looking for a fulltime gig (and when I was contracting, of course), I had the opportunity to do a bunch of interviews (including the kind of...
Introducing: Code Canary If you’ve got any kind of engineering background, you’re probably spending most of your waking hours enmeshed in a possibly unhealthy relationship with a coding agent like Claude Code. …
Parametricity, or Comptime is Bonkers Here's a puzzle. Without looking at the body, what does this Rust function do?
work_mem: it's a trap! | My DBA Notebook My friend Henrietta Dombrovskaya pinged me on Telegram. Her production cluster had just been killed by the OOM killer after eating 2 TB of RAM. work_mem was set to 2 MB. Something didn’t add up. Hetty, like me, likes playing with monster hardware. 2 TB of...
The Upfront Investment That Saves 10,000 Hours There’s a pattern in tech where people mock the setup cost of automation without accounting for the return. I spent a day building a Grunt-based WordPress bootstrapper in 2013. Fortune 500 co…
Code Quality in the Age of Coding Agents An adaptation of an internal talk I gave during a company wide ai-adoption week.
Get in Line (Part 2) - Vyukov's Queue and its specializations In the last post we got a low-latency SPSC queue. But we often need multi-producer or multi-consumer or both - for example if you want to spin-off a bunch of threads in a threadpool to do some work and then aggregate the result back in the main thread, or...
The Debt Beneath the Dream Every gambler knows that the secret to survivin’ Is knowin’ what to throw away and knowing what to keep ‘Cause every hand’s a winner and every hand’s a loser And the b…
Temporal: The 9-Year Journey to Fix Time in JavaScript JavaScript's Date object has been a source of bugs for three decades. Temporal, which just reached Stage 4, is a modern replacement with immutable types, first-class time zone and calendar support, and nanosecond precision. This is the story of how Bl...
LEGO's 0.002mm Specification and It's Implications for Manufacturing A 2x4 LEGO brick manufactured in 1958 will snap perfectly onto a brick molded this morning in Denmark, China, Hungary, Mexico, or the Czech Republic. The 66-year-old brick will have the exact same interference fit, the same clutch power, the same 4.8mm st...
Where did you think the training data was coming from? When the news broke that Meta's smart glasses were feeding data directly into their Facebook servers, I wondered what all the fuss was about. Who thought AI glasses used to secretly record people woul
Devlog ⚡ Zig Programming Language This page contains a curated list of recent changes to main branch Zig.
Crawl entire websites with a single API call using Browser Rendering Browser Rendering's new /crawl endpoint lets you submit a starting URL and automatically discover, render, and return content from an entire website as HTML, Markdown, or structured JSON.
CI should fail on your machine first When you think of CI, you probably picture a remote server somewhere: GitHub Actions, GitLab CI, Jenkins. You push your code, you wait, and eventually you get a green checkmark or a red X. This is so normal that we don't even question it. But why does CI ...
The Server Older than my Kids! Due to procrastination, my static file server was long overdue for an upgrade. After 7 years, I've finally written a provisioning script. Welcome this new puppy