Last January I wrote a post on programming just for fun, by way of introducing my new portfolio website aligilo.com. I promised an update, so here goes.
Hobby projects: the word has a derogatory ring to it, but I think they are vital to your relevance as a developer and a way to stay motivated. Maybe you work at a place where you enjoy unlimited freedom to build what you fancy using whatever tools rock your boat, but that’s not how it usually works in the for-profit world. That world doesn’t revolve around you, except in your universe of private projects.
It shouldn’t come as a surprise that much open-source initiatives fall in the for-nerds-by-nerds category. Software to make building other software more efficient, reliable or pleasurable is mighty important, but there is an awful lot of choice in little tools that do more or less the same. And not all of it good. I’m thinking of WordPress plugins and templates here. In olden days we used to call that “me too” software. No further comments.
It would be coolest if you could build something which on the one hand is still doable on your own (so don’t take on Photoshop with a competitive offering) and which many people would find useful. Something like a todo-list manager or a CMS. Alas, these wheels have long been invented and you better have killer features and a superior user experience, or you will be drowned out by the other unsuccessful mediocre contenders. Which is not to say you shouldn’t give it a try. By all means, it’s your free time. Don’t re-invent the wheel unless you want to learn more about wheels, paraphrasing Joel Spolsky.
I’ve tried to re-invent the wheel myself a couple of times. Using Google Web Toolkit I built 7labels, a revolutionary re-thinking of todo management for people who not only have a list fetish, but also like to tag their items liberally. I worked through my ever growing backlog of nice-to-haves with zeal and pleasure right until GWT ceased to be relevant as a platform and when it turned out I wasn’t too keen on eating my own dog food either. It did teach me a lot, though. At the pinnacle of my skills I was a right GWT king One-eye and it landed me a few fun and profitable projects.
Four years ago I finally found my niche. I was busy rehearsing my IT-comedy Fair Trade. For all you non-directors: a play has scenes of varying length and difficulty. A busy scene with all actors on stage usually takes longer to practice than, say, a quiet monologue. Experienced directors know how to plan all this over the course of a rehearsal run of twenty weekly sessions, making sure every scene gets enough attention. I couldn’t boast that level of experienced intuition, and by the way, to hell with intuition! This problem was begging to be automated.
And that’s how Kwinsie came to be. It’s not very useful if you don’t direct plays or if you’re not into Angular 10 frontend technology. But if I can get ten or twenty people enthusiastic about it I’m happy. I’ve been tinkering with it over the past years and it’s now online on https://repetitieplanner.nl. Funnily enough I culled a lot of features I once thought were crucial, like logging in using your Google or Facebook credentials. All very useful, but I didn’t want the admin and legal hassle of storing user data on rented cloud space. Instead I store everything client-side, using the browser’s local storage. If you want you can download a JSON file of your data and import it on a different machine. All without sending a single bit to the backend. If it takes the world by storm I may make it more fancy, but I don’t hold my breath.