How To Find Creative and Meaningful Software Development Work

A lot is written about how to find cutting-edge work in software development. “Learn this tech over that tech.” “Take this bootcamp.” “Buy my ebook.” You know the drill.

Even more is written about how to make a certain amount of money in tech. Apply to this company. Jump through hoops. Silicon Valley. Buy my other ebook.

Not nearly enough is written about finding work that is fulfilling and meaningful. Companies label jobs as “challenging” all the time, but “challenging” usually turns out to mean that it’s a challenge to stay awake for all the tedious, repetitive tasks you’re doing all the time. There’s nothing fulfilling about most software projects.

And, if you ask me, being able to be creative and build interesting things is why you should become a software developer.

The things I’ve built

Here are some things I’ve built over the course of my career.

  • A fantasy sports game.
  • Smart electrical wiring software.
  • MMO strategy war game.
  • A stock market analysis platform.
  • Several card games.
  • A pet adoption platform.

You can say anything you want about my list of projects, but you can never call it boring. I’ve worked with people from every continent. I’ve worked from almost every continent. I’ve used a huge number of tools and technologies. I’ve had meetings with billionaires.

I got there by following my instinct and ignoring everybody’s advice.

Generic advice, generic work

If you’re starting out as a software developer, be careful who you get your advice from. Most people will tell you to niche down, focus on a narrow field (such as Shopify or landing pages), and keep grinding. If you’re a freelancer, you offer a sort of pre-packaged service to clients. If you’re a full-time employee, you handle one area of your employer’s business.

This approach works, but only under two conditions:

  1. You don’t mind doing the same thing over and over again until you retire.
  2. You know beforehand which area of software development you are best suited to, so you know what to specialize in.

If I can offer a small spoiler:

  1. You probably will.
  2. You probably don’t.

There are people who excel at offering repeatable services within a narrow niche — but they usually arrive at that point by experimenting with different technologies and different industries. Specialists in AWS integrations don’t start as specialists in AWS integrations. They learn about hosting, build things, practice Linux, talk to people, form opinions, and then eventually find that AWS is what they want to specialize in.

The trouble is, some then go on to sell advice to you, telling you to specialize in AWS without going through that natural process.

Cutting-edge technology VS cutting-edge problem-solving

Developers are often drawn to working with cutting-edge technologies. The problem with cutting-edge technologies is that they don’t remain cutting-edge for very long, so you find yourself tech-hopping through your career.

What if I told you that most interesting projects don’t require a cutting-edge tech stack?

Furthermore, what if I told you that a cutting-edge tech stack can be detrimental to finding interesting work? Remember my myriad projects from above? Here is the tech each one was based on:

  • Laravel
  • Laravel
  • Node.js
  • Laravel
  • Node.js
  • Laravel

How boring. Here’s a secret: using tried-and-true technology allows you to focus on solving meaningful problems and building interesting solutions. Composers don’t change their instruments for every symphony. Doing so would force them to expend a ton of energy on adopting new instruments instead of composing beautiful music.

Yet, software developers routinely do exactly that. If you want to find meaningful work, look for meaningful work. If you want to find work in The Current Trendy Tech, then look for that. The overlap between these two, at any given moment in time, is tiny.

How I find work

In the first couple of years of my freelance career, I found most of my projects through Upwork. During this time, I did a lot of things, from small Javascript projects to some of the major ones I listed above.

The one rule that guided me was to always avoid getting stuck in a rut. I’d always look for projects where I can work in new industries and apply my technical skills to new problems.

Through the breadth of experience gathered this way (and the diverse network I built along the way) I put myself in a position where I am regularly offered new projects through referrals and organic traffic. With this wealth of options, I get to be choosy. I decline most offers, accept a few, and once in a while, they end up being career-defining.


Most advice given to up-and-coming software developers is completely out of tune with human nature. Young people with rich potential want to explore different options and give themselves different challenges. If they decide to specialize along the way, it will be because they discover a passion for a particular industry or technology.

But, advice constantly tried to corral them in from the beginning of their careers: learn this tech, make a portfolio, offer this service, and keep doing it until you can make a living. Dreary.

Is it any wonder that so many decide that tech is not for them and give up?

“Deprived of meaningful work, men and women lose their reason for existence; they go stark, raving mad.”

— Fyodor Dostoevsky

Don't miss the next blog post!

I publish a new blog post every Wednesday. If you found this article useful, use the form at the bottom of this pageon the right to get a reminder in your inbox.

As a bonus, the newsletter features exclusive content not found in the blog.

Read more: