Things I got wrong

Everyone shows their wins. Here are my losses. The mistakes I made, the lessons I learned, and what I'd do differently.

"Experience is what you get when you didn't get what you wanted." — Randy Pausch

Leadership 2022

Hired too fast, fired too slow

What happened

When scaling from 15 to 89 people, I prioritized speed over fit. We had open positions and pressure to fill them. I lowered the bar on some hires because we "needed bodies." Then when it was clear someone wasn't working out, I waited too long to act, hoping things would improve.

The cost

Team morale suffered. High performers got frustrated covering for underperformers. Projects slipped. By the time I acted, the damage was done. Some of my best people had already mentally checked out.

What I learned

  • It's better to be understaffed with A players than fully staffed with B players
  • When you know, you know. Trust your gut and act quickly
  • Keeping a bad hire hurts everyone, including the bad hire
Technical 2018-2020

Over-engineered when simple would do

What happened

I built a microservices architecture for a product that had 100 users. I was so focused on "doing it right" and "building for scale" that I created complexity we didn't need. Service mesh, event sourcing, CQRS — the whole enterprise playbook for a startup.

The cost

Development slowed to a crawl. Simple features took weeks. Debugging across services was a nightmare. New developers took months to onboard. We spent more time maintaining infrastructure than building product.

What I learned

  • Start with a monolith. Extract services when you feel real pain
  • Complexity is not a badge of honor. Simplicity is
  • Build for today's scale, design for tomorrow's
Business 2015-2023

Avoided selling like it was beneath me

What happened

For years, I thought being a great engineer was enough. I built amazing products and waited for people to discover them. I saw sales as manipulative, something for "business people." I was too proud to ask for what I wanted.

The cost

Good products died in obscurity. I missed opportunities because I didn't advocate for myself. Colleagues who were worse engineers but better communicators advanced faster. I stayed in my comfort zone while the world moved on.

What I learned

  • Selling is just helping people understand how you can solve their problems
  • If you don't advocate for your work, no one else will
  • The best product doesn't always win. The best-communicated product does
Personal 2016-2019

Burned out thinking I was invincible

What happened

I wore 80-hour weeks like a badge of honor. Sleep was for the weak. I missed family events, ignored my health, and convinced myself it was temporary. "Just until we ship this feature." "Just until we close this round." The goalposts kept moving.

The cost

My health suffered. Relationships strained. My decision-making got worse the more tired I got, which created more problems, which required more hours. I was running on a hamster wheel, getting nowhere fast.

What I learned

  • Sustainable pace beats heroic sprints every time
  • You can't pour from an empty cup
  • Family first, health first, human first — it's a principle now
Leadership 2020-2021

Couldn't let go of the code

What happened

As CTO, my job was to lead, not code. But I kept diving into PRs, rewriting things "the right way," and becoming a bottleneck. I didn't trust my team to make decisions. Every major change had to go through me.

The cost

I became a single point of failure. My team stopped taking initiative because they knew I'd change it anyway. I was exhausted from doing two jobs poorly instead of one job well. The team didn't grow because I wouldn't let them.

What I learned

  • Your job as a leader is to make yourself unnecessary
  • Done by the team is better than perfect by you
  • Trust is built by giving responsibility, not withholding it
Technical Ongoing

Chased every new framework

What happened

Every Hacker News post about a new technology sent me down a rabbit hole. New database? Let's try it. New frontend framework? Rewrite everything. New deployment tool? Migrate immediately. I was so focused on tools that I forgot about outcomes.

The cost

Projects never finished because I was always starting over with "better" tech. Teams got frustrated learning new stacks every quarter. We accumulated more tech debt from migrations than from actual development.

What I learned

  • Boring technology is usually the right choice
  • Rails has been my stack since 2012 for a reason — it works
  • Evaluate new tech in side projects, not production systems

Patterns I've noticed

Speed over quality

I tend to rush when I should slow down. Hiring, architecture, decisions.

🎛️

Control issues

Letting go is hard. Trusting others is harder. But necessary.

🔧

Builder bias

I'd rather build than sell. But building alone doesn't create impact.

I'm still making mistakes. The goal isn't perfection — it's to make new mistakes instead of repeating old ones.

If any of these resonate, I'd love to hear your story.

Still learning

I share these not because I've figured it all out, but because I haven't. The best conversations come from shared vulnerability.