(About a 10 minute read)

So the other day I realized I had hit the 10 year milestone of working as a professional software developer.

To celebrate the milestone, I wanted to record and share some of the accumulated wisdom over that time.

As I’m about to release a side project I’ve worked on for just over 2 years, and having almost always been engaged in one side project or another throughout my career, it felt fitting for my first article to be about side projects and my techniques for completing them.


In addition to hobbyists projects, this maybe most useful for those specifically wanting to create their own product or business. The prevailing advice out there seems to be to build something alongside the consistent income of a day job, then transition to full time once what you create on the side earns enough to cover itself and you and your family’s expenses.

The Problem

Managing side projects are hard, what with a day job, family and other commitments. This time pressure along with an ineffective approach is why a lot of them are abandoned before they’re even completed. This sucks because of the potential of them eventuating into big turning points in people’s careers and lives.

The Solution

The key I found is a combination of creating good mental tools, a maintainable schedule, and an effective process.

Mental Tools

Some of the main things that affect progress are the inevitable lulls of motivation, fluctuating energy levels, “laziness”, burnout. All of which are just apart of life.

So below are some effective mental tools for combating them that I have found the most useful.

Understanding Laziness

Quickly before getting into the tools, it is important to first understand laziness.

Realize that laziness used to be an effective human survival habbit.

Years back when it was all about survival, it was the thing that stopped you from going outside the cave more than you needed to, to preserve your energy, and because there’s a pretty good chance you’ll get mauled out there by a sabre-toothed tiger.

Today it’s a useless and counter-productive habbit we have inherited and the biggest thing that stops people from moving closer to our goals.

You will be well familiar with that lopsided battle of doing the “Thing You Should Be Doing (logic)” vs the “Thing Your Body Wants To Do (laziness)”.

This is the battle of your two minds.

Tool #1 – Your Second Mind

You’ve just had dinner after a day’s work, and you’re about to get stuck into your project, but there’s that usual feeling of “Ahhh I can’t be bothered, I just feel like playing games” or similar. And most of the time you cave in.

First thing to understand is your first mind, called the Thinking Mind, is producing these feelings. Unfortunately you can’t stop these feelings, and the more you fight it or try to control it, the more it gives power to that feeling, the more you’ll think about playing games, the more likely you’ll cave in and do it. It’s like quicksand.

What you might not realize is you have a second mind called the Observing Mind. This is the thing that starts coaching your ass through the last part of a tough workout. You feel like you want to quit, but there’s some thing in your mind that appears that keeps you going, it’s saying “No! You can do it! You’re almost there! Push!”.

We can’t (and shouldn’t) stop the Thinking Mind, but we can control the Observing Mind, which is what determines what to do with the feelings of the Thinking Mind.

Think of it like this: the feelings generated by the Thinking Mind are messages, and the Observing Mind is the controller; first reading and understanding the message, then accepting or ignoring it based on what it is.

The problem is, we don’t acknowledge we have this second mind or it’s power, and just do what all the messages say because we think that’s just how we feel. The good news is we have complete control over our Observing Mind in deciding what messages we accept and what we ignore.

We all have this basic controller, and the more we identify it is there and use it, the more effective it will become at discarding unwanted and distracting feelings generated from the Thinking Mind.

For me this technique helped the most to push through periods of burnout and lulls of enthusiasm, and to keep a consistent progress on the project. It actually amazed me how much more energetic I felt after discarding (not fighting) my first feeling of laziness.

This will be become one of your biggest tool in your mental tool belt.

Here’s an excerpt from the excellent article which introduced me to the concept:

These days I’m often able to sit down and write 5,000 words or more in a single day. I still feel the same anxiety. I still hear the same thoughts (“I need to eat first,” “I should take a nap,” “I’m not in a writing mood right now.”)

But now, instead of identifying with these thoughts, I acknowledge them: < “I feel nervousness about writing today.” “I have the thought that I need to eat first.” “I have the thought that I need to take a nap first.”

And then I turn to my Thinking Mind and promptly tell him that he’s full of shit and that I don’t need a damn thing except to sit my ass down and start writing.

I highly recommend stopping here and reading it over, it should only take about 10 minutes. Read here: http://markmanson.net/your-two-minds

Tool #2 – The Starting Line

What was the exact feeling that made you start the project in the first place, the thing which gave you motivation to start it?

Perhaps it was a fear of never moving out of home, or the wanting of creating something that is yours, or the hate of working for other people and wanting to work for yourself.

If that feeling was what motivated you to start, it can be used to motivate you through to the finish.

Remember that feeling as vividly as possible. Think about how it made you feel, maybe where you were, whether you were angry or sad, what you said to yourself at the time. Details.

As mentioned in the Two Minds section, the more you focus/think about a feeling, the more power it gets. In this case the feeling is motivation/enthusiasm.

How many times have you milled over and over in your mind about something that annoyed you, and you notice yourself getting angrier and angrier? Annoyed is a feeling. Motivation is a feeling too. Therefore, the more you think about a motivating feeling, the more motivation you can get out of it!

Use that quirk against itself to create a powerful on-hand motivational tool. Any time your motivation wanes, replay and visualize that feeling for an effective boost.

Tool #3 – The Finish Line

