Apr 14, 20224 min read

Leadership for Building a Successful Software Company

What I've learned leading engineering teams across 3 time zones — the systems that work and the mistakes I made along the way.

Leadership for Building a Successful Software Company

No institution can possibly survive if it needs geniuses or supermen to manage it. It must be organized in such a way as to be able to get along under a leadership composed of average human beings.

Peter Drucker

I've led teams across Ukraine, UAE, and Europe. Some shipped products handling 150+ orders per second. Others imploded within months. The difference was never about hiring "10x engineers" — it was about building systems where average people could do exceptional work.

Here's what actually works.

1. Culture is a system, not a vibe

Early in my career, I thought culture meant ping-pong tables and team lunches. Wrong.

Culture is the set of behaviors that get rewarded and punished (see Building Engineering Culture). If you say "we value quality" but ship broken features to hit deadlines, your real culture is "deadlines over quality." People notice.

What I do now:

  • Write down the 3-5 behaviors that matter most
  • Reference them in every performance review
  • Fire people who violate them, even if they're productive

The teams that worked best had explicit norms: "We don't merge without tests." "We escalate blockers within 4 hours." "We document decisions, not just outcomes."

2. Agile is a tool, not a religion

I've seen teams religiously follow Scrum ceremonies while shipping nothing of value. I've also seen teams with zero process ship excellent products.

The point of agile isn't the rituals — it's short feedback loops and the ability to change direction fast.

What actually matters:

  • Can you ship something in 2 weeks or less?
  • Do you know what's blocking progress right now?
  • Can you kill a feature mid-sprint if data says it's wrong?

If yes, your process is working. If no, no amount of standups will fix it.

3. Learning happens on the job, not in courses

I've approved thousands in training budgets. Most of it was wasted. The engineers who grew fastest learned by doing hard things with support — not by watching tutorials.

What I do instead:

  • Pair senior and junior engineers on real problems
  • Give stretch assignments with a safety net
  • Run post-mortems that focus on "what did we learn" not "who screwed up" (see Post-Mortem Analysis for a practical example)

The best investment I made was a weekly 30-minute "show and tell" where anyone could demo something they built or learned. Zero prep required. It created a culture where learning was visible and celebrated.

4. Diversity is a hiring problem, not a policy problem

You don't get diverse teams by writing inclusive job descriptions. You get them by actively sourcing from different pools and removing bias from your evaluation process (more on Hiring Engineers: What Actually Matters).

Practical changes that worked:

  • Blind resume review (remove names, photos, school names)
  • Standardized interview questions with rubrics
  • Multiple interviewers from different backgrounds
  • Track your pipeline data — if 90% of candidates are from one demographic, fix your sourcing

The most innovative team I built had a former teacher, a self-taught developer from a coding bootcamp, and a physicist who switched careers. They saw problems differently than a team of CS grads from the same three universities.

5. Lead by doing, not by talking

The fastest way to lose credibility is to ask your team to do things you won't do yourself.

When I ask for on-call rotations, I take shifts. When I ask for documentation, I write docs. When we're behind on a deadline, I'm in the codebase — not just in meetings asking for status updates.

This doesn't mean doing everyone's job. It means being willing to do the work you ask others to do.


The bottom line: Great software companies aren't built by genius leaders. They're built by leaders who create systems where good people can do their best work — clear expectations, fast feedback, psychological safety, and the tools to succeed.

That's it. No magic required.

Enjoyed this article?

Share it with others or connect with me