Hacker News has many opinions about this post; read them
Every software engineer and IT person should do a stint in consulting.
I’m not talking about becoming one of those contractors who are billed out by their companies as “consultants” but are really just serial hired hands. I’m referring to a true consultant role, where you are paid to bring expertise, give advice, and drive technical change.
There are a few different ways to land in a role like this:
Go into business for yourself, as an independent consultant. But running your own business involves a whole bunch of other skills like sales and networking. This post is mainly focused on how consulting helps you become a better engineer, so I won’t spend much time on the independent option.
Work for a consulting firm in a senior-ish role. Depending on your specific flavor of experience, you may find a role like this easier to obtain in a giant corporation like Deloitte or Accenture, a boutique specialist shop like Trek10 (where I used to work) or somewhere in between. In any case, the “staff consultant” option gives you the engineering experience of consulting but removes the challenge of filling your own sales pipeline.
Work for a tech company in a customer-facing technical role: say, as a post-sales engineer or solutions architect. This option may have more behind-the-scenes continuity than the other two, but is fundamentally the same skillset.
Whichever you choose, I believe that every engineer should spend a portion of their career doing one of those 3 things. Working as a consultant unlocks career gains that are difficult, if not impossible, to achieve as an in-house engineer or engineering leader.
The Consultant Superpowers
A bird’s-eye view of the industry
Once you’ve worked with a few clients, you’ll realize that most of them aren’t as unique and special as they think they are. They’re facing the same organizational malaise and borrowing against the same technical debt as everybody else. You’ll quickly start to become a professional pattern-matcher, applying things that worked in company X to the problem you see in company Y. To the extent that “best practices” in tech are a real thing, this is where they come from.
I think I heard someone refer to this process of best-practices-emerging-through-consultancy as “thought laundering,” which sounds awful but can actually be sort of cool. Over time, you get the opportunity to build a playbook for success in your discipline that works in, like, 80% of cases. Most people probably won’t fully buy into your ideas, but you’ll know they work. You’ll know. Nobody can take that away from you.
Working on high-impact projects
You don’t bring in a consultant to help you maintain the status quo, but to help you drive change. As a consultant, you won’t be maintaining the old ActiveDirectory server. You’ll be figuring out how to migrate 2,000 people onto Google Workspace. (See how I throw in little things like that, now that I work for Google? I’m such a shill. You should unsubscribe.)
A good consulting gig is a constant stream of the most interesting projects on the market, a smorgasbord of tasty ways to improve your skills.
Actually getting stuff done
Sure, I know the stereotype that consultants are charlatans who leave things in a worse mess than they found them. On the other hand, doesn’t that describe plenty of the people who work internally at your company as well?
The difference is that consultants are brought in specifically because they have no allegiance to anyone other than the executive who hired them. They can skip the politics and just point out what needs to be done, even if it’s obvious. Especially if it’s obvious. It turns out that many of the changes companies need to make - whether technical or business-y - do not require obscure eureka moments or months of discovery. The smart people inside the company are probably aware of the elephants in the room already. They’re just too trapped in bureaucracy and broken processes to fight back.
This is how McKinsey can send 23-year-old analysts into the world’s biggest companies and still be taken seriously. They’re professional elephant-pointer-outers, not necessarily creative problem solvers. If you can work with a consultancy that engages at the executive level, you may find that you’re able to get more done in a few weeks than your in-house counterparts could ever do on their own.
Empathy for customer needs
You won’t be seven layers of teams away from the customer anymore, writing internal tooling and hoping everyone agrees you should still get paid. When you consult, there are zero filters between you and the effectiveness of your work. Consultants who don’t deliver as promised don’t last long. So you get good at listening, at documenting, at showing the value of your work. You learn to solve real problems, not fake ones - because that’s how you get paid now.
Improved "mean time to competence" on new skills
You’re not being paid consulting rates to learn on the job; your ramp-up time for any new technologies you encounter has to be extremely quick. Learning how to learn becomes a more important tool in your belt than any language or framework. Over time, this means you’ll surprise yourself by how quickly you assimilate new information.
I said a stint though, not necessarily a whole career
Consulting has downsides, and they multiply the longer you stay in the field. Even assuming the ideal situation, with an honest team and cool clients, you’ll start to deal with stuff like this:
Constant project churn is fatiguing
I mean, new projects are exciting, but at some point you just start to want to work on something familiar for a little bit. I genuinely don’t know how people deal with this after, like, 20 years. Context-switching just strips your gears after awhile.
No skin in the game
You’ll be graded on a short time horizon as a consultant. You’ll meet your deliverables, get paid, and move on to the next gig. This limits the scope of the change projects you can be meaningfully involved with. It also decouples you from the long-term business outcomes of your work. Unless you have unusually epic relationships with your clients, you may someday find yourself wanting to be more of a player, less of a coach.
Being a professional “expert” is hazardous to your growth
Cops, politicians, and consultants have this curse in common: they’re professionally incentivized to avoid admitting that they might be wrong.
When you walk onto a client site, you’re not there to learn, mess around, make mistakes, and try again. You’re there to know more than the client, get things right the first time, and make the VP look smart for hiring you.
I always found this to be a stressful and not particularly honest arrangement. I’m not an expert, I’m just a guy who reads the docs. I didn’t like having to project an air of competence that I didn’t always feel. Mainly because I was afraid I would eventually convince myself that I was an expert, too, and settle forever into the lowest point on the Dunning-Kruger curve.
Billable hours are the worst
Sorry, they just are. They suck. Paying for value aligns incentives better for everybody, and yet nobody wants to do it.
So why consult?
To wrap all of that up simply: while consulting is stressful and has weird incentives, it’s also a shortcut to getting very senior, very fast. It’s like mainlining 10 years of experience in a quarter of the time. You’ll start to think about tech in a business context. You’ll build your network. And when you do go back in-house, you’ll be the well-traveled engineer whom everybody will look to for insight.
I recommend to anyone who asks that they do at least a couple years of consulting at some point in their career. Be careful if you choose to work with a firm, though; plenty of them have richly-deserved reputations as “body shops” that burn up people in the service of horrible clients. I list some trusted consulting shops in my Best Jobs in Cloud updates, and suggest starting there.
Links and events
As mentioned above, I work at Google Cloud now! I tried to explain why on this podcast with Corey Quinn, but I think I should probably do a blog about it at some point as well. Staying uncomfortable is a key growth signal for me, and I definitely feel the scariness of leaving the warm and friendly AWS Hero community for the other cloud. More to come here.
Also, the Cloud Resume Challenge is now a book and a hand-curated jobs newsletter. You can give both as a gift to the aspiring cloud engineer in your life - just click the little “gift” icon at checkout. We all got to this point in our careers because somebody took a chance on us; let’s pay that chance forward.
Just for fun
You have superpowers!
As an engineer with experience in both product companies and consulting companies, I couldn't agree more! When I started Kingsmen, my goal was to create the environment where engineers could learn and grow at the pace you can only find as a consultant, yet give the depth and level of ownership you find at product companies. We've used our experience in healthcare to generate multi-year contracts delivering secure, scalable, microservice architectures to large pharma and other healthcare companies, and we're hiring Senior, Staff, and Principal level Engineers to help us change the way they do business. Drop me a line if you're ready for your stint in consultant - we haven't lost an Engineer yet :)
consulting blows. but... it does provide useful context and experience for how a lot of the world operates. i'm grateful for the experience but i'd never go back, especially since it's vastly better to build for oneself, if you can and if that's interesting.
... but, a lot of folks really like it. so, do what you need to do.