The Ultimate Guide for Side projects

In the last ten years or so, I made myself a habit to maintain at least one side project at every given moment. Those side projects served a couple of purposes:

  1. Learn new things- it can be a new technology, to experience with a new field or to acquire a new capability. Build something- it’s nice and fulfilling when you can show your product to others, or take a look at something and know you’re the one that created it.

  2. Refreshing- it’s a great way to get out of your comfort zone and do something different from your day to day job.

These points were are in order of importance to me. Personally, most of the times my primary goal was to learn something new. 

There are a lot of articles about what is a side project. You can read about it here or here.   Here are some of my examples:

  • Building a 3D model of my house- back in the day I thought about applying for a job at Pixar. So to increase my chances to get there as a software engineer I decided to learn how to work with Maya.

  • Building a bill splitting app- as part of exploring new fields I wanted to experience with developing a user interface product. That’s why I created the BillSplitter app, which later helped me get hired by a mobile startup.

  • Decorate my children’s room- when I was young I loved drawing, but I didn’t have time to do that since then. So I used the opportunity to learn how to how to draw with acrylic colors and sketch some stuff in our children’s room before my older daughter came to the world (and added another one for our baby boy).

  • Write a blog- to practice my English I started to publish content regularly. I might have gone viral, but my English is still not as good as I wish.

Those just a few representative examples to give you a sense of what can side project looks like and what you can achieve. 

Some projects can help you learn something new that relevant to your role (Android, Kotlin, Gatsby.js, etc.). Other projects can give you an option to touch aspects of your jobs that you not regularly have time to (product, marketing, design, etc.). And some projects just let you do something entirely new (write a blog, doing a talk).

After years of maintaining side projects, I understand that there are some elements of useful and effective side projects. If in the past I could work 10+ hours a week on a side project, now, with two small children I have only around 4 hours to work on it.

So I want to share with you some principles to get out the most with your time. So let’s start:

1. Decide what you want to learn

Before starting building something, think what you aim to achieve from this project. What do you want to learn? What do you want to practice?

This should be one thing and one thing only. Sure, you might get other things along the way as well, but focus on one thing at first.

Setting one single goal will latter help you along the project with all kind of decision you’ll tackle, for example: should you write tests? If your primary goal is to practice responsive design- so not, it’s not relevant.

Remember- we want to get the most in the little time as possible, so we want to pay attention to what we’re working on (and more precisely- what’s not).

2. Choose a product that you would use

Next, we need to decide what we want to build. There are plenty of resources out there for ideas to side projects that you can create. Go over them to get a sense of the options you have and then ignore them altogether.

Your side project should be something you (theoretically) would use.

It has two reasons:

  1. They’re going to be ups and downs along the way. You will have days when you’ll be extremely excited about the project (especially on start), but there will be times when you’ll need to find the energy to skip this new Netflix show and fix some weird bug in your project. If you aren’t related to the thing, it won’t stay long.

  2. Most of the time you’ll be alone here. No product manager or boss that tells you what to do. You’ll need to figure what to do on your own, and the best way to do it is to build this thing for yourself.

3. Not too hard but not too easy

Now when it comes to building the project, it’s important to aim to the right level- that’s mean not too hard for you but also not too easy. 

That way you’ll stay motivated along the project, and it will help you with a sense of achievement. It’s called the Goldilocks Rule, and you can read more about it here.

4. Break it into a small deliverable chunks

Before you start doing the thing- you should sit and plan.

With as much as boring and tedious as it sounds, building a rough roadmap for the side project will help you later.

Those should not be significant milestones; it should be very very small checkpoints that you can achieve in every “sprint” (usually a week or so). 

Here is an example for one that I can think of for a simple chat web app:

  1. setting app the environment
  2. make one client work locally
  3. sync data with the server
  4. make the remote client work
  5. styling
  6. deploy

Here is another one for a blog post:

  1. writing outline
  2. writing section I
  3. writing section II
  4. writing section III
  5. introduction and summary
  6. adding relevant links
  7. layout and image
  8. publish and sharing

Again, it comes to serve two purposes:

  1. Focus- as said, you won’t have much time here and every minute counts. You need to know exactly what you need to do and enter the zone as quickest as possible.

  2. Getting in and out of context- since it might be days or even weeks since you last worked on the side projects, it will be very hard for you to create a seamless continuing workflow. Continue from the exact point you stopped, and understand the context might take an hour or two. That’s why it’s better to close every session so you’ll have a fresh start in the next round.

5. Make it a habit

I learned that consistency is the name of the game, so it’s more important to work on the side project for a couple of weeks than trying to squeeze it up for a 12 hours marathon and never come back.

That’s why it was necessary for me to make the whole thing just a habit- I know exactly what I’m doing every Friday when the clock shows 10 am: I open my mac and continue working from the last point I stopped last week.

Since I’m doing the project at home, and working from home is not something that I’m doing on my day to day- I also put my self in a state of mind of working: sitting in a specific place, with a particular setup.

That way I’m entering a work mode easily without really thinking what should I do now or whether this is the right time or place to work on the side project.

I also try to keep that habit for as many straight weeks as possible, even for just an hour. I found it that when I’m starting to miss even one time- it’s a slippery road from there to skip it for more and more weeks later. You can read more about it here.

6. Perfection is your enemy.

When the times goes by it’ll be easy sometimes to go down the rabbit hole because you want to change some text font or waste your time chasing a small bug- don’t let that happen!

Remember that we want to achieve as much as we can in the little time possible, so always remind yourself what you’re here for and focus on the important stuff.

Done is better than perfect, and you should keep the wheel spinning. 

It’ll help you with the sense of accomplishment. The worst thing that can happen to you is to wake up after 5 hours session to realize you just spent the whole day yak shaving without really making any progress.

Side projects are an excellent opportunity to acquire new skills and experience in stuff that you not usually have the chance to do on your day-to-day.

As with anything new- it’s probably easier to keep up on start when you’re still excited, the secret is how you maintain this feeling and make this excitement lasting even on times that you feel tired. Hopes those tips will motivate you building great products and learn something new.

If you enjoyed this post, please hit the “recommend” button below and share this story with your friends. I’ll also love hearing about any other tips that you have or any cool side project that you’re currently working on. Thank you!