đŸ„‘

From Monolithic to Microservices: A Turning Point

Published at

Opportunities rarely announce themselves.

Can you recognize one when it shows up?

I’m not always sure I can.
But this time, I did—and it became the turning point for introducing microservices at our company.

From Burnout Recovery to Possibility#

It started in the months after avoiding team burnout.
Not long after we wrapped that project, a wave of resignations hit.
Morale dropped. Direction felt unclear. Watching great colleagues leave one by one, I seriously considered quitting too.

But due to personal circumstances, I couldn’t leave yet.
Still, I didn’t want to be a warm-body paycheck collector.

So I began scheduling 1:1s with engineers from other teams, hoping conversations might uncover new possibilities.

The Chance Conversation#

One chat was with K, an engineering manager I’d worked with before.
He mentioned the product team wanted to rebuild our customer support system.
If that wasn’t possible, they’d have to shove it into an aging legacy system—a known nightmare.

My gut reaction? Please, anything but that.
Then another thought hit me:

Isn’t this the perfect chance to push for Monorepo-based microservices?

A Strategic Pilot#

K and I proposed building the new support system on Monorepo architecture.

This wasn’t just a technical decision—it was a strategic move toward microservices.

Back during the failed upgrade project, I’d researched service decomposition, micro-frontend strategies, and monorepo vs. polyrepo trade-offs.
But theory is nothing without implementation.

The company had relied on a monolithic architecture for years.
Without proof of massive ROI, new architecture proposals rarely got approved.
But this support system was non-core—no existing service to migrate, no heavy user pressure—making it the perfect low-stakes environment to test Monorepo and service separation strategies.

We started fresh with a new repo, using it to validate our CICD pipelines and assess whether Monorepo could deliver clearer workflows and better scalability.

It was the testbed I’d been waiting for.

The risk?
If Monorepo failed here, convincing others to try again would be far harder.
If the support system didn’t meet expectations, trust in the architecture would drop to zero.

This was more than tech risk—it was a bet on team morale and future adoption.
I wanted the project to deliver not just a usable system, but proof that architectural transformation could improve delivery and be worth investing in.

First Wins#

As Project Owner, I ensured our Monorepo setup could support real-world service development.

K and I broke down the roadmap, I reviewed system designs, mapped out the microservice infrastructure we needed, and worked with the new platform team to build it.

To keep architecture aligned with product needs, I joined early planning sessions.
In return, I supported delivery planning for the support system itself—because customer success = architectural success 😄

We hit friction along the way.
That friction sparked a two-year internal knowledge-sharing initiative—60+ sessions that reshaped our team culture. (A story for another time.)

Through this pilot, we built a team capable of handling complex CICD, defining internal code conventions, creating architecture libraries, and delivering services.
The successful first release of this client-facing system formally established Monorepo as our new standard—and gave the company visible proof of its value.

Other teams soon followed.

Team-Level and Personal Shift#

Ironically, it was the inability to quit that pushed me to find a breakthrough.
The result? My long-standing goal—pushing microservices—became reality.

This wasn’t just about scalability or DX.
It marked a shift for our engineering team, equipping us to take on more complex, evolving challenges.

It reinforced one of my core beliefs in software engineering:

Resilience isn’t just a goal—it’s a foundation.

By treating this as a training ground, I gave teammates a chance to grow through meaningful challenges—building skills they’d carry well beyond this project.

That unspoken impact remains one of my proudest deliverables.

The Outcome#

All this started because I refused to sit around doing the bare minimum.
The project’s success led to my promotion to Staff Engineer.

But with that came a new question:

Am I really ready to be a Staff?

Series: From Senior to Staff(10/13)

My journey from Senior to Staff Engineer in 4 years.

//////