Around November of last year I was afflicted with a crippling case of burnout. I want to talk about it.
Alt: notgull slumped on the floor holding a bottle of Absolut Vodka.
In terms of open source code, 2023 was fairly decent for me. I was the maintainer of two popular projects that were used in a number of real world usecases. I was also working on some new, exciting projects that took these existing usecases and did something interesting with them. I even had consistent posts on this blog, which brought me some attention from people I really respected. By all records, I was doing great.
In 2024, I suddenly stopped contributing so much. Projects that I was previously spending a significant amount of time on suddenly stopped receiving updates. PRs went unreviewed. Issues went unanswered. I had people asking me if something was wrong. I went five months on this blog without a single post, with the one post just being a completion of a mostly-finished article I had before.
By 2025, I had announced that I was going into hiatus and stepped back from all of my projects. Even then, this announcement was largely a formalization of the existing state of affairs. Any project that I had been maintaining was effectively abandoned.
I’d like to analyze my burnout in greater depth. Specifically I’d like to go into the experience of being burnt out, and the reasons why I felt this way. Mostly, just as a way of getting all of those emotions into a rational form. Partially, so other people can avoid falling into the same pitfalls I did.
In case you can’t tell, this one is going to be very personal, in a way that articles on this blog haven’t been so far. Feel free to skip if that’s not your thing.
Prelude
At the beginning of 2024, I still felt pretty good.
The past couple of years had been pretty transformative for me. I’d been writing
open source software for while, but not the kind of software that ends up being
used. It all started when the fantastic Taiki Endo
had offered me a maintainer spot in smol-rs
. I was
still writing code, but all of a sudden, people were actually taking that code and
doing something with it.
Like if you walked into your model train set, and all of a sudden there were
actual passengers using it to get to their day jobs. I felt ecstatic.
In the time since then I’d become somewhat well known in the Rust community for maintaining smol
. I’d
also started writing code for rust-windowing
,
further expanding my repertoire. This led to a couple of cool one-off projects,
like theo
and async-winit
.
Even if those projects wouldn’t see wide use, you don’t know how fun it was to
tinker with a codebase like theo
and watch it grow into something actually
usable.
Not to mention, I also started writing this blog! It’s quite rewarding to write something, and then see people actually share your opinions. It’s like seeing yourself on TV.
I think it’s a very common experience for an open-source programmer to start at a programming job, and then just completely halt their open-source activity. I started at my current position at my current company in the summer of 2023, after I’d graduated college. Even with my full-time job, I was still writing open source code and keeping a pretty good output overall. I’d felt like I’d beaten the odds; I could have my cake and eat it too.
Even going into 2024, I still felt like I was on top of the world. At some point I promised myself that I would write one blogpost every two weeks. Of course, that didn’t pan out, but who cares? I was still writing tons of code, both for my job and for the open-source community. I could keep going forever if I wanted to.
So why did everything change?
The Experience of being Burnt Out
All of a sudden, I was having trouble getting into my open source projects. The passion that had previously pushed me forwards was waning. I still liked reading through issues and solving them. But it started to take a grating cadence in my mind; it was something I’m doing because I was forcing myself to, not because I wanted to.
I still kept at it, though. I’m nothing if not stubborn. But that approach slowly wore down. The act of reviewing pull requests became a chore that I never looked forward to.
By May, I could barely bring myself to look at the code. Even opening GitHub induced a visceral reaction. Reading through the code that I’d previously enjoyed skimming for fun was like trudging through molasses. A struggle.
In a few months time, I couldn’t even bring myself to look at the smol
codebase.
Lack of progress brought shame, and shame induced further lack of progress. I knew there were issues piling up on my projects, but what could I do about them? Like sewage water filling up my neighbor’s apartment, there were urgent problems but I couldn’t do anything about them. Those tasks just seemed to loom large on my to-do list. Like statues that I had been tasked to knock down myself, with nothing but a single sledge hammer and a bottle of hydrochloric acid.
Maybe I could’ve kept going. But at some point I just realized, I couldn’t even feign it anymore.
Maybe this was why I publicly announced dozer, which was a mistake in my opinion. dozer wasn’t in anywhere near the state where it would be productive to have multiple people working on it. I ended up having to completely re-do the backend if I wanted to handle even a fraction of Rust’s core language. A re-do that is, to this day, incomplete.
I’m sure you know the experience of starting a new project. All of the potential in front of you, ready to be seized and turned into something wonderful. It’s a high like pure crack cocaine. But soon you’re hit with the cold reality that you can’t just build castles in the clouds. Eventually you’re going to have to implement the bits of the project you never expected to implement, or completely change your plans to fit your API.
In the end, you eventually have to slog through those bits. Especially when you’re already burnt out from other projects, each of those bits feels like you’re carving them with a dark obsidian knife out of your very soul.
In March of 2025, I did something long overdue. I announced my hiatus, and said I was taking a break. This, thankfully, relieved the pressure that I felt on me, real or imagined. It’s given me time to think, time to digest my experience.
I feel better now, by the way. I’m not sure I want to return from my hiatus just yet; I imagine it will be a gradual return once I am ready. But, I’m writing code again. For fun! I’m excited to see where it goes.
The Cause of Burnout
In the above paragraphs, I realize I’ve made an error; I’ve made it seem like burnout was an inevitable fact, a direct cause-an-effect of long-term open source development. I don’t think it is. I’d like to go into certain external factors within my life and see what I can pick out.
Obviously, there’s work. Around the start of 2024, my responsibilities were suddenly expanded. To make a very long story short, I’d been assigned to a project that was an order of magnitude more important and more pressurizing than any I’d been assigned before. I found myself writing and testing a significant amount of code, and it began to eat into my energy budget.
I genuinely enjoy writing code. As I’ve alluded above it’s like building a model train set that people can actually ride. But, even I have my limits as to how much code I can write in day.
I’ve been told this is likely an example of the overjustification effect. If you give something with intrinsic motivation to perform a task incentives to complete that task, they will lose that intrinsic motivation.
As an example, let’s say you see a kid who plays on a swing in the park every day. You go up to the kid and say “I will give you twenty dollars every time I see you playing on this swing”. Of course the kid will keep playing on the swing when you come by every day. It’s a win-win!
But then let’s say you stop coming by with the money. Will the kid keep playing on the swing? No. Because at some point it stopped being something the kid did for fun and started being a chore they had to do for money.
Right now I feel like I may be the kid on the swing, and someone’s suddenly offered me a lot of money to keep swinging.
But maybe it’s unfair to blame it all on work. While the projects I’m assigned to may be intense, I still find them quite fun. To be clear, I think the overjustification effect is part of it, but not quite the whole problem.
Circa April 2024, I was going through something that I would quite describe as a downward spiral, but it certainly felt like one at the time. I can describe it as “finding out a lot of things the hard way”.
In the end, I had the feeling of falling even though I was standing on solid ground. This kind of panic definitely contributed to my burnout, along with a handful of longstanding personal issues I was going through at the time.
It’s never just one thing, it seems, that overwhelms the defenses. It’s always at least two or three.
What now?
As I said before, I’m feeling better. A lot of things in my life have stabilized for the time being, and I’m finally seeing a psychologist to help me through my varied emotions. Finally, I’m feeling that passion that originally drew me to open source come back.
I don’t want to immediately burn through that passion, though. I want to nurture
it and let it grow again, like it did the first time. I’m slowly but surely
taking up some of my projects again. Maybe someday we’ll see a half-decent dozer
,
or a smol-rs
as lively as it used to be.
Maybe 2025 will be the year of the notgull.