korrents
Nelson Elhage

What Nelson Elhage thinks about design

@nelson-elhage · 19 positions · 0 changes of mind

Software engineer who writes the blog Made of Bugs about performance, debugging and understanding computer systems. Previously worked at Anthropic on interpretability, at Stripe on Sorbet, and at Ksplice.

Everything they publish, on ppll ↗

Nelson Elhage did not write this page.

We collected these quotes from things they published elsewhere, and every quote links to where it was said. They have no account here and have not endorsed this site. Quotes are word for word; the short line under each one is our own restatement, not their wording. Their own site. Is this you? Claim it or ask us to remove it. Or tell us what is wrong here.

8 dated positions, 2023 to 2026, in their own words. Our reading of what Nelson Elhage has said — not written or endorsed by them.

8 positions so far — this page is not yet offered to search engines.

  1. But I struggle to envision a general, composable, concurrent paradigm without one.

    From error-handling to structured concurrencyblog.nelhage.com 1st of 2 in this piece

  2. 5 months earlier
  3. I suspect the pattern generalizes: If Z3 has first-class support for your problem domain, it's worth starting there!

    Solving regex crosswords with Z3blog.nelhage.com 2nd of 2 in this piece

  4. 4 months earlier
  5. neural networks

    in 2025 it might end up being easier to just throw a neural net at the problem, instead of a custom-designed-and-tuned prediction algorithm!

    The ITTAGE indirect branch predictorblog.nelhage.com 3rd of 3 in this piece

  6. 4 months earlier
  7. benchmarks

    It's easy to get impressive-looking results if you're comparing against a poorly-tuned baseline, and that observation turns out to explain a surprising fraction of supposed improvements.

    Performance of the Python 3.14 tail-call interpreterblog.nelhage.com 1st of 3 in this piece

  8. compilers

    I'm hopeful this framework will turn out to be a much more robust style for writing performance-sensitive code, especially over time and as compilers evolve.

    Performance of the Python 3.14 tail-call interpreterblog.nelhage.com 3rd of 3 in this piece

  9. 6 weeks earlier
  10. LLMs

    Overall, though, this experience reinforced my belief that the tooling and interface design around LLMs is lagging way behind the actual capabilities, and is an area of active experimentation and development, even aside from any future model improvements.

    Building personal software with Claudeblog.nelhage.com 2nd of 3 in this piece

  11. Thus, code is cheaper than ever, but I suspect that insight and good architectural design and understanding, at least for now, will become more valuable than ever.

    Building personal software with Claudeblog.nelhage.com 3rd of 3 in this piece

  12. 13 months earlier
  13. Profilers can only show you "what is there"; skillful performance engineering requires understanding the information that shapes and informs the profile but is "not there" in the profile itself.

    Performance engineering, profilers, and seeing the invisibleblog.nelhage.com 1st of 2 in this piece