Again and again, I find myself going back to the summer of 2020. One of the hardest years of my career. And there have been quite a few.
We'd just lost our biggest client — a project with 20 people on it. Two weeks earlier, they'd told us everything was fine, big plans ahead. Then they got acquired, new management came in, and we were out.
I spent weeks scrambling to reassign people to smaller projects, trying to accelerate deals in the pipeline. But it was temporary patching, not a solution. Most of that team would have to go. It took us a year to fully climb out of that hole. And right in the middle of that crisis, our salary review cycle came due.
We'd built a thorough process for compensation reviews — twice a year by then because developer salaries were rising so fast. We analyzed market rates, gathered feedback from 1-on-1s and anonymous surveys, reviewed individual contributions, client feedback, risks of losing key people. Then I'd write personal letters to each person with the results. When we were 15 people, that felt warm and personal. By the time we hit 80, I didn't even know most of them by face or name anymore. But I couldn't let go of it — I felt responsible for my people as the founder. That summer, we decided some people wouldn't get raises. They expected them, but based on our analysis, they hadn't earned them. The only argument they had was "someone else pays more."
The responses came back quickly.
From people who actually cared, who put their soul into the work:
"Thank you so much! I know this review wasn't easy. I'm really grateful. And thank you for Employee of the Year — it means a lot to know that what I do is noticed and valued."
Those hit differently. Gratitude. Understanding. Connection.
But then there were the cold ones. Dry "thanks" followed by notice they were leaving. Or demands for calls to "discuss options" — with the clear subtext that they expected us to fight to keep them, and they'd graciously consider staying if we made it worth their while. Every time I got one of those, I felt this uncomfortable knot in my stomach. Like I'd failed them somehow, even though I knew they hadn't earned it. Some people we talked through it with — they understood, agreed they needed to step up. Others took it as a personal insult. I scheduled calls, walked through the details, spent hours on conversations. Looking back, I wasted so much time on people who didn't actually care about the company.
After one particularly cold response, I sat there feeling guilty — again — and something shifted.
Wait. What the fuck am I doing?
These people were coasting. They forgot to log hours, so invoices went out wrong and we had to reconcile with clients later. They missed updates to clients. They showed up late or not at all without warning. Other team members complained about them. And I was sitting here feeling bad about not giving them raises?
Meanwhile, the people who actually cared — who stayed late, who solved problems without being asked, who made clients happy — were getting less because I was paying people who didn't deserve it.
That's when it hit me:
When you pay bonuses and high salaries to people who don't earn them, you're stealing from the ones who do.
Because there's only one pocket. One budget. One pool of money.
We eventually created separate departmental budgets and a dedicated bonus pool funded by results. But at the end of the day, it all comes from the same place — the company's profit.
And when you give unearned money to passengers, you take earned money away from performers.
I let five people go. Not with regret — with relief. They expected us to fight for them, to make counteroffers, to beg them to stay. Instead, I said: "We appreciate your time here. Good luck with your next opportunity." They were shocked. The market was hot — everyone needed developers, salaries were skyrocketing. They thought they had leverage. But I'd realized something: keeping passengers wasn't just expensive. It was unfair to everyone else.
Around that time, I read The Great Game of Business. The founders had gone through a crisis too, and they'd solved it by making everyone feel like an owner — transparency around finances, clear KPIs, bonuses tied directly to outcomes.
We built our own version. I started sharing quarterly financial results with the team — a simplified P&L showing where we stood. Then we created what we called EGO Cookies: Expected Outcomes and Responsibilities tied to specific functions and metrics that directly impacted profit. We allocated 15% of net profit — after all expenses, salaries, taxes, everything — to a bonus pool.
Each person had a Google Sheet with formulas showing their functions, metrics, percentages, and exactly how much bonus they'd earn based on results. Completely transparent. You could see the bonus budget filling up in real time and calculate your own potential payout. Not everyone cared. A lot of developers, especially the younger ones, didn't want to engage with it. They knew they could jump to another company for more money anytime. That's the curse of outsourcing agencies — it's hard to build loyalty when the market keeps dangling bigger numbers. But about 50% of the team — mostly the "old guard" who'd been there for years — really bought in. They loved it.
That was hard for me, honestly. I'd started the company with this vision of warmth and family, not transactional relationships. But I was wrong about what that meant. Real warmth isn't paying everyone the same regardless of contribution. That's not kindness — that's weakness. Real warmth is recognizing and rewarding the people who actually care, who actually deliver, who actually deserve it. And being willing to let go of the ones who don't.
Look at your compensation structure — salaries, bonuses, perks, whatever you're paying.
Ask yourself honestly:
If the answers make you uncomfortable, you probably already know what needs to change.
You're not being kind by avoiding it. You're being unfair to the people who actually deserve more.
Here's my question this week:
Have you ever kept someone longer than you should have because you felt bad about letting them go — even though you knew they weren't pulling their weight?
Hit reply and tell me. I'm curious how many of us have made this same mistake.



