Eight years ago, I was absolutely convinced of one thing:
I was ahead of the curve.
Not just good.
Not just competent.
Elite.
The kind of developer who would casually refactor your entire codebase before lunch and then explain distributed systems over coffee.
There was just one small issue.
My bank account disagreed.
For six straight months, I made exactly $0 from my side projects.
Not “almost something.”
Not “about to launch.”
Not “investor talks in progress.”
Zero.
And somehow, I still thought I was winning.
The “Top Developer” Era
At that time, I was working a regular developer job. Comfortable salary. Stable team. Safe environment.
I had two coworkers who couldn’t have been more different.
Richard.
Quiet. Focused. The kind of guy who solved algorithm problems for fun. If you asked him about time complexity, he didn’t hesitate — he just answered. Calmly. Correctly. No drama.
And then there was Ronald.
We called him “Smart Man”
Because he talked like a retired grandfather who accidentally became a software engineer.
He would say things like:
“Code is not for showing smart. Code is for solving problem.”
At the time, I internally translated that to:
“Okay, boomer.”
I believed I had already passed the “average developer” stage.
I knew JavaScript deeply. (Meaning: I could center a div without crying.)
I had built multiple CRUD apps.
I watched tech conference talks at 1.5x speed and nodded like I fully understood event loops and memory leaks.
I used phrases like:
- “This architecture isn’t scalable.”
- “We should decouple this layer.”
- “Long-term this will create technical debt.”
Meanwhile, I had never shipped a product that more than five people used.
But confidence? Oh, I had that in bulk.
The Six-Month Illusion
Here’s what my daily routine looked like during that period:
6:00 AM — Wake up. Watch a productivity video.
7:00 AM — Coffee. Open laptop like a warrior entering battle.
8:00 PM — Close laptop like a philosopher questioning existence.
I built:
- A task manager app
- A SaaS dashboard template
- A productivity Chrome extension
- A habit tracking app
- A startup landing page generator
Total combined revenue after six months: $0
Total real users: 0
Total installs of my Chrome extension: 5
Three of those installs were my laptop, my desktop, and my friend who clicked it out of pity.
I had analytics dashboards tracking visitors.
Daily active users: 1.
Guess who that was?
Me. Testing in incognito mode.
Still, I kept thinking:
“These ideas are just too advanced for the market.”
Classic delusion.
The Overengineering Disease
Looking back, my biggest problem wasn’t skill.
It was ego-driven engineering.
For a simple to-do app, I built:
- Custom state management
- Complex folder architecture
- Microservices (for 0 users)
- Docker setup
- CI/CD pipeline
- Detailed README
- Architecture diagrams in Figma
For who?
Nobody.
I was building skyscrapers in a desert and wondering why no one was renting apartments.
Meanwhile, Richard was freelancing quietly after work. Small gigs. Real clients. Real money.
Ronald was contributing to open source and writing blog posts about bugs he fixed.
I thought:
“They are playing small. I’m building something big.”
But “big” without validation is just expensive fantasy.
The Lunch That Broke My Ego
One random Tuesday during lunch break, Richard asked casually:
“So… how many users now?”
The tone wasn’t aggressive.
That made it worse.
I replied confidently:
“It’s not about users. It’s about architecture.”
There was a pause.
Ronald smiled.
That slow, grandfather smile.
Then he said:
“If nobody use it, you are architect of empty building.”
Everyone laughed.
I laughed too.
But internally?
Critical damage.
That sentence followed me home.
That night, I opened my analytics again.
0 users.
And for the first time, I didn’t blame marketing.
I asked myself:
“What if I’m not as good as I think?”
That question was the beginning of everything.
The Real Diagnosis
Here’s what I slowly understood over the next few months:
I wasn’t building products.
I was building validation for my ego.
I was:
- Avoiding marketing because “good products sell themselves.”
- Refusing feedback because “people don’t get the vision.”
- Overengineering because it made me feel advanced.
- Ignoring users because talking to them felt uncomfortable.
- Comparing myself only to junior developers.
Confidence without results is just delusion with good posture.
And I had perfect posture.
The Accidental Discovery
One night, around 1:30 AM, I was debugging a nasty async issue.
The classic:
“It works locally but breaks in production.”
After 45 minutes of frustration, I searched online and landed on an article.
It wasn’t from a famous engineer.
It wasn’t polished.
The grammar wasn’t perfect.
But it was honest.
The author explained:
- The exact bug
- Why it happened
- How they misunderstood something
- How they fixed it
- What they learned
No ego.
No “As a 10x engineer…”
Just real struggle.
I clicked the author’s profile.
Then another article.
Then another.
Soon I was reading story after story from developers sharing:
- Failed side projects
- Interview rejections
- Imposter syndrome
- Production disasters
- Salary negotiations
- Burnout
And something inside me shifted.
I felt relief.
Not because I solved the bug.
Because I realized:
Everyone struggles.
Even the ones who look confident.
The Small Shift That Changed Everything
Instead of launching another “revolutionary SaaS,” I tried something different.
I wrote a small article about a bug I fixed.
Nothing groundbreaking.
Just:
- What broke
- Why it broke
- What I misunderstood
- The fix
- The lesson
It took 40 minutes.
It felt vulnerable.
But I published it.
A few days later:
- 300 views
- 12 comments
- 4 developers thanking me
Four.
That was more users than all my apps combined.
So I wrote another one.
Then another.
I started:
- Sharing tiny lessons
- Asking beginner questions publicly
- Admitting when I didn’t know something
- Reading other people’s journeys
- Leaving thoughtful comments
And something strange happened.
Opportunities appeared.
A freelance message.
A collaboration invite.
A recruiter DM.
Someone asking if I could help debug their app.
Nothing explosive.
But real.
The Numbers Don’t Lie
Over the next two years:
- 100+ freelance proposals sent
- 80+ rejections
- 20+ failed side projects
- 3 serious burnout phases
- Countless refactors
- Hundreds of small bugs fixed
- Dozens of uncomfortable feedback conversations
But also:
- Consistent income
- Real clients
- Real users
- Better code
- Better communication
- Less ego
I stopped trying to impress imaginary senior engineers.
I started trying to be useful to real humans.
That changed everything.
What Smart Man Meant
Years later, I finally understood Ronald.
“Code is not for showing smart. Code is for solving problem.”
The market doesn’t reward your confidence.
It rewards value.
Nobody pays for:
- Your clean folder structure
- Your complex architecture diagram
- Your hot take on microservices
- Your GitHub star count
People pay for:
- Problems solved
- Time saved
- Revenue increased
- Headaches removed
It’s simple.
But not easy.
From $0 to Senior Developer
Becoming a senior developer wasn’t about mastering every framework.
It was about:
- Listening more than talking
- Shipping small things consistently
- Asking for feedback early
- Accepting I was wrong
- Teaching others what I learned
- Caring about outcomes, not just code
It wasn’t one breakthrough moment.
It was thousands of small, humbling corrections.
And honestly?
I’m grateful for those six broke months.
They destroyed the version of me that needed to look smart.
And built the version that focuses on being useful.
If You’re in Chapter One
If you’re currently in your:
“I’m a genius but nobody pays me” phase…
Congratulations.
You’re not failing.
You’re learning.
Just don’t stay there too long.
Build small.
Ship fast.
Ask users.
Listen carefully.
Write honestly.
Help others.
And if you have someone like Smart Man in your life…
Listen.
Especially when he smiles before destroying your ego.
That smile might save you six months.
Or maybe six years.
Top comments (26)
I'm struck by the humbling quality of this story, the way your ego got in the way of producing something truly useful. It's like when I was learning to play an instrument, and I'd spend hours trying to recreate some fancy solo, only to realize I'd forgotten the simple melody that made the whole song beautiful in the first place. The conversation with "Smart Man" must have been a turning point, it's amazing how a single conversation can shift our perspective like that, isn't it?
Thanks for sharing this life lesson, Art! It feels like you’re becoming a bit of a boomer yourself now 😉
What really struck me was when you mentioned Ronald’s line: “If nobody uses it, you are the architect of an empty building.” And especially when you talked about the hit your ego took.
I think, at some point, most of us go through that phase — the oversized ego, the certainty that we know better, and the temporary deafness to anything that challenges our vision. What makes the difference is what comes next.
Your real strength wasn’t avoiding that phase — it was being able to listen, reflect, and turn the experience into growth. Not everyone develops that kind of self-awareness. That’s what transforms a tough lesson into long-term wisdom.
Thanks again for the honest reflection — it’s the kind of perspective that helps the rest of us grow a little faster.
It's great and really impressive.
Nice approach
Professional!
Good
Everything are perfect!
wonderful!!!!
Thanks😀
wonderful, this is a powerful and humbling reminder that real success in development comes not from ego or complexity, but from consistently creating genuine value for real people.
Very brilliant post, wonderful
Thanks
This hit hard — the “architect of empty building” line perfectly captures the technical trap of overengineering without product validation, and I think many of us have hidden behind abstractions, microservices, and “future scalability” instead of solving one painful user problem well. I’m really interested in exploring how we can balance solid architecture with fast validation
Some comments may only be visible to logged-in visitors. Sign in to view all comments.