Learning to work on personal projects - Part 1 - Community
In my teens and early twenties, I could work on personal projects tirelessly. I wrote video-games, compilers, databases and web frameworks, reverse-engineered malware and automotive buses, built laser-shows and interfaced with weird gizmos. I had a blog I kept up to date with music reviews, thoughts about books, technical deep dives and tutorials.
I was 28 when I published my last open-source project. After picking up a high-octane startup job and all the stress that comes with it, I learned many things, on the job and off the job, attending meetups, taking online lectures, working through books. But I never released any open-source project since.
One goal for my retreat at Recurse Center is to (re)learn how to work on personal projects.
Part 1 - Personal work needs community
One reason I was so productive (besides being young, not needing much and having a lot of free time) was the strong hacker community I was immersed in. I spent my late teens / early twenties in Karlsruhe in Germany, which has a lively techno-fringe scene due to entropia, the local chapter of the Chaos Communication Club in which I was heavily involved. Wince at the clickbait title, but this is a great article about the GPN, an event I helped kickstart more than 20 years ago: The Chaos Computer Club Is Fighting to Save Democracy - Bloomberg.
During that period of my life, being social mostly involved sitting at some kitchen table overflowing with electronics with friends who were just as much into technology as I was, or giving goofy talks for a motley crew of weirdos.
When I moved to Weimar (which has not much of a tech scene) in 2009, and later to the US in 2014, I lost my connections to that community. While many of my then-colleagues now-friends have the same love and appetite for technology than I do, life happens with increasing frequency on this side of 30 – exponentially so once kids enter the picture. On a lucky year, a friend and I would maybe get two afternoons in a loud coffee shop to work on a toy compiler. I think we made it just past parsing a simple example.
Sitting at my desk on the weekend, after five days of tickets and designs and releases and meetings and builds and debugging, I rarely mustered up the effort needed to set up my own environment, dust off the oscilloscope and get a couple of hours of programming in. Where was the fun? I wouldn't get to chat with my buddies about a bug I encountered; I wouldn't have anybody to show what I worked on; nobody would show me their nonsensical construction either.
Being at RC made me realize how important the community is to keeping the stamina for personal projects. Some people find it on twitter or through their blog, some can work for months before showing their creation, some just work for themselves, without needing external input. I need fast feedback, at a personal level. I need someone to shoot the breeze with, someone to point at my screen and tell me what an idiot I am when I get stuck, someone to rant at about the woes of build systems.
This week, it struck me: RC never ends. Even once the batch is over, if I feel like hacking on some harebrained idea, I can just join one of the many zoom rooms, share my editor and get a few hours of hacking done. Someone might drop in and have a chat; someone might comment on zulip; someone might ask me about their ideas; we might pair program or we might not – but I won't be hacking alone, and that makes a world of difference.