Work
I'm currently an engineer and researcher at Anthropic. I currently work on our pretraining team; before that I worked on reverse-engineering large language models. You can read that team's research .
Previously, I've worked at:
- Stripe, where I worked on a variety of projects and teams, including as a founding member of the Sorbet project.
- Ksplice (and, post-acquisition, Oracle) working on the Ksplice technology and product for updating the Linux kernel without rebooting.
livegrep
As a personal project, I've put together livegrep.com, a site which allows for realtime regex searching of the Linux kernel as-you-type, using Russ Cox's RE2 regex library, and a custom indexing backend.
It's open-source and you can deploy it for your own source code! It's also one of the backends for Mozilla's SearchFox.
Writing
I write at a number of online venues. You can find stuff I've written at:
- blog.nelhage.com, my personal blog
- A newsletter, which gets more experimental or in-progress thought.
- nelhagedebugsshit.tumblr.com, where I chronicle interesting shorter stories of things I've debugged or investigated.
- accidentallyquadratic.tumblr.com, where I chronicle real-world cases of code with unintended Θ(n²) complexity with harmful consequences.
Code
- Sorbet, Stripe's open-source static Ruby typechecker. I was a founding member of the project at Stripe, helping to build it out and deploy it internally.
- Llama, an experiment in using Amazon's Lambda service for distributed compilation. I've written about using it to compile LLVM in 90s, as well as the broader vision of the project.
- Taktician, an AI for the game of Tak, based on the game described in Patrick Rothfuss' The Wise Man's Fear. For several years it was the highest-ranked entity on the playtak.com online site.
- crossme.app, a collaborative online crossword-puzzle solver.
- reptyr, a little tool I wrote for moving a running program to a new terminal. You can read more on my blog.
- My emacs configuration files. I keep my entire emacs configuration in a single git repository so I can just check it out on new machines. Feel free to borrow any pieces of it you want.
- I wrote a JIT translator for the Beta, the simple processor used in MIT's 6.004 computer science class. It's a fairly clean, simple, working JIT in about 2000 lines of C that might be interesting to someone.
- Check out my github account for more things I've done.
Security
I've previously done some security work for various open-source projects, including the Linux kernel and KVM. I presented at Black Hat USA 2011 about some work I have done on KVM. My slides and code for that talk are now available online.