# The Urge to Build Something

> Looking at my contribution graph now, I can see the whole journey mapped out in squares of green. The startup dreams. The pivot to teaching. The thousands of commits that represent years of building, learning, and growing. Every cluster tells a story. What will your graph look like a year from now?

Published: 2026-01-03. Author: Milan Jovanović.

Canonical: https://milanjovanovic.tech/blog/the-urge-to-build-something

There is a specific kind of restlessness that only developers understand.
It's a quiet, persistent itch.
A mental "background process" that runs while you're eating, showering, or trying to sleep.
I call it **the urge to build**.

Looking back at [my GitHub contribution graphs](https://github.com/m-jovanovic) from the last few years, I see more than just green squares.
I see a timeline of my own evolution.

I was **chasing that dream** many developers have: build a small product, ship it, get users, maybe turn it into a business.
Most of those ideas didn't become a successful SaaS.

But that wasn't the point.

The point was that I was building constantly.
Learning constantly.
Shipping constantly.

And I loved it.

## The Indie Hacker Dream

Back in 2020, my contribution graph shows the classic "burst" pattern.
I was chasing the indiehacker dream.
You know the one: build a SaaS, get to ramen profitability, escape the 9-to-5, tweet about your MRR milestones.
I consumed every bootstrapper podcast, every "I made $10K/month" blog post, every ProductHunt launch breakdown.

I was working on a project called [Expensely](https://github.com/m-jovanovic/expensely-server).
I spent late nights pouring myself into this "genius" idea: a budgeting app.

Nothing revolutionary.
The world didn't need another expense tracker.
But I needed to build it.

Looking back now, it was far from genius.
But at the time, I was convinced that this was _the one_.

![A GitHub contribution graph from 2020 showing a burst of activity in the end of the year.](https://milanjovanovic.tech/blogs/mnw_175/github_contributions_2020.png)

In 2021, that momentum stayed steady for five months before life (or perhaps reality) intervened.
Those green squares represent the **fun periods**.
They represent the thrill of architecting an application, the satisfaction of a passing test suite,
and the hope that you're building something that might change your life.

![A GitHub contribution graph from 2021 showing steady activity for the first five months and then a tapering off.](https://milanjovanovic.tech/blogs/mnw_175/github_contributions_2021.png)

Expensely never became a business.
Most side projects don't.
But here's what I've come to understand: the outcome wasn't the point.

Even though those projects didn't become the next big SaaS, they were the forge where my skills were sharpened.
You don't "waste" time building something that fails.
You only waste time when you don't build at all.
And I mean this both metaphorically and literally.
Humans are meant to create.
When we stop creating, we stagnate.

## What Building Actually Gives You

When you build something from scratch - when you own every decision from the database schema to the button colors - you learn differently.
There's no senior developer to ask.
No established patterns to follow.
Every problem is yours to solve.

You can use [Railway-Oriented Programming](https://fsharpforfunandprofit.com/rop/) if you want to, because who is going to stop you?

Jokes aside, **functional programming** is **very useful**. You should learn it.

![A screenshot of sample code implementing Railway-Oriented Programming in C#.](https://milanjovanovic.tech/blogs/mnw_175/rop_sample_code.png)

Through my side projects, I wrestled with authentication, background jobs, payment integrations, deployment pipelines.
I made mistakes and spent late nights fixing them.
I built features nobody asked for and skipped features everyone needed.

There is **one thing side projects can't teach you** (unless you get users): dealing with the **consequences of your decisions**.
When you build for yourself, the only person affected by your mistakes is you.
When you build for users, every bug, every outage, every poor design choice has real consequences.

By mid 2021, the project had wound down.
I was settling into a comfortable routine at my day job, working as a senior engineer at a big corporation.
There was no time left for side projects.

## The Unexpected Pivot

By 2022, something changed.
My contribution graph exploded to over 1,600 commits.
But the focus shifted.
I wasn't building a product anymore.
I was building something more meaningful.
The repositories shifted to my tech blog and [YouTube projects](https://www.youtube.com/@MilanJovanovicTech).

I had **discovered** content creation.

The urge to build hadn't disappeared.
I found a new outlet.
Instead of building products for users, I was building educational content for developers.
Instead of SaaS metrics, I was tracking video views and newsletter subscribers.
To me it was something new, something exciting.

![A GitHub contribution graph from 2022 showing steady activity throughout the year.](https://milanjovanovic.tech/blogs/mnw_175/github_contributions_2022.png)

I discovered that while I loved building software, I loved **explaining** it even more.
I transitioned from an aspiring founder to a software engineering educator.
At first it was just me writing and recording **things I wish someone had explained to me earlier**.

Then something interesting happened.

People started reading.
Watching.
Replying.
Asking questions.
More people showed up.
And then even more.

![A screenshot of the Milan Jovanovic Tech YouTube channel with over 140,000 subscribers.](https://milanjovanovic.tech/blogs/mnw_175/youtube_milanjovanovictech.png)

Today, I get to help thousands of developers around the world improve their careers.
It is, without a doubt, the **most rewarding work I've ever done**.

<div className="centered">
  ![A screenshot of testimonials from students of the Pragmatic Clean Architecture course.](https://milanjovanovic.tech/blogs/mnw_175/pca_testimonials.png)
</div>

<figure className="figure-center">
  ![A screenshot of testimonials from students of the Pragmatic Clean Architecture course.](https://milanjovanovic.tech/blogs/mnw_175/pca_testimonials.png)
  <figcaption>
    Student testimonials from [**Pragmatic Clean
    Architecture**](https://milanjovanovic.tech/pragmatic-clean-architecture).
  </figcaption>
</figure>

This is genuinely fulfilling work.
When someone messages me saying my content helped them land a job
or finally understand a concept they'd struggled with for years, that feeling is hard to describe.
I'm doing something meaningful.

And yet.

## The Lingering Itch

The urge to build something still remains.

It's not dissatisfaction.
It's not that content creation isn't "real" building, it absolutely is.
It's a different kind of building, certainly.
But this feeling I have is something more fundamental.
A part of my brain that wants to work on a fresh project.
That wants to solve a problem nobody has asked me to solve.
That wants to take an idea from nothing to something.

That's why I have a [Hetzner](https://www.hetzner.com/) server sitting idle right now.
Never know when I might need it.
Right?
Also, I'm getting a great deal for €3.29/month.
Can't argue with that.

![A screenshot of a Hetzner server management dashboard showing a server.](https://milanjovanovic.tech/blogs/mnw_175/hetzner_server.png)

I think this urge never fully goes away for people like us.
We can channel it, redirect it, find new outlets for it.
But it's always there, lingering.
And maybe that's okay.
Maybe that restlessness is what makes us who we are.

## Why You Should Build Too

If you're reading this with your own idea rattling around in your head - some app concept, some tool you wish existed,
some problem you think you could solve - I want to tell you something.

**Build it.**

Not because it will make you rich.
Statistically, it won't.
Not because it will become the next big thing.
It probably won't be that either.

**Build it because the person who finishes that project will not be the same person who started it.**
You will learn things no tutorial can teach.
You will develop judgment that only comes from making real decisions with real consequences.
You will have stories, opinions, and experiences that set you apart.

The outcome is almost beside the point.
The transformation is the product.

Maybe you'll end up with a successful SaaS.
Maybe you'll end up with a failed project and a mass of hard-won knowledge.
Maybe, like me, you'll end up somewhere you never expected - doing work you couldn't have imagined when you wrote that first line of code.

You won't know until you build.

So open your terminal.
Type `git init`.
And start.

Let this be a year of building.

---

## Frequently asked questions

### Are failed side projects a waste of time?

No. Projects that never become a business still sharpen your skills. You wrestle with authentication, background jobs, payment integrations, and deployment pipelines, and you own every decision along the way. You only waste time when you don't build at all.

### Why should developers build side projects?

Because the person who finishes a project is not the same person who started it. You learn things no tutorial can teach, develop judgment from making real decisions, and gain stories and opinions that set you apart. The transformation is the product, not the outcome.

### What do side projects teach you that a day job does not?

When you build from scratch you own every decision, from the database schema to the button colors. There is no senior developer to ask and no established patterns to follow, so every problem is yours to solve, which makes you learn differently.

### What can't side projects teach you?

Dealing with the consequences of your decisions, unless you get real users. When you build for yourself, the only person affected by your mistakes is you. When you build for users, every bug, outage, and poor design choice has real consequences.
