Seven Lessons I’ve Learned Building a Successful Software Consulting Company

Here's what I've learned after 10 years of building awesome software.

Seven Lessons I’ve Learned Building a Successful Software Consulting Company
Photo by Rita Morais / Unsplash

This has been a big year for us so far. We added a bunch of new team members and exciting new clients. We are one of Inc. Magazine’s Best Workplaces. And we’re celebrating our 10-year anniversary.  It seems like a great moment to look back on what it took to get here and to share some lessons I've learned along the way. If you are just starting out or a couple of years in, I think I can help you out - or at least give it my best shot!

Here we go...

Lesson 1: Nothing is sold until it’s sold.

We launched InfernoRed on June 26th, 2012. Our goal was to build a company for software developers, by software developers and to work with people who shared our obsession with creating great code.  The three of us were ready to take on the world.

We felt good because we had several projects lined up right out of the gate – or so we thought. All of them fell apart within about a week and we were right back to square one.

That was rough, but we kept moving. Honestly, we didn't really have a choice. And soon after we got lucky with our first official project and client. Off we went. Even though I can barely remember that first week, I’ll never forget that nothing is guaranteed. Lesson one will always be to expect the unexpected and never assume it will be easy.

Lesson 2: Software developers care about a lot of things, but they care most about learning.

There’s a lot of talk about how to build cultures where technical people thrive. In my view, to create a company where software developers want to join, and more importantly stay, they must have the opportunity to learn. On the job, in their free time, and with their peers all. the. time.

The tech field never stops changing and the best engineers will keep changing with it. Developers want to be around other developers they can learn from. They also want projects that challenge them technically and give them new, interesting problems to solve.

Lesson 3: Software development is a personal, creative process done by people – support them in kind.

Software development isn’t just 1s and 0s. It’s a creative process that is filled with passion, challenges, highs, lows, frustration, and jubilation.  It’s a roller-coaster, emotional process that we love. It’s personal.

Our team takes great pride in our work, pouring our souls into the mission and into every single line of code.  For those in charge, I learned quickly this requires you to become a servant leader and support the humans with their hands on the keys.  Understand that people need time to rest, recover, and reflect.  You can’t just stand back and demand excellence.  You need to provide the right kind of benefits and support system for your team to thrive.  We’ve worked hard over the last ten years to do just that.

Lesson 4: Continuously engage with your team – personally.

I had never built a company before InfernoRed, but I had been in leadership positions.  One of the things I learned along the way was that leaders need to know when to lead and when to just listen.  You need to take the time to listen to your team and understand their motivations and goals.

In a small company like InfernoRed, we make a point to connect with each team member personally.  As you grow this becomes much harder to do.  We’ve recently implemented a continuous engagement platform that allows us to scale engagement.  We can routinely ask questions like: What are you working on? What do you need?  How can we help?  What are your goals?  How can we help you achieve your goals?

We love the tool, but I’ll also never stop picking up the phone or reaching out in person.

Lesson 5: Treat your team like adults.

It sounds obvious, but I’m surprised how difficult this is for some leaders. I see it all the time where companies fall into traps micromanaging their technical teams. It almost never works out well. In the age of remote work, it’s critical to trust your team.

A few years ago, I read a blog post from a CEO using the phrase “treat their team like adults” and that has always stuck with me. We trust people to be professional, to take care of themselves, and to truly create a work-life balance.  We do not assume to know exactly what that is for each individual and leave it up to them to manage their schedules and work. Hire experts. Trust them. Great things will happen.

Lesson 6:  Be an opportunistic company first and foremost.

A former boss of mine used to say that his company was “an opportunistic company.” I didn’t truly understand what he meant until I had my own team and needed to find work that was both interesting and meaningful.

We choose to be selective and focus on the opportunity rather than some arbitrary growth target to drive our business decisions.  I learned that by focusing on what the team enjoys doing both technically and by industry, we are far more likely to keep them happy and grow the company at the same time.

Lesson 7: Be responsive and focus on excellence.

I learned very early that being responsive is the most important thing you can do as a consultant or business owner.  I don’t know how many clients and projects we have had over the years simply because I responded quickly.  Often, I would get an email or a call and respond within a few minutes.  Our first large project came about not because we were the first company they called, but because we were the first to respond (see Lesson 1).

No consulting company has ever approached a potential client and said, “we don’t care about quality,” or “we don’t like to work with other people”.  However, I think many companies take these things for granted and don’t put enough emphasis on being responsive or having a no-compromise attitude toward excellence. We work with our team on all these areas, continuously inspecting, adapting, and learning how we can better serve each other every day.


I’m sure I could fill a book with all the lessons I've learned over the years. I’ve also learned that writing a book is a labor of love that you do for yourself.

I won’t be writing a book. I want to spend my time building an incredible team, an incredible company, and serving our awesome clients. And learning even more along the way.