Picture yourself at the end of the project; imagine/visualize what the result will be like, depending on the intended result of the project. E.g. working for yourself/freedom, not getting up early in the morning, making better money, how cool your resume will look, etc. And how you will feel when it’s done; e.g. happy, accomplished, confident. And how others might feel; e.g. jealous, envious, impressed.

Motivating right?

Do the same with this feeling as in Tool #2, and develop the feeling.

Get instant motivation by thinking about it, visualizing it, feeling it.

Maintainable Schedule


In addition to your day job, you need to fit project work around your family as well. Negative tension or arguments around home can be very distracting, demotivating and usually a project killer.

That being said, it’s vital to get your family on-board with what you’re doing and what you hope to achieve. Involve them. They may even be able to help out. Either way, it is great and motivating to have people to show your progress to and to have a source of positive reinforcement, encouragement and feedback.

Work with them to decide a block of time where you can work peacefully, but it is just as vital to allocate a block of quality time with them as well. If you wish to protect your project time and still have a healthy relationship after it is done, you gotta compromise. You’re supposed to be a team after-all!

For me, my wife and I agreed that when I get home I help cook dinner together for about an hour, then spend an hour or so on the couch catching up on the day and playing with the dogs. Then about 8pm onwards is my project time while she is happy to do what she wants. We’re both happy and no guilty feelings.

Unwinding Time

So far it is quite a full schedule but given excitement and motivation it won’t feel like it, making it easy to overload yourself, so it is important and healthy to include in your schedule a small piece of time for your brain to relax.

For me this is the final hour of the day where I can unwind the mind and play some mindless Xbox or do something else similarly mindless and relaxing.

Do this after project work, just before bed, the point is to relax the mind to help get to sleep, but also because it becomes a reward for the day’s efforts.

Never do this before the project work though, because once you’re wound down it is very difficult to boot your brain back up to get anything done.

Meditation is another great way to clear the mind before sleep.

Sleep & Burnout

It should go without saying it’s wise to determine a bed time on weeknights, and allow yourself to recharge the batteries. But sometimes the enthusiasm for the project is too much.

While it is easy to give in to excitement and enthusiasm, it is important to monitor how much rest you get during the work week, as it’s easy to burnout from tiredness.

After pulling 2am weeknights for a month or so at one stage, nothing got done for about the same amount of time afterward because my brain had enough and needed to recharge. After some experimenting I found 12 midnight was my absolute limit, giving myself 7-8 hrs sleep before work the next day.

So it does seem to require some experimentation to see where your individual limits are.


What you do on weekends is fairly open-ended given far looser time constraints and differing commitments weekend to weekend, and will require experimentation and consultation with family.

If the idea of a late weekend night of tackling a big piece of work is exciting, embrace it! But try not let it eat into the healthy activities you would normally do on the weekend too e.g. getting out and about, going out at night with friends, etc. As by feeling restricted by your project can become a source of resentment, demotivation and burnout too.

Personally I like to make at least the same amount of contribution to the project on Saturday morning as I would during the week, so I feel good about going out and doing stuff later in the day/night.

Sunday’s the same deal, I like to accomplish a small piece of work early and then just enjoy the rest of the day chilling.

Effective Process

By now you should be able to efficiently carve out a slot of time to put a maintainable effort into your side project. So far we’ve addressed the how, now to address the what.

Break it right down

For your project, create 3 lists: TODO, DOING, and DONE. No guesses as to what their roles are.

Free online tools like Trello are great for managing these. Even post-it notes on a wall work.

List out all the tasks remaining in the TODO list. Go back over the list and further break down any tasks that still seem too big. They should be small, bite-sized actions.

Then order them by highest priority at the top, through to lowest at the bottom.

Here’s a somewhat contrived example of how breaking down a task might look:

First pass:


  • Get new wheels for bike

Second pass:


  • Decide wheel budget
  • Research treads and styles
  • Talk to Joe about his experience buying wheels
  • Decide on the set I want
  • Find best price
  • Purchase components
  • Install on bike

This might at first seem unnecessarily detailed, but the result we have now is:

  • There’s always at least 1 task at a size that fits the window of time you have available.
  • A lot of the time, broken down tasks don’t always have to be done in order, so you have the option of choosing which task you’d like to tackle based on energy levels and interest at the time.
  • You’re a lot less likely to forget anything important you might have missed earlier by not mentally exploring the task as much.
  • You get a much better sense of how long the task will take by thinking about and understanding all of the tasks components.
  • By prioritizing the list where the most important are at the top, you’re less likely to waste time with unimportant tasks, which get pushed down the bottom, or get deleted.
  • Moving stuff into the DONE column (no matter how small) is satisfying and motivating, and produces a feeling of progress. More post-its mean more post-its move.

Keep refining this list over time and as your project evolves.

Scope creep

What helped me greatly with scope creep, was having an additional “nice to have” list. This housed all the cool ideas and any tasks not absolutely necessary to get the first version of the project completed. This encouraged brainstorming, while staying focused on getting that first version out the door for feedback, and shortens your primary todo list of unecessary tasks.

Keep Moving Forward!

This is important. And is what a well broken down task list enables.

By doing at least a small bit every day, big or small, you create a momentum that moves you closer to completion.

Before long you’ll form a habit and things will become much more effortless.


What works for me might not work exactly for you, but the general concepts and advice should still apply. Tweak the different components until you find the sweet spot.

I’d love to hear if any of this helped you!