Friday was my last day at Zed.
It was a year that, in many ways, couldn’t have been fuller. Full of new things to learn, full of code, full of new experiences and ideas and ways to do things.
I had hundreds of pairing sessions with some of the best programmers in the world, and despite feeling completely like a beginner again in this big, unknown codebase, next to one of the most talented teams I’ve ever worked with, I also managed to get nearly 500 PRs merged. I shipped features and bug fixes, learned about GPUs, async Rust, X11, Sum Trees, SSH, and quite a few other things. I fine-tuned LLMs, wrote 14 blog posts, recorded podcast videos, and even gave a lightning talk.
But, paradoxical as it sounds, even though it was a full year, I was still missing something and I realised that this is not what I want.
And now, guess what, I’m going back to Sourcegraph.
That’s right. Back to the company I joined in 2019 and left at the end of 2023. This is not a decision born out of a let’s-get-back-to-the-known feeling. I talked to a few companies before deciding to go back. But after talking to them and spending many evenings thinking about where software is going and where I want to go and what I want to see and what I want to learn, I realised that there is no other choice — I have to go back to Sourcegraph.
In 2019, when I first joined, I was interested in language servers and compilers and working with Go. Now, I’m rejoining because I truly believe that programming is changing in fundamental ways. In a few years developer tooling will look very different and I want to be at Sourcegraph while that happens. Because Sourcegraph is not only positioned incredibly well to benefit from these changes, but also because Quinn & Beyang realised quite early that things are and will change and Sourcegraph’s now at the heart of it.
By being there, I’ll now get to see and understand and work on and write about all of these fascinating things and, man, I couldn’t be more excited. What a time, what luck.
Jerry Seinfeld in this New Yorker interview from last year that I somehow missed: “Because the only thing in life that’s really worth having is good skill. Good skill is the greatest possession. […] It was a very Zen Buddhist concept: Pursue mastery. That will fulfill your life. You will feel good. I know a lot of rich people. So do you. They don’t feel good, as you think they should and would. They’re miserable. Because, if they don’t master a skill, life is unfulfilling.”
In that interview, Seinfeld referred to an old issue of Esquire magazine that revolved around the topic of mastery. Trung Phan found it and then wrote a great post on Seinfeld, the Esquire issue, and mastery. The bit on plateaus I found very interesting, because I’ve always looked at plateaus at something negative: “even if you’re shooting for the stars, you’re going to spend most of your time on a plateau. That’s where the deepest, most lasting learning takes place, so you might as well enjoy it.” I can see how learning (as opposed to progress) can take place on a plateau, but I mainly like the perspective of trying to enjoy plateaus, because, hey, what else are you going to do? “What is mastery? At the heart of it, mastery is staying on the path.”
Robert Caro’s personal library is wonderful. Made me think that I should buy more printed books. But that won’t happen, of course, since I can never give up the Kindle.
Nodded along to most of these lessons over a career, but then read this: “When I started out, I believed my manager’s job was to define my career path, advocate for my development, and help me grow” Wait, what? That idea — someone else defines my career path — seems so wild to me that I have a hard time believing someone else really thought that.
In my life I had previously never really thought about how anti-cheat systems for games are implemented, so while reading about this effort to reverse engineer the anti-cheat system in Call of Duty I kept thinking “this is wild, wow, I mean, yeah, of course you’d have to, but… wow.”
Interesting signs of the times: for the past few weeks I’ve seen people praise The Brutalist and even remarking how small the budget was compared to other big movies. Then it was revealed they used AI for some of the film and that AI was one of the reasons for the budget being so low. And that then made people mad and where people once might have said “masterpiece”, now the word “slop” is used. At the same time, Paul Schrader, who worked with Scorsese as a screenwriter on Taxi Driver, said he was impressed by how good AI is and that “in five seconds it responded with notes as good or better than I’ve ever received [from] a film executive” — then people got mad at Schrader.
On Wednesday I wrote about using LLMs-as-judges. I hope you realise that you can also judge LLMs-as-a-judge, right?
Or you use “Classic ML to cope with Dumb LLM Judges”
Johnny Marr on creativity & craft: “Great writers and great novelists and great musicians know that creativity is work. All the greats know that. Only amateurs think that an idea or inspiration is just going to fall through the sky, and that you’re going to be a genius straight away. But I also think people are just too hard on themselves. The Picassos of the world, the Paul McCartneys of the world, and lots of the people that I’ve been very privileged to work with, they know that it’s okay to suck sometimes. It’s better to actually just show up and get the thing done.”
In case you’re in need of some long-form writing: I re-found The Electric Typewriter and its list of 150 great articles & essays in my bookmarks.
The list reminded me of this Ben Taub piece in the New Yorker from a few years ago: Thirty-six Thousand Feet Under the Sea. “To be able to write like that”, I thought, and then looked up Ben Taub again and his Wikipedia entry contains these two amazing sentences: “In 2012, during a year off from Princeton, he was a contestant on The Voice, on CeeLo Green's team. Six months later, he used the stipend from appearing on the show to fund his first trip to Kilis and the Turkish-Syrian border, to learn how to be a war correspondent.”
Patrick and Mariano wrote a WebAssembly compiler that fits in a tweet. Now, this, this is The Good Stuff.
Every heard of ni? I found it half a year ago and every time I’m in a JavaScript project and type my way through
yarn i, pnpm i, npm i
to find the right one, I’m reminded of it and I ask myself: surely there has to be a better solution for an ecosystem with too many package managers than to… invent another package manager?Talking ‘bout dependencies: Armin wrote a great post on dependencies that’s called “Build It Yourself” and if he were to run to be elected to the Board of Code on the Internet and he kept this line in his stump speech, I’d vote for him: “It's time to have a new perspective: we should give kudos to engineers who write a small function themselves instead of hooking in a transitive web of crates.”
I haven’t read the paper yet, but DeepSeek’s R1 model seems to have shook up quite a lot of things this week. Watching the theories blow past me — “They did it with only $5m! The US is toast!” “They’re lying, it’s a front for the Chinese military.” — I can’t help but think that these are, if nothing else, exciting times. (And I also want a John Le Carré-style novel on US vs. China AI labs.)
Georgi Gerganov, creator of llama.cpp, published llama.vim — LLM-assisted autocomplete in Vim, powered by llama.cpp. The original pull request has a very good description that explains some of the ideas behind the implementation. I spent the last 2-3 months working on Zed’s soon-to-be-released Predictive Edits feature (inline completions for local and non-local edits) and found it to be a quite fascinating read. Also, I love Gerganov’s GitHub bio: “I like big .vimrc and I cannot lie”
Mitchell shared this 5min Steve Jobs video I had never seen. I loved it. Reminded me a lot of the 10min segment starting at 49min in this Tony Fadell interview.
Great stuff as always. Good luck in your new (?) job!
Talk to you Thursday :)