July 19, 2020

Building Side Projects

Almost all my tech career I’ve been building side projects, and I’ve learnt a few things.

This post is a result of my learnings and understanding of the process of building side projects.

Project aim

Each project will have its reason you are trying to build it in the first place.

You might have many purposes at the same time. But it’s important to understand why you are building the project.

Lack of understanding usually brings more stress. If the project aim was to learn something new but you think about why the project isn’t bringing any income.

Learn something new

It’s self-explanatory. For learning something new. Whether it’s a technology, copywriting, marketing or whatever.

Project-based learning is one of the best ways to learn something new. Even if you don’t deliver the final product, you’ll learn what you were after, and can abandon the project mid-way.

Make more money

You want to build a project to make money - it can be either passive income, or making extra cash.

Side projects are different from building a project that would later become your full-time job like a startup.

They can become one, but I’d keep it in a separate directory. When building a potential startup or business - focus on it from day 1.

Experiment

Sometimes you might have an idea that you want to explore, but again, it’s more a mix of research and learning than actually building the project.

Relax

You might want to code to relax and enjoy the craft of building the project. To be honest, I never found it too relaxing, getting away from the laptop and having time off is a better way to relax.

Avoid problems

This is separate to the previous item. It’s more about escaping from real life’s problems and trying to have control over something.

Building side projects won’t solve your life problems. Facing these problems is a better approach.

End goal

I’ve put it separately to project aim. Having an end goal for your project is important for finishing the project.

If you know your destination, you don’t abandon the project midway, and also know when to stop.

It would allow you to have a sense of direction and align your decision-making process.

When you reach your goal you can always reevaluate if you want to continue and which direction to follow.

While working on an idea you will generate new ideas, so you would know where to head next.

For example, if your goal was to finish the project the next goal might be to market and sell it to others.

Abandoning the projects

In my experience, it’s ok to abandon the project mid-way if you got what you were aiming for.

If you include Pareto principle 80% of work can be done in 20% of the time and the remaining 20% of work will take 80% of the time.

Focusing on the latter 20% if you’ve already reached your goal only makes sense if you want to pursue it.

Even if you decide to stop working on the project you can always tell others what you’ve built. Upload code to GitHub, write a blog post.

Keep a log

It can be as simple as the notepad, or some app. There are daily journals which you can use to record what you did that day.

There are three main reasons for keeping a log file - you can track useful information.

For example, I save the links I found useful for some part of the app. Whether it’s some service, article, how-to, etc.

It can also serve as a context reminder. You might have many ideas on what to build while the product hasn’t taken shape yet. So keeping the context and getting back to work on what you were working last is crucial.

Finally, you can use the log file to record the journey of building your product.

Even if the product doesn’t fly, you will learn from it, either mistakes or new skills, and you can write about it. It’s part of the journey.

Maker communities

There are a few maker communities out there. It’s interesting to see and discuss the progress you and other make.

Makerlog is the one I use. It keeps the streak you mark the tasks you’ve completed that day, and it’s great to see the daily streak going up. It also allows you to accumulate rest days, which is useful for not getting burn out.

Maker communities allow you to discuss various topics, but they aren’t suitable for finding clients, it’s not what they are for.

You can get some feedback though, quick checks or some minor improvements for landing pages, etc.

Opportunity cost

Everything has an opportunity cost. Focusing on a side project means you’ll have less time to do other things. You need to be aware of this, and let your friends and family know about it. There will be less time for some chores or even your hobbies.

For example, I love reading, but from April I’ve chosen to focus on building McPiper. As a result, I didn’t have enough time to read as much as I’d prefer, and that’s ok.

Ship daily

One of the most important advice I can give when working on a side project is - ship daily.

Momentum is very important.

Making progress would motivate you to work on the project even more.

It doesn’t need to be a massive feature or change each day.

I keep a list of small things I need to change or fix. Because I won’t have a lot of time to work on my projects every day.

There are projects you can’t ship each day - mobile or desktop app, or even hardware. Make sure you work on your product and make progress and keep a log somewhere.

Shipping daily can sometimes have a side effect - it can burn you out.

Burn out

One of the major risks for building a side project is burning out.

Sometimes it can be challenging to find time to work on your side projects, at some points you might have less time.

Don’t forget to take time off or rest when you need it. It’s ok to not work on your side projects every day.

If you’ve burned out already - disconnect and don’t work on your projects for a week. Connect to your loved ones, friends, find anything you wanted to do but delayed, read, meditate. Avoid social media and video streaming services.

For longer-term - make sure you exercise, sleep well, eat right, drink plenty of water.

Another bit I’ve noticed is that burnout usually happens when you don’t get results you want for too long.

Stepping aside and processing your thoughts for a few days usually helps to see other things you can try.

Make Stuff, Tell People

When you work on something, don’t hide. Tell your ideas, share your experience, what’s working or not. It’s part of the journey, and it usually helps to get a fresh perspective, or you might get useful feedback. You can keep a weekly blog or vlog or some other *log and tell your story. This also helps you build an audience, not your potential customers, but other like-minded individuals.