Back in the saddle
After a week of kicking back and doing nothing, it’s oddly refreshing to spend a few hours clacking away at some code. It seems wild that I’m able to get paid to do this, when it’s something I also choose to do for free. How many professions can you say that about? I don’t know many hairdressers who go about cutting hair on their days off. Then again, I don’t know many hairdressers.
Hobby projects definitely have a different feel to professional ones. The team dynamics are gone. I’m in charge. I don’t need to persuade anyone, or compromise in any way. It’s as pure a creative vision as you get in software development.
There’s also the size. My favourite thing about hobby projects? No tech debt. I wrote all the code so clearly it’s flawless. The main reason it’s so easy to work with is that there is so much less complexity. Regardless of whether you’re working with microservices or monoliths or something in between, professional projects get big very quickly. Right from the start the goal is to expand. Whoever you’re competing with, you have to match their best features. And if you’re in a crowded marketplace, that means a lot of “must-have” features.
With a solo project you are the arbiter of what makes the cut. You value your own time much more highly, because hobby dev time is scarce. I know where I want to get to with this project over the next few weeks. I think I can get there, but I’m going to have to cut a few corners. Once again, being able to make the decision on my own is liberating.
The downside? JavaScript fatigue. I know that as this project grows, it will get a bit unwieldy and I’ll need to deal with some packaging malarkey. There’s nobody else to palm that off on. I have to do the whole lot myself. This project is using most of the standard modern devex stack: TypeScript, Prettier, pnpm. I haven’t gotten around to installing ESLint yet. I’ve grown so accustomed to it being there that it is strange coding without any ESLint. For now it’s fine, but I know that the longer I leave it, the more painful it will be to plug in later. I need to suck it up and install.
I’ve been amazed at how fast I’ve been able to move, given my coding skills are pretty rusty in this area. It doesn’t take that long, especially if you’re able to set aside a whole weekend for it. Having a big chunk of time definitely helps compared to pockets here and there. There’s so much context - little decisions you make in the moment that are shortcuts or good-enough-for-now - that gets lost when there are too many interruptions.
So yeah, go build cool stuff. Cool doesn’t have to mean complicated. It might be easier than you remember.