2021 in review
Welcome to the end of 2021, a.k.a. the second year of the pandemic. Another year of not going abroad, barely seeing friends, playing Dungeons & Dragons via Zoom instead of at the table. A year of mild depression and feelings of loneliness. But also a year of hope when we all got access to the vaccines and when we didn’t hear about Trump every day in the news. And last but not least: it was also a very productive year!
Open source projects
In the first quarter of the year I created a whole bunch of open source projects: Saga, my static site generator written in Swift; Parsley, a Markdown parser for Swift using Github Flavored Markdown and supporting metadata blocks; a whole bunch of plugins for Saga; and tag-changelog, a GitHub action to automate creating changelogs based on git tags. I completely rebuilt this website to use Saga and am super happy with the result. In December I added async/await support to Saga as well, and released version 1.0.0. I also wrote a series of articles talking about the API design of Saga and the road to version 1.
2021 was a huge year for my side project Critical Notes, a note-taking web app for roleplaying games like Dungeons & Dragons. I got my very first paid subscriber in March, and overall have earned 330 euros. Of course this is extremely little money when you consider the hundreds and hundreds of hours I spent working on this project, but it feels very good that I do have 12 paid users now (plus a few hundred free users). I’m no longer building this just for myself! It really helps to motive me to keep working on it.
This year I also completely rewrote both the frontend and the backend. I was using Svelte for the web app with Firestore as the backend, but I wasn’t happy with the performance. Especially the first time you’d open the website it took too long to render all initial content. I’m now using SvelteKit with server side rendering, and a brand new API written in Python using Django, Django REST Framework and websockets via Channels. Performance is way way better, I’m no longer dependent on Firebase, I can now properly unit test my backend, and last but not least: user privacy is a lot better now that Google/Firebase doesn’t have access to user data anymore!
It was a massive undertaking, taking hundreds of hours over almost four months, but totally worth it. I’m looking forward to adding new features to the web app, and am thinking about building a native iOS app.
I’ve worked for multiple clients this year, and most of the projects were interesting and fun to work on. Sadly I also encountered my worst client of all time this year. A big reason why I became a freelancer was to be able to choose my own clients and projects, and sometimes you just pick the wrong one. Something you thought was going to be amazing to work on turns out to be absolutely horrible. In this case I fled after just a month - the fourth iOS developer to ditch the project in just six months turns out (that should tell you something). And the client got so angry with me leaving after a month that he refused to pay me for the time that I was there. Those kinds of fights are definitely the dark side of being a freelancer, but luckily very uncommon. I’m now working as a freelancer for over five years and have only had two bad experiences so far. Knock on wood.
I should really write a separate article about life as a freelancer, since multiple of mentees have been asking about that as well. Which brings me to…
My resolution this year was to do some kind of volunteering work, but of course with COVID going on that wasn’t too easy. So I decided to start my own mentorship program where I have a few mentees, have weekly office hours, and the mentees can just book a meeting with me when they need help. This has been the best decision I made this year! I’ve had four different mentees this year; three women and one man, from all over the world. We have regular meetings via Zoom where the mentee can share their screen, and we pair program, I can review code, or we just do mock interviews to prepare for real job interviews. And I’m happy to say that three of my mentees have gotten their first iOS job this year! I’m very proud of them.
I would highly recommend any experienced developer to take on a mentee (or mentees). Not only does it give you a very good feeling to help other people, you also get a lot of experience yourself. The questions you get.. you need to get good at explaining things and that’s just a good skill to have for anyone. Especially for senior developers! And as a freelancer who works mostly by myself, I don’t get many opportunities to train and mentor junior colleagues or team mates anymore so this mentorship program was perfect for myself as well.
I got my motorcycle license and bought my first motorcycle! I also bought a house; early next year I’m moving back to my childhood hometown, where all my family lives. It’s going to be weird to leave my current city, I’ve lived here for 18 years after all, but I’m really looking forward to being close to my family again.
It’s not all good news: I also fell down the stairs at the end of March, nearly broke my neck, couldn’t do anything for a few weeks and had really bad muscle pains for multiple months. Even now my right thigh still hurts from time to time due to a ripped muscle. Fun times. Combined with the pandemic and not seeing any of my friends, that definitely turned into a depression that lasted a good portion of the year. Luckily I’m feeling a lot better now, the prospect of moving into my new home made a big difference.
Next year I’m going to have to find a balance between working for clients, working on open source projects, working on Critical Notes, helping my mentees… and working on my new house. Because the new house, it’s old and needs a lot of work. Like, a lot a lot. And of course that costs a lot of money, so that means I have to do more freelance work. It’s going to be tricky to find a balance where I can sort of juggle all these responsibilities.
I also really want to go on my first motorcycle roadtrip, so I have to find some time (and money) for that as well. My resolution is to not burn out and know when to take a break, even if that means having less money to fix up the house in the short term. Either way, I think it’s going to be a very busy and probably stressful year!