“Hello Side Project” — Tips to building a meaningful side project
Roller coaster of emotions
You found me in my bedroom just like the image above. One minute feeling on top of the world and the next smashing my keyboard endlessly trying to figure out the solution until mania hit. More often than not, you’ll find many side projects (or learning any new tech) hit that point. Some succeed, but for others it’s never more than a basic tutorial of the thing you are trying to learn. Throughout the years, I learned side projects are great for personal development. It can help you learn without the pressure of work, experiment with new tools, and keep sharp.
How to choose the right side project?
As I matured as an engineer, I found myself asking these questions when evaluating a side project.
- Why do I want to build “x”? — This can be as simple as “I think it’s a cool idea”. Your response to this will usually determine the next answer.
- What is your desired outcome? Is it to learn some new tech or accomplish a specific task? — Here, we can get a better understanding of how to approach the project. If you want to learn a new piece of technology, you will want to be sure the project is a good fit for the tech. Generally speaking, when it comes to a specific task, you might use something you are more familiar with to hit the ground running. My personal opinion is that you want to use the right tech for the job.
- Is this something you want others to use? — This can determine how mature your code or project should be.
It’s essential to answer these questions because it will give you a better idea of how to approach building your project.
Some tips when starting to build
- Define the MVP — even though it’s a side project, it’s always good to define the MVP. What is the problem you’re trying to solve, and what are the requirements? This is a practice that some engineers don’t fully appreciate. If you can break down the project by features needed vs features wanted, you can understand how to turn this project from “another side project” to something you pin in your Github profile.
- List all features — Once you determine the MVP you will have a good mindset and a good idea of where to begin building an application from scratch. Added tip: make a TODO list with upcoming feature ideas. This can let followers of the project understand the future state and possibly want to contribute!
- Treat it like production — This is a hard one because I know I am guilty of it. It’s easy to fall into the trap of just wanting the idea to work. If you are learning a new framework, treating your code like production will help you learn best practices and gain a deeper understanding of the tool.
- Write good documentation — In my opinion, the ability to write good documentation is an underrated skill for many engineers — especially earlier on in their careers. Why not practice with a side project? When others use the project it will test your documentation and provide feedback for where the gaps are. Another benefit of good documentation is that it can be a force function for truly understanding how the components work.
Side projects can take up a lot of time, but you can build something great with good planning and documentation. Just be open-minded about collaborating on those projects that make it out of the “side piece” zone. Nothing is more frustrating than the creator gatekeeping and not being open to new features or fixes.
If you enjoyed, want more advice, or want to hear some good software engineering stories. We speak more in-depth in Episode 3: The Side Piece. Follow the podcast: https://storypoints.buzzsprout.com/. We are on all major platforms!