Made of Bugs 🔗︎
Welcome to the home of Nelson Elhage’s writing on the web. I am a software engineer with wide-ranging interests, and this is where I write about them.
My favorites 🔗︎
Here are some of my favorite articles you might want to start with:
- Computers can be understood, where I explain an important part of my philosophy of and approach to software engineering.
- Reflections on performance, thoughts on software performance and performance engineering.
- Why the Sorbet typechecker is fast, where I explore how we made the Sorbet typechecker so fast.
- Test suites as classifiers, in which I argue for thinking of test suites as binary classifiers predicting the answer to the question “Is this change safe to ship?”
- My Apollo Bibliography, where I share my favorite books and movies about the Apollo program.
- A brief introduction to termios. Ever wondered what really happens when you press Control-C in a terminal? Or what that funny editing mode you get when you run a bare
cat
command was? This three-post series will answer these questions, and more. - Indices point between elements, in which I think a bit too deeply about how to reason about indexing into arrays.
- How reptyr works. I’m the author of the reptyr tool for moving processes between terminals, and this post explains the crux of how that tool works.
Other writing 🔗︎
I have an (unfortunate?) proliferation of blogs and other sites on the internet. Here are some other places I write things:
- Musings on computer systems, my weekly newsletter.
- Accidentally Quadratic, a tumblr where I chronicle cases of software performance problems caused by accidental quadratic iteration.
- nelhage debugs shit, another tumblr with an even less-edited tone than this one, where I recount war stories and interesting bugs I’ve tracked down in the past.
- I’ve written for the Stripe blog about the distributed test running architecture we built there.