I’ve been working on the Mahjong Score Calculator, my first programming project, since late November.
Do you code during your leisure time?
Coding is fun. I code a lot during the weekend.
6 years ago, I couldn’t understand why the consultant said this. But now I realise the benefits and recommend that you try it too. Working on a solo project is tough and challenging, but you’ll gain a lot throughout the process. Most of these benefits and challenges cannot be experienced when working in a large organisation.
Understand the Entire Business and Development Process
Large organisations develop large, complex products with well-defined structures. When you work in such a large organisation, you’re usually responsible for a small part of the product. You might not understand the overall business or development processes, even if you’ve worked on the same product for 5 years. The heavy bureaucracy makes it difficult to effect change – you simply act as a cog in the massive system.
Working on a solo project is a completely different world. You’re in charge of the entire business and development cycle. You learn how the components interact with each other, and you have complete freedom in deciding how to make your product work.
Learning New Things
In my previous company, all infrastructure and baseline structures were controlled by other teams. My role was limited to building Spring Boot applications, choosing between MongoDB or MySQL as the database service, and deciding whether to use asynchronous or synchronous APIs as the microservice interface. I didn’t even know how to implement front-end applications, as my colleagues would handle them.
After just 4 weeks of working on the Mahjong Score Calculator, I’ve learned:
- Of course, the Hong Kong Mahjong scoring system
- Front-end development with Next.js
- Dockerising a Spring Boot application
- Spring Security with JWT authentication and authorisation
And there is, and will be, much more.
Free from Meetings and Distractions
In my previous role as an Engineering Team Lead, I spent about 1/8 of my working hours in meetings with my team. Additionally, I had to attend quite a few meetings. Most meetings were, unfortunately, ad-hoc, lengthy, yet meaningless. They lacked clear goals or actionable items, causing distractions and frequent context switching that hurt productivity.
Solo projects require zero meetings. This creates a distraction-free environment, allowing you to focus on work instead of being dragged into endless meetings.
Problem-solving Growth
“We have data to analyse the XYZ, but I don’t know front-end development, so…” I’ve heard myself saying this nonsense a lot – never addressing the real problem. I never even considered doing front-end development before.
If I had invested time in solo projects earlier in my career, I would have gained front-end development knowledge. I could have built several tools to improve the working process for my team. My ex-colleagues’ lives migh have been easier after I left the company.
Now, I’m equipped with more skills. One of my future projects is to create something I didn’t do in the past, hopefully solving my ex-colleagues’ and future colleagues’ problems.
While solo projects bring many benefits, there are also challenges to consider.
No Immediate Help
In a large organisation, help is usually readily available. Dependencies and infrastructure are managed by other teams, leaving you free to focus on the main logic of your application.
In a solo project, you have complete control – which also means you’re responsible for solving every problems, even those you lack knowledge of. Yes, development communities exist, but no one is obligated to help you. You have to take full responsibility for your own progress.
Over the past 4 weeks, I’ve struggled with many new concepts. I’ve spent time on Google, Stack Overflow, Reddit, and reading documentation. While tools like ChatGPT can be helpful, its knowledge is only up to date until September 2021. Many of it suggestions have been deprecated for ages.
Framework | Before Sep 2021 | Now |
---|---|---|
Spring Boot | 2.5.x | 3.4.x |
Next.js | 11 | 15 |
Full Accountability
In a solo project, there are no colleagues, no dependent teams, no managers, no meetings – just you. You have the freedom to do anything you want. It also means you have to take full accountability for all aspects of the project.
Many people start solo projects, but only a few can sustain them for long. It’s like blogging – I gave up twice in the 2000s and 2010s.
Even without meetings, staying focus on a solo project isn’t guaranteed. You could check your phone or reading things unrelated to the problems you’re solving. Solo projects demand a high level of discipline and motivation, which not everyone can maintain.
While solo projects come with their challenges, the benefits far outweigh the obstacles. You can solve your own problems, gain valuable skills, and even monetise your project. Even if monetisation isn’t your goal, the journey will teach you new skills and create something valuable for your portfolio.
Start your own solo project – you’ll gain experiences that are impossible to find in a large organisation.