Skip to main content

What I learned from working 6 months as a solo developer

David Haven
Author
David Haven

The starting point

At the end of 2022 I resigned from my position as a System Engineer after accumulating 5 years of experience in the industry. I knew the ins and outs of every aspect of the job and I no longer felt challenged. I believe you should always strive to learn or earn and the best is to have both. I felt like I was no longer learning.

So I decided to go back to the starting point. My goal was to explore what I enjoy and rediscover what I’m good at. Knowing I have rigorous mindset and strong work ethics I knew I was good at systems engineering. Now I wanted to determine what else I was good at.

What I worked on

If I was to focus for several months on a specific project it was essential that it be something I cared deeply about. Two unrelated topics that I am passionate about are board games and privacy. So I decided to write software that would solve problems I had encountered in each of these areas.

A board game that I’ve really enjoyed playing is Star Realms. There exists both a physical version and digital version of the game. While playing the digital version, I discovered that the game lacked statistics and insights that are typically displayed at the end of a game. Graphs and charts can be fun to look at but more importantly they are very useful in decision making and adjusting the player’s strategy. Unfortunately this was missing from the game so I decided to build it myself. You can read more about this project here

The second project I worked on was related to privacy. I’ve been a long time Proton customer, particularly using their email and VPN services. One of their latest products is ProtonDrive which is an end-to-end encrypted cloud storage solution. I have also been using KeePass for storing all of my passwords in an encrypted database. With this project I decided to build a KeePass plugin which could connect to my ProtonDrive account in order to read and write KeePass database files. You can read more about this project here

The challenges

When working as a solo developer you have skin in the game. There is the risk of spending a lot of time on a project that you might not see through or which might not gain traction. Building something new for which the outcome is unknown can be very stressful. The up side is that if you actually finish the project you get to own something you created and that is hugely rewarding.

Throughout the duration of the project you are constantly moving in the dark. You know what your goal is but the path to get there isn’t always clear. For me, breaking down the project into small chunks is what allowed me to see what the next step would be. And because solving these smaller problems would lead to completion of the project as a whole I knew I would reach my goal eventually.

Another challenge is the tendency to spend more time on things you enjoy than on things you “should” be working on. Being your own manager and correctly prioritizing the work to be done is part of the challenge of working on your own. And more often than not you will have to do work you don’t really feel like doing. For me the north star was asking myself: “Will this add value for the user?” If the answer was yes then it was probably worth the time invested.

What I learned

When you work as a solo dev you quickly discover what you are good at and what you enjoy doing the most because you need to handle all aspects of the project. You are the project manager and the developer. The product owner and sales rep. I quickly found that I was really good at management and implementation but less good at doing marketing efforts. I used Notion to structure the project and take notes and I used a time tracker app to keep myself accountable. I always managed to break down a complex problem into sequential tasks sometimes redefining the problem in simpler terms so that it is more achievable. I discovered that what I enjoyed the most is the problem solving aspect of the projects. Being faced with a puzzle, looking at it from different angles then trying to solve it by being creative. I also gained a greater appreciation for all the fields that come together as a company to make a product successful. I realized that doing good UI and UX is actually really hard.

Putting a product in front of customers is something that was both stressful and gratifying because you open yourself up to criticism. Even though it is not you but the product that is being criticized it can be hard not to take things personally. And when you see that what you built adds value to people’s life it is immensely gratifying. Here is one such example of positive user feedback for my SR-Stats project.

User feedback

These two projects challenged me in many unexpected ways (acquire new skills, be a jack of all trades, discipline and self-management) and allowed me to learn more about myself. I will continue to move forward with this newly acquired knowledge and continue to make great work.