Skip to main content
Back to Insights
Leadership

From Startup Founder to Enterprise Leader: 30 Years of Lessons

December 20, 2024
6 min read

Career insights from owning two software companies to leading enterprise engineering teams. Key lessons about scaling, hiring, and maintaining technical excellence.

I've spent 30 years in software, moving from startup founder to enterprise engineering leader. The transition taught me that what works at 5 people doesn't work at 50, and what works at 50 doesn't work at 500. Here's what I wish I'd known earlier.

The Startup Years: Learning by Doing

I started my first software company in 1991. No formal business training, no venture capital, just a belief that I could build better software than what existed. That confidence was both an asset and a liability.

The business covered three main areas: software development (including architecture), training, and consulting. This breadth taught me to see problems from multiple angles. As a developer, I built the solutions. As a trainer, I had to explain them clearly. As a consultant, I had to understand the business context.

In startups, you learn fast because mistakes hurt immediately. Bad code? You're the one maintaining it. Wrong technology choice? You're the one living with it. Unhappy customer? You're the one on the phone.

This direct feedback loop creates rapid learning, but it also creates blind spots. You optimize for survival, not sustainability. You build what works now, not what scales later.

Scaling: When Everything Changes

The first major transition happens when you can't do everything yourself anymore. You need to hire, delegate, and trust others with work you used to control directly.

I struggled with this. I'd built systems a certain way for years. New developers wanted to do things differently. My instinct was to say "no, do it my way." That doesn't scale.

What I Learned About Delegation

  • • Hire people smarter than you in their domain
  • • Define outcomes, not methods
  • • Accept that different doesn't mean wrong
  • • Build systems that work without you
  • • Document decisions so others can make similar ones

The Enterprise Transition: Different Rules

Moving from startup owner to enterprise engineering leader was jarring. Suddenly I had resources I'd never had before, but also constraints I'd never dealt with. Compliance requirements. Security reviews. Budget approval processes. Organizational politics.

My startup instinct was to move fast and fix things later. Enterprise reality is that some things can't be fixed later. Security breaches. Compliance violations. Data loss. The stakes are higher and the tolerance for risk is lower.

This isn't bureaucracy for its own sake. It's the accumulated wisdom of organizations that have been burned before. Learning to work within these constraints while still delivering value is the challenge.

Hiring: The Most Important Skill

I've hired hundreds of developers over 30 years. Early on, I hired for technical skills. Can they code? Do they know the technologies we use? That's necessary but not sufficient.

What matters more is judgment. Can they make good decisions when you're not there? Do they understand tradeoffs? Can they communicate technical concepts to non-technical stakeholders? Will they raise concerns before they become problems?

What I Look For Now

  • • Evidence of good judgment under uncertainty
  • • Ability to explain complex things simply
  • • Track record of finishing what they start
  • • Willingness to admit what they don't know
  • • Curiosity about the business, not just the technology

Architecture: Cloud, On-Prem, and Everything Between

Over 30 years, I've designed systems for every environment. On-premises data centers in the 90s and early 2000s. Hybrid cloud architectures during the transition. Fully cloud-native systems today. Each has different constraints and different opportunities.

The architecture work spans multiple levels. Software architecture (how components interact). Solutions architecture (how systems integrate). Cloud architecture (how infrastructure supports the application). The principles are consistent across all of them: manage complexity, enable change, optimize for the constraints that matter.

What I learned from consulting is that architecture isn't about picking the "best" solution. It's about picking the right solution for the specific context. The organization's capabilities, the team's skills, the timeline, the budget, the risk tolerance. All of these shape what "right" means.

Technical Excellence vs Business Value

As a startup founder, I learned that perfect code doesn't matter if the business fails. As an enterprise leader, I learned that shipping fast doesn't matter if you create technical debt that cripples future delivery.

The balance is context-dependent. A prototype needs different quality standards than a payment system. A feature for 10 users needs different scalability than one for 10 million users.

The skill is knowing which context you're in and making appropriate tradeoffs. This comes from experience and from understanding the business well enough to assess risk accurately.

Managing Distributed Teams

In my startup days, everyone was in the same office. You could walk over and ask a question. You knew who was working on what by looking around.

Enterprise teams are distributed. Nearshore developers in Latin America. Offshore teams in Eastern Europe or Asia. Remote workers across multiple time zones. This requires different management approaches.

The key is over-communicating and building systems that don't require synchronous interaction. Documentation becomes critical. Async communication becomes the default. Trust becomes essential because you can't see people working.

Training and Knowledge Transfer

Running a training business taught me how to explain technical concepts clearly. You can't hide behind jargon when someone is paying to learn from you. You have to break down complex ideas into understandable pieces.

This skill translates directly to leadership. Whether you're explaining architecture decisions to executives, onboarding new developers, or documenting systems, clarity matters. The best technical leaders are also the best teachers.

Training also taught me that people learn differently. Some need to see the big picture first. Others need to start with details. Good documentation and good teaching accommodate both approaches.

The Technology Treadmill

When I started, we built desktop applications in C++. Then web applications in ASP. Then .NET. Then cloud-native applications. Then microservices. Now AI integration.

The technology changes, but the fundamentals don't. Good architecture is still about managing complexity. Good code is still about clarity and maintainability. Good teams are still about trust and communication.

Don't chase every new technology. Adopt what solves real problems. Ignore the rest.

What Actually Matters

After 30 years, here's what I've learned matters most:

  • Relationships. Technical problems are easier to solve than people problems.
  • Clarity. Most problems come from unclear expectations or misaligned understanding.
  • Consistency. Reliable delivery beats heroic efforts.
  • Learning. The technology will change. Your ability to learn won't.
  • Judgment. Knowing when to move fast and when to slow down is the skill that matters.

The Path Forward

I'm still learning. Every project teaches something new. Every team presents different challenges. The difference now is I recognize patterns faster and make fewer mistakes.

If you're early in your career, focus on fundamentals. Learn to write clear code. Learn to communicate effectively. Learn to understand the business context. These skills compound over time.

If you're transitioning from startup to enterprise, embrace the constraints. They exist for reasons. Learn to work within them while still delivering value. It's a different game, but it's still about building great software.

Need Experienced Technical Leadership?

I work with organizations navigating technical transitions and scaling challenges.

Start a Conversation