This is my last week at Sourcegraph. Today’s my last day. At 6pm my computer will be wiped cleaned and 4.5 years come to end. 4.5 years so dense that at other companies the clock would probably show 8, or 10 years.
Why am I leaving? Over the past few months I realised that there’s still many, many things I want to learn as an engineer. So many things to see and do until I can lean back and say that I’ve squeezed every last bit of programming out of myself. And the best way to do that, in my experience, is to go and do something new, to get out from the shallow end of the pool, to which I’ve drifted slowly over said 4.5 years, run to the other side and jump back into the deep end.
Believe me when I use this tired phrase and say that this wasn’t an easy decision. A colleague said to me this week: “to me, Thorsten, you were always Mr. Sourcegraph.” And I thought: yeah, man, I know.
There’s so much I could write here. Pages and pages and pages about what I learned, what we shipped, how Sourcegraph changed my views on software engineering, on organizations, on start-ups, on the US, on managers, on… everything, really. But I’ll save that for another time.
Instead, let me just give you some anecdotes and thoughts that pop into my head on this last day. Unsorted, incomplete; if I forgot to mention something it only means that I have bad memory, not that it didn’t mean anything to me. I assure you that next week I’ll think of 15 more things I should’ve put in here.
In my first week in April 2019 in San Francisco, I sat down with Quinn, Sourcegraph’s CEO, and asked him: “what should I work on? what’s the most important thing I should do?” He said: “I want you to think of Sourcegraph as a playground. You have certain skills and talents – that’s why you’re here – and I want you to look around and think how you can use them to move the company forward.”
Sourcegraph’s all-remote, with people all across the world working whenever they want. Sometimes I’d work early in the morning and someone in the US would still be online. And we’d talk a bit. When a late night and an early morning meet they create a very enjoyable vibe.
For quite a while I ran the internal Demo Day event, every 2 weeks. Engineers could join the meeting and demo what they built and shipped. I loved seeing engineers knock it out the park with a great demo. Loved also seeing people roll their eyes at my dumb jokes while also smiling.
When we were looking for a name for a new internal instance of Sourcegraph, someone suggested Horsegraph as a name. I loved that name and ran with it: creating fake company slogans, logos, a Slack channel. There’s an emoji in the Slack called :horsten:
Sometimes I’d stare in awe at a Google Doc in which 10 cursors where moving all over the screen, moved by people sitting in front of their computers in very different places all over the earth. Someone in Delhi, someone in Paris, someone in Berlin, someone in New York, someone in Colorado.
Quinn once said in a meeting: “we’re not based in San Francisco, we’re based on the Internet.”
There were some fantastic emoji reactions in Slack. Oh my god do I love the perfect emoji reaction.
Seeing people’s Zoom background change when they moved places.
One of the biggest lessons I learned: seeing, realizing, feeling that engineering has to serve the business, not engineering itself.
Our first company-wide offsite in Mexico was one of the most well-organized events I’ve ever been to. Hop on a flight, land, and everything else is taken care of. For more than 200 people. “wow, we’re big now, this is a pro operation”, I thought.
Sometimes you’d visit HackerNews on a Saturday evening and see a colleague’s blog post or project pop up there.
I won an Impact Award this year at a company offsite. I was sitting in the audience making jokes with TJ and when the winner – me – was announced I thought it was for a 3rd place or something and made a joke about it. TJ then said “uhm, no, I think you won this?”
After I joined I spent the first few months pairing a lot with Keegan and Tomás. Multi hour sessions in which we wrote code, or debugged production, or profiled performance issues. I’ll never forget that summer and I’m convinced that these few months and that much sync time we had helped me a lot at Sourcegraph.
Seeing so much code written, changed, deleted - mostly in a single repo.
I wrote a document called Engineering Ownership last year. When adding it to the handbook, Quinn, the CEO, left a ❤️ on my paragraph about civil disobedience.
Recording Dev Tool Time with Beyang and TJ was incredible fun. Talking to other engineers about their dev tools and being star-struck – “I could do this all day long”, I thought.
stevey has an uncanny ability to say or write something that gets me fired up, every time, no matter the circumstances. Full circle, in a way: he wrote an article that got me into compilers, which then led to me learning about language tooling, which led me to Sourcegraph, where I then reported to stevey.
Sometimes I’d interview engineers and they’d go “oh, you’re Thorsten? wait a second!”, walk out of frame, come back and hold up one of my books.
Working with Erik on Batch Changes was a highlight. We shared a brain there for a while, knowing exactly what the other person is doing and why, knowing what they’ll say in a code review and fixing it before they can comment. I wish every engineer could experience collaboration like this.
I wrote a very long document this year and asked Erika for a feedback. She asked: “is it okay if I take my red pen out?” “Sure,” I said. And she did. The next day I woke up to 50, 60 comments on my Google Doc and it felt like Christmas, because every comment was a gift: a little suggestion, a fix, an idea. It felt like getting code reviews back when I was a junior engineer and I’d learn 3 new methods and ways to do things in every review.
Learning that there’s companies with hundreds of thousands of repos. Hundreds of thousands. One of my favorite things to mention over beers with other engineers.
Here’s what’s called The Fish Story.
Two years ago I tweeted about these weird stories of Microsoft sending executives they want to hire fish. As, you know, gifts, to convince them to join.
A few weeks pass. I’m at the gym. My wife sends me a text message: “this came for you.” Along she sent a photo of a styrofoam box. I knew immediately what it was and laughed out loud in the gym, basically ran home, and found a big, frozen salmon waiting for me, sent by Nick.
When working on Batch Changes I repeatedly told others: “all I want is for a customer to wire us $1 for this.” A year later I get tagged in a Slack message, with Quinn saying “here’s your $1.” The first customer had signed and purchased Batch Changes. Batch Changes then turned into a significant contributor to the company’s revenue – one of the highlights of my career. I recorded a video of myself dancing and posted it in Slack.
The transparency. Seeing board slides, quotes from customers, financial projections, quotes from investors and board members.
Right after he joined, stevey led a small team to adding intelligent ranking to Sourcegraph. He wrote one long Google Doc that described the problem and a possible approach in just the right way, with just enough details to say what he wants but still leaving enough freedom for all of the engineers to solve the problems their own way. That was inspiring to see, to see how powerful great communication skills combined technical knowledge can be.
I’ll never forget when Nick told us someone had applied for an intership. Nick told them that we don’t do internships (we didn’t at the time) but the applicant said “no, I want to work here.” They became our first intern and knocked it out of the park. Still do.
Some of the most fun I had when rewriting our developer tooling into
sg. Every Friday afternoon I’d host
sg hacking hours, in which everybody could join me on Zoom, see me hack, suggest features, talk shit with me. That led to 20 people contributing code to this new tool in the first few months.
Being in the eye of the storm when working on Cody in the middle of the AI frenzy of 2023.
We once shipped a faulty release in which we updated to a new glibc version in the PostgreSQL container. I should probably write a long-ass blog post about this, but the gist of it: some database indexes became faulty after the update and wouldn’t return any rows.
Except we didn’t know any of this on the day after the release, when customers reached out and said they’re seeing 404 errors.
I woke up to people in the US still being on an incident call. Nothing gets you started in the morning like an incident call.
While trying to figure out what’s happening I said out loud, half-joking: “do we have any customer who will give us full access to their database and lets us execute SQL?” Our Head of Support laughed and said “yeah, that’s funny.”
Two hours later we talked to a customer and he said “yeah, sure, do whatever you want.” and we dictated SQL queries to him for an hour, which lead to a big, loud, shared “ohhhh!” once we found the bug. The customer then said: “that was awesome.”
I’m going to stop here, but I’ve got more anecdotes. Loads and loads of anecdotes.
You know, a few years back I thought: “isn’t the goal in life to be able to tell great stories when you’re older?” Sourcegraph certainly moved me closer to that goal. Thank you.
What’s next for me? In January I’ll join Zed to work on a new text editor. I’m more than excited.
I might pause Register Spill for the next few weeks. I might not. But I have four weeks off now and I’m going to treat them as lawless four weeks. In any case: subscribe if you want to get the next one.