Table of Contents
It started like any other day:
Coffee in one hand, phone in the other, sitting in Nairobi traffic, waiting for five lanes of cars to pretend they were still on a two-lane road. I had time to kill and, more dangerously, full access to our production environment.
So, naturally, I opened my terminal app.
Because I’m a developer. And I make great decisions.
The Plan
All I wanted was to check logs. Just logs. Nothing crazy.
I SSH’d into our server like a responsible adult, ran a quick check, felt the rush of productivity, and thought, “You know what? I can merge that hotfix now. It’s tiny.”
Spoiler: it was not tiny.
The Tap That Changed Everything
One Git command led to another. A merge here, a push there.
Then — muscle memory struck.
I ran the deploy script.
With my thumb.
I looked down. The traffic hadn’t moved.
But production had.
The Realization
First came denial.
Then confusion.
Then the Slack notifications.
The staging environment was fine.
But staging wasn’t where I deployed.
Production was now running an unfinished branch named fix-css-final-final-test3
.
The Fallout
The login page went missing.
Images stopped loading.
Our CEO messaged the team: “Why does the homepage say ‘Hello test’?”
The team scrambled. I said nothing. I was still in traffic, sweating, pretending to be calm.
Then, I did what any mature, accountable engineer would do:
I blamed Jenkins.
The Fix
We rolled it back.
I got a passive-aggressive "accidental deploy" sticker added to my Slack profile.
The CTO made a new rule: No terminal apps on mobile. Ever.
And I… got off the Wi-Fi hotspot plan.
The Lesson
Just because you can deploy from your phone doesn’t mean you should.
And just because you’re in traffic doesn’t mean it’s the best time to touch production.
Be serious. Deploy with intention, not boredom.