I'm an advocate for side projects. In many ways, I have to be. My career in software didn't start until a year after I built and published my first iOS apps. Had I never taken the initiative to develop products that make me money while I sleep, I never would have gotten my first high paying programming job.
The lesson to me is clear. Junior developers are disappearing because companies, and the people who run them, are risk averse. No boss I have ever met wanted to spend money to train me up on new skills. They want a pre-formed perfectly knowledgeable developer right out of the box. Project timelines and budgets are too tight, and developers are expensive.
Whether you like it or not, if you want to get ahead in this business, you have to take the mantle of learning new skills upon your own shoulders. Relish the few (and lucky) situations in which your employer is willing to develop your skills while doubling down on learning in your spare time.
It's a lot of hard work. It's not always fun or enjoyable. It means taking some risks. But the only other option, in my view, is career stagnation.
I use my side projects to boost my skills and my autonomy. I use them to gain business knowledge that makes me even more valuable when I finally pop my head up and see if anyone else is looking for someone who knows the new things I know.
With that said, some side projects are excellent vehicles for this. Others, less so. Let's dive into it, and you'll see what I mean.
This should be self-evident. There are a lot of things you can do in your spare time that won't teach you anything new or valuable. If I wanted to, I could easily start a side business picking up trash in parking lots. It pays a respectable $30-$50 an hour, and I'm turning my exercise time into cash.
Of course, if my goal is to increase my career-related skills, such a side hustle wouldn't be ideal. It's still not bad. You're increasing autonomy and getting some exercise, but there are probably some better things to do with your time.
When I started to feel dissatisfaction with my first programming job, I did one simple thing. I went on job boards for iOS developers, looked at the desired list of skills, and then systematically went about developing the skills people were asking for. It seems simple enough, and guess what, it worked!
I was able to double my effective hourly rate by simply practicing the things people seem to think they need (lol unit testing). I started side projects where I wrote the code in a test-driven way and added new features to my apps to take advantage of Apple's new SDKs.
Once I finished those projects, I was able to pop my head up, ask around, and get substantially better freelance gigs. I also increased the quality and competence of the teams I work with. Wow, double whammy! When you learn new skills, you also get to work with people you're probably going to like a lot more.
So here's the quick takeaway. Is there a related skill you haven't mastered yet? Is it something the marketplace values? Great! Now go start a project where you have to do the thing.
I believe in you. You can do the thing.
This is the bit of advice that scares people. They don't want to put themselves out there and ask for money. I should know. Last summer when I taught a class on product development, my students were almost universally opposed to asking for money for their apps.
I would strongly urge you to push past this primal disapproval-avoiding instinct. If you try anything worthwhile, there's a good chance you're going to offend some people. It's a part of the game. Your app will get negative reviews. Your articles will draw criticism, especially if you talk about anything worth talking about.
But here's the great thing about money. It stands in as a proxy for value. If people are willing to pay money for your product, it means you have created something of value. By definition that means your new skills are valuable.
I try to aim for self-contained products that, once built, can sit on the shelf and accumulate wealth for me while I sleep. So far, that has meant paid iOS and Android apps.
Each month, I get a deposit in my bank account, and it releases all sorts of dopamine. I get excited because it's chipping away at the total monthly revenue I need to generate in order to be completely independent. Those apps are a source of career autonomy.
The science is pretty clear on this one. People who have autonomy in their careers are way more happy than people who don't. Gaining some degree of financial independence is one of the ways you can get autonomy.
Once your yearly expenses are equal to the yearly passive income your products and investments generate, you won't have to work for anyone but yourself. If you do decide to stay at your job, you'll be doing it because you truly love the job and the people you're working with. It will feel better because it will be your choice.
Here's the takeaway: make sure your side project makes money because money gives you a greater degree of autonomy and autonomy makes you feel amazing.
I could have easily copied my competitors' apps or cloned some other product and learned all of the technical skills that are useful in a job hunt. But I probably would have burned out and stopped working on my apps. It would have been too boring.
Side projects are a wonderful space to exercise your human right to creative expression. You should do something interesting, remarkable, and unique. Otherwise, what's the point?
Lots of us are stuck in jobs where we don't get a ton of say in the creative decisions that get made. Many of us are seen as "just a developer," or someone who receives tasks on JIRA and merely writes code. You might not be able to rebel against this ridiculous notion at work, but you can certainly do so on your own time.
Your side projects should be a place for you to develop your non-coding skills. Don't hire someone to design your app's user interface. Read some books on design and do it yourself. Don't pay someone to write the copy. Learn the craft and write it yourself.
Ultimately, the purpose of having all this autonomy is to do your very best work. Take advantage of the lack of politics and 'design by committee' found in most jobs and enjoy the hell out of having all the creative control.
I left my first programming job because I couldn't convince my boss to work with a better designer. I poured all of my heart into the way the apps work, but we were neglecting the way the apps look and feel. I simply wasn't willing to put my name on those ugly products anymore.
Capitalism is the best system we've come up with so far, and I'm not holding out for basic income laws to pass. Until you have financial freedom, you have to work for someone else to make a buck. I wasn't able to leave that job right away, but that didn't stop me from spending a great deal of my spare time developing those coveted design skills.
Take out your creative urges on the side and those horrible decisions in your real job won't feel so horrible. On top of that, you will soon have products to show off your new skills. Be patient. It won't be long before you find a team more suited to your talents.
By all accounts if you were to follow the advice I just laid out, you might think it's a great time to go build a new social network. And while you would certainly develop new skills and eventually make money (maybe?), you would also be biting off way more than you can chew.
Most of my side projects take about 1-2 months to complete. This helps me avoid some of the common pitfalls many entrepreneurs make, one of which is the failure to ship.
My first iOS app was a random trick generator for snowboarders. It has every trick in the sport and a host of features the competition doesn't have. It's also well-designed.
Most importantly, it only took me a few months to build it.
Within that short period of time, I went from having no passive income to getting a payment from Apple every month. The feeling was so intoxicating and downright motivating that it pushed me to start other similar projects.
I want you to contrast this with the notion of starting some big hairy thing like The Next Facebook. When will you start collecting money? Who knows? In all likelihood, you could slave away for years without getting a result. Imagine the effect this will have on your motivation (hint: it won't feel good).
Believe it or not, I have also built things that did not go on to succeed. I learned the new skills, but it turned out the marketplace didn't value the product I created.
To me, that's still a good outcome because I didn't invest any more time than I needed to. I was able to walk away with the new skill and see if there are any buyers. Just because I wasn't able to create something of value with that skillset doesn't mean someone else can't employ me to build a valuable thing with it.
Keep your side projects short in scope. Try to earn your first dollar as soon as possible. Once you do, you will get a surge of dopamine that will push you to develop your idea further.
Nobody will pay you to learn new and valuable skills. Few bosses will actively help you become more autonomous. These days, on the job training is more of an exception than the norm. This is the reality I have adapted to.
You have to take your career into your own hands, and you have to do it with all of the resources available to you. Your time, your money, your energy, each of these is a finite resource that can propel you forward. How you decide to spend your limited resources determines how much happiness you'll derive from your career.
To me, side projects are a no-brainer. Everyone should be doing them. Hopefully I've shown you which ones are worth tackling and which ones aren't.