
I Delivered Three Major Projects and Got Fired Anyway
I walked out of that office with a dark blue envelope and a backpack.
Five years and three major production systems, a tech stack I rebuilt from the ground up, and what I got to take home was an envelope with my termination letter inside.
I stopped by a few desks on my way out, people I actually liked. Told them my manager had let me go, no reason given. Some of them looked surprised but most didn't, they'd seen it coming the same way I had. That slow quiet thing where your name stops appearing on meeting invites and someone else starts presenting your work. You know what's happening but you don't want to believe it because you shipped three projects that are still running and that should count for something.
It doesn't.
I drove home and walked through the door holding the envelope. My wife saw it and she didn't ask what happened, she just came and hugged me. When your husband walks in at 2 PM on a Tuesday holding a dark blue envelope from HR you don't need an explanation.
And then the part that most people in tech will never have to think about. I was on an L1 work visa, so the letter didn't just say "your employment is terminated." It meant I had 60 days to leave the country where my wife and I had been building a life. Sixty days.
Let me back up.
I didn't choose this job and this job didn't choose me. I was part of a corporate transition from Brazil, my previous project got discontinued and because I was already in the US on a visa the bank absorbed me into their org. Absorbed, not hired, and there's a big difference. Everyone in that building knew which one I was.
The team didn't want me there and the guy running the whole thing definitely didn't want me there. We got imposed on his operation through a decision that happened three levels above him. He smiled in meetings and made it clear in every other way that we were temporary guests in his house.
The tech was a disaster. Classic ASP, manual IIS deployments, the kind of setup where a production release meant someone remoting into a server at midnight and hoping nothing broke. Everything ran on tribal knowledge held by people who'd been doing it the same broken way for a decade and honestly liked it that way.
When I started proposing changes, and I mean real changes not suggestions in a retro that nobody reads, there was this one guy. Longest tenured developer on the team, and every idea I brought got the same response: "That won't work here." He didn't have a better idea, he'd just been there long enough that his comfort zone had become everyone else's ceiling. People listened to him not because he was right but because he was familiar, and I was the opposite of familiar.
I shipped three projects anyway.
First one was real-time payments. The bank was falling behind competitors who already had it and nobody on the team had the experience to build it. Nobody particularly wanted to try either because trying meant changing things and changing things meant admitting the old way wasn't good enough. I designed it, built it, shipped it.
Second was making account balances and transactions show up instantly in the mobile app. Before this a customer would send a payment and their balance wouldn't update for hours, sometimes longer, just money going into a black hole until batch processing caught up. After the project every transaction reflected immediately and customers could actually trust what their screen showed them. When it's someone's rent money sitting in limbo that stuff matters.
Third was the big one. I ripped out the entire deployment infrastructure and rebuilt it, manual IIS servers to Kubernetes, proper CI/CD pipelines, automated testing. The kind of work that changes how a team operates for years after you're gone.
Get the weekly breakdown
What the Agile industry sells vs what actually works. Data, war stories, no certification required. Free, unsubscribe anytime.
Three production systems, all still running, probably running right now while I write this.
So the third project, the infrastructure rebuild, was under a manager who was a nightmare. Narcissistic, territorial, the kind of person who sees your competence as a personal threat. When you do good work under someone like that you're not building your career, you're building their insecurity.
Midway through I got pulled to a different team to do the payments and real-time work. Felt like a rescue and for a while it was. Different manager, different energy, I could actually breathe for once.
Then that manager got let go. And guess where I got sent back to.
Right back to the guy I'd escaped.
He didn't do anything dramatic because that's not how it works. He just started erasing me. Week one I'm not on the architecture review invite. Week two someone else is presenting a design I created. Week three my responsibilities have been quietly redistributed and nobody sent an email about it. If you've never had this happen to you it sounds paranoid. "What do you mean you're being pushed out? You're still on the team." Yeah I was still on the team, I just wasn't on anything anymore.
And above him the guy who ran the whole org had never wanted us in the first place. We were the transition people, the obligation. I had zero political protection, no sponsor, no one in a room I wasn't in saying "we need to keep him, he built half our infrastructure." Nobody whose career was attached to my output.
I was an architect who shipped three major systems for an organization that had already decided I was temporary before I wrote my first line of code.
Now the 60 days thing.
Americans don't think about this and I don't blame them because why would you. If you get fired in the US and you're a citizen it sucks, you update your LinkedIn, file for unemployment, start interviewing. Your address doesn't change and your life doesn't get packed into boxes.
When you're on a work visa and you get fired your legal right to exist in the country is tied to that job, the same job that just ended. You go from "employed professional building a career" to "person with a countdown to deportation" in the time it takes to read a letter.
My wife had been going through a green card process, EB2-NIW, and it was already advanced enough that we didn't have to pack. We didn't have to call family in Brazil and explain that five years of building a life in Miami was being undone because a vindictive manager decided I was inconvenient.
But for about a week I didn't know if the timing would work out. Sixty days is nothing, it's not enough to find a new sponsor and it's barely enough to figure out your options. And it's way too much time to sit with the feeling of having delivered everything that was asked of you and watching it not matter because nobody who mattered cared.
Look, part of why I'm writing this is obvious. It still pisses me off years later. The systems are running, the manager is probably still there, and I'm the one who had to prove I deserved to stay in the country.
But the real reason is that I keep seeing this same pattern everywhere. Not just in my career but in every team I've worked with, every org I've consulted for, every frustrated engineer who messages me after reading something I wrote.
Organizations have two operating systems running at the same time. The visible one is the one with standups and sprint reviews and retros and burndown charts, where everyone shares what they're working on and the board gets updated and things look transparent and fair.
Then there's the invisible one. Where your manager is quietly removing your responsibilities, where the decision to fire you was made three months before anyone told you, where the architect who shipped three production systems has no protection because nobody powerful enough needs him to succeed.
I didn't have a name for this when it happened to me, I just felt it. Everything visible — the process, the ceremonies, the metrics — was telling one story and everything invisible was telling a completely different one.
That gap between what the process shows and what's actually happening is what I eventually started calling Risk Management Theater. Not because I read it in a book but because I lived it. The theater was perfect, every ceremony ran on time and every ticket was tracked and every standup happened, and underneath all of it a competent architect was being erased by a manager with a grudge and the process didn't capture a single second of it.
I built the RMT diagnostic because I wanted other people to see the gap before it cost them what it cost me. Five questions, ninety seconds. It won't tell you if your manager is planning to fire you but it might tell you whether your organization's process is actually protecting anyone or just performing protection.
Being good at your job is necessary but it will not save you, and I know this because I was good at my job and it did not save me. The projects shipped, the systems worked, the architecture was sound, and I drove home on a Tuesday afternoon with a blue envelope.
The common denominator in every time I've been in this situation is me. Not because I'm the problem technically but because I keep walking into burning buildings, putting out fires, and then being surprised when nobody thanks the firefighter after the building stops burning. Organizations need firefighters during the fire and after that the firefighter is just a guy who knows where all the structural damage is, and nobody wants that guy walking around.
I'm still figuring out how to stop being that guy. Or maybe how to be that guy but for something that's mine instead of something that belongs to people who see me as temporary.
This is the first thing I've built in 25 years that nobody can take away from me by handing me an envelope.
Is your organization performing control or practicing it?
The RMT Diagnostic is a 1-page PDF with 10 signs your team is trapped in Risk Management Theater. Takes 60 seconds. No certification required.
No spam. No "Agile tips." Just the diagnostic. Unsubscribe anytime.