Hacker News new | past | comments | ask | show | jobs | submit login
Every engineer should do a stint in consulting (cloudirregular.substack.com)
321 points by forrestbrazeal on Sept 16, 2021 | hide | past | favorite | 172 comments

Here in Mexico we have an opposite view of this: The majority of developers have spent their professional life doing "consulting" jobs in outsourcing firms. Few devs have experience developing a product and taking care of it 2 or 3 years later.

The difference shows in the type of code they do, the "ownership" and engagement they have: Those with a consulting mind will do something and then have the notion that once its "done" they don't have to care about it. Those that have been bitten by their own code from the past have a better notion on how to write maintainable code.

Based on my own experience as both an employee (~10 years) and consultant (~5 years) in The Netherlands, I'd say in The Netherlands generally the more experienced, more skilled workers tend to go into consulting. Most consultants I worked with did deliver better results and seemed to be slacking less.

I attribute this to the following with regards to work culture in The Netherlands:

- developers mostly interested in job security or promoting into higher roles within a company stay employees

- developers who feel that as an employee they are underpaid with regards to their skills and abilities, these developers tend to move into consulting as it gives them more control over their income, since as a consultant they choose their own rates - these kinds of developers are likely not interested into management roles as well (or they might opt into consulting as PM, SCRUM master perhaps)

Just to be clear, you're talking about freelance consulting in NL, correct? I can believe that. Based on my conversations with peers, the big consulting firms seem to be the exact opposite however:

- Spending endless time on useless reports.

- Technically ancient development practices.

- Delivering "courses" or workshops to clients on topics they only themselves learned about 2 weeks earlier.

- Extremely low starting salaries, with long working hours, and a ladder culture that's been described to me as very corps-like (dutch name for fraternities).

As a relatively fresh FTE, the "big consulting shops" have given me the strong impression that it is where technical prowess goes to die.

Yes I meant freelance consulting. People working at big consulting firms are just employees.

Employee vs. consultant aren't mutually exclusive right? Were you thinking of employee vs. contractor?

I guess when I think of a consultant, in my mind it's implied a contractor. I think most people in The Netherlands would think the same and maybe it's a language or culture thing.

Yes, I did mean contractor.

Employee and contractor/consultant/freelancer aren't necessarily mutually exclusive -- they can be "layered".

There are "management" companies that will employ you full time, and draw up contracts with other clients, who pay them directly, then they take a cut of their fees, withhold income tax, and pay you the rest.

But they don't find clients for you, and it's nothing like working for a "big consulting company" (i.e. outsourcing shop): it's up to you to find the clients, and to agree with them on the work and the rate.

Of course you need to have an agreeable client(s) before they will hire you: they won't help you look for work, and don't interact with your clients beyond drawing up contracts, sending them invoices, and taking their money.

I've worked as a full time employee of the Dutch branches of a couple of international "payroll management" companies (Segment BV and TCP Solutions), in order to qualify for the Dutch "30% Ruling" for highly skilled migrants (which makes 30% of your gross income tax free, which is game changing especially in the higher brackets, and it has other benefits, which more than offset the management company's fees).

30% tax ruling in the Netherlands. Get to know the benefits of the 30% reimbursement ruling for highly skilled migrants and see if the tax advantage applies to you:


>Are you eligible to apply for the 30% tax ruling?

>The most important factors are:

>The employee has to transfer or be recruited from abroad by a Dutch employer;

>The employer and employee have to agree in writing that the 30% ruling is applicable;

>The employee should have skills or expertise that is scarce in the Dutch job market;

>The employee must meet a salary threshold (this is indexed annually).

>Read more in-depth information about the 30% ruling, discover more benefits of the ruling, and find out whether you are eligible. https://www.iamsterdam.com/en/living/take-care-of-official-m...

Segment BV:


TCP Solutions:


TCP Solutions bills themselves as doing payroll services, HR services, fast payout and pre-financing, and recruiting and working abroad, and they help out with compliance with Dutch laws, taxes, and regulations.

I initially applied for a full time job at TomTom in Amsterdam, but since it's hard to fire of somebody with a full time contract in the Netherlands, they first hired me as a consultant through Segment BV for a three month trial period, to see if I was a good fit.

After the trial period went well and they were happy with my work (which gave me a lot of leverage), they made me a decent offer for a full time employment contract, including relocation and hiring bonus and a good salary.

Although the full time salary TomTom offered was great for the Netherlands, it was actually less than the net amount I was being paid through the management company as a consultant. However TomTom's relocation and hiring bonus and full time benefits and stability made up for that, something a management company doesn't give you.

The key role the management company served was to hire me full time as an employee of their Dutch company, which qualified me for the 30% ruling (successfully applying for which requires some specialized governmental bureaucratic expertise that TomTom wasn't good at), so Segment BV handled applying for the 30% ruling, my residence permit, did my taxes, and other stuff like that. TomTom paid them directly, they took their fee from that, and payed me the rest. When TomTom finally hired me, the 30% ruling was smoothly transferred from Segment to TomTom, with their help.

But then I left TomTom after a while, because I got an offer I couldn't refuse to work from home as a contractor for a US startup on an exciting project for more than TomTom was paying me, but I still wanted to stay in Amsterdam and benefit from the 30% ruling, so I still needed to be employed full time by a Dutch company. And I also wanted to work for another old client at the same time, who wanted me to work on some code I'd written for them years ago (and still am maintaining).

So I found another management company in Amsterdam (TCP Solutions) like the one TomTom used to hire me, then they hired me and wrote up contracts with my new and old clients, transferred and handled the 30% ruling, and I worked directly for TCP as a full time salaried employee (and indirectly for several other clients) for many years, until the 30% ruling finally expired (after a decade, but it's shorter now).

TCP Solutions required me to have one "main" client that payed me at least a certain amount of money regularly, and then I could have additional side contracts on top of that, so the salary varied over time depending on the number of contracts and the hours I worked. They did charge a hefty fee for drawing up each contract, though. But the 30% ruling made it worth it.

There's nothing shady or sneaky about the arrangement -- just the opposite: they're a "compliance" service that makes sure I follow all the Dutch rules and regulations and pay my taxes. They operate in the sector of "organizational consultancy firms":


>The activities of Segment BV (among others) take place in the sector: Organizational consultancy firms. The main category in the SBI subdivision that the Chamber of Commerce uses is: 'Consultancy, research and other specialist business services' and in this case is further subdivided into: 'Holdings (not financial), group services within own group and management advice', subcategory 'Consultancy in the field of management and business operations'.

But at the point the 30% ruling expired after 10 years, I no longer needed to be employed full time by a Dutch company to qualify, so it made a lot more sense to start a Dutch Eenmanszaak (sole proprietorship) and actually work as a freelancer instead of a full time employee. Now I can deduct my business expenses, which I couldn't do as a full time employee, and I can draw up my own contracts, and have a lot more freedom and less overhead.

> There are "management" companies that will employ you full time, and draw up contracts with other clients, who pay them directly, then they take a cut of their fees, withhold income tax, and pay you the rest.

This sounds partially similar to how barristers' chambers work here in the UK. The chambers' clerks manage the barristers' contracts but also find them work, unlike in your example. In turn the chambers takes a cut of the barrister's fees (and the clerks, traditionally Cockneys with sales skills, can earn well into the middle hundreds of thousands: https://www.bloomberg.com/news/features/2017-05-23/the-exqui...). Pupil barristers who are still in training are paid a salary of £50-100k or so, which comes out of the 'pot' that the fees go into, but after that point they have no guaranteed earnings. The barristers are obliged to take any contracts they are offered (https://en.wikipedia.org/wiki/Cab-rank_rule),

I think that would be an interesting model to adopt for software engineers. You would join a 'chambers' which has a good reputation, and, by accepting you as a member, they would signify that you're a talented engineer. They would do the work of finding clients - which after all isn't a natural part of an engineer's skillset - and take a cut in return. Essentially the chambers is being compensated not only for literally finding a contract, but also for the reputation which they built up over many years, which is valuable both for clients (who know they can find good professionals) and professionals (who know they can get good and steady work).

It sounds more like an umbrella company than a chambers if I reading it correctly. in that they aren't finding you work like a chambers would

And that is why (as a Dutch citizen) I’m not working in the Netherlands any more.

It’d be pretty nice to move back there, but my taxes would shoot through the roof and as a citizen I’m not eligible for 30% deduction.

So those jobs they lack Dutch citizens to fill? Yeah, that’s because all those people are emigrating to places where they’re more appropriately rewarded.

Based upon my own experience in the area - having a whole two weeks to learn something before being presented to customers as an expert is actually pretty good.

So, you would be confident doing a presentation about a topic in which you have a total of 2 weeks of working experience? Personally, I would not.

It was pointed out to me early in that phase of my career (happily long ago) that for most clients - talking with absolute confidence is far more important than talking based on actual hard knowledge.

Most developers at the consultancy I work for work a normal work week, don't make reports, have normal (meaning neither ancient nor state of the art) dev practice. And there is nothing fraternity like about it, nor is there a climb the ladder idea. It's super boring. You're right about it not being amazing for those who want to work on interesting technical problems. Clients tend to be big, technology tends to be firmly in the legacy category. I think they mainly hire consultants because employees can be expensive to fire under Dutch law for institutions that are financially secure. Which makes it different from consultancy in other countries.

It depends a bit on the consulting firm, but most are indeed "serial hired hands" like the blog says.

Most are fine to be for 2-5 years though as a fresh grad. You'll get some experience. Most good people move on to freelancing or something else after a while though*, I wasn't too impressed with most of the people who were there 10+ years.

* The company I worked for has an exodus of about 10-30 employees starting their own small company every ~10 years, since they reckon they can do the same with less overhead and bullshit for more pay. They're probably right.

I do think there's a difference between McKinsey, Bain and BCG


EY, Accenture, KPMG, PWC and Deloitte.

In terms of salary and work hours that is (i.e. MBB higher salary, more hours). I couldn't comment on anything else about it.

Isn't that the difference between consulting firms who just do strategic consulting and the others that sell a wider range of services including delivery?

I suppose so. I'm not too familiar with the industry.


In Finland also the trend is that most "T-shaped" and experienced devs seem to be either in consulting freelancing or working for smaller consultancies (50-1000 ppl).

The big shops focusing on India outsourcing like IBM, Accenture, Deloitte etc. are a completely different thing.

From what I can tell, consulting rates in the Netherlands are significantly higher indeed compared to employees. At least 50% more on average.

Freelance consultant in NL here. The consulting-firm rates can be much higher, but usually freelance consulting is much cheaper than employees. One of the reasons I went into this is I was working in both academia and in companies at the level where I was hiring for projects, and the ridiculous money that just gets eaten by overhead and middle management is absurd. If you hire a PhD and pay them close to ~40keur/year (NL is comparatively higher salaries for PhD than other places), you need about ~100k per year for that person. University bench fees, or corporate overhead, computing resources, insurance, pension. If you go up from PhD for 1 FTE senior engineer in a company it gets worse, they get ~60k before income tax, it costs closer to ~200k for 1 FTE (this is a real recent example for a project I am involved in). On top of that you need to give them a contract, so if you hire a lemon (which will happen at some point), you are stuck with them at least for a year. For me, and I think for some experienced project leaders, it makes much more sense to hire someone as a contractor per month, if they keep delivering, then keep them, if not, don't. If you keep them, maybe you pay 80k for the year. Another aspect is that the cost of a external person is just a cost, like buying computing resources/equipment for a project, it can be easier/simpler to factor into a project (as its not a continuing cost commitment) and depending on the arrangement, can be deducted from the companies VAT. Freelance consultants do their own admin, handle their own expenses, work from home (though so does everyone at the moment) so the hiring company just pays directly for results. To a new manager/project leader, prospectively, it can seem like a higher cost up front but that's only if you compare 80k to 40k which isn't fair or what you will see when you look retrospectively at the project cost. Consulting firms lose most of this benefit because they still have all those extra costs/commitments involved. Business is strange.

> they get ~60k before income tax, it costs closer to ~200k for 1 FTE (this is a real recent example for a project I am involved in)

That’s a pretty ridiculous overhead percentage. Even given all the taxes in the Netherlands, I have no idea how you could possibly arrive at that (given legally mandated stuff, obviously you can make it as crazy as you want).

Absolutely ridiculous indeed. That example is from a month ago for a medium-sized, research-oriented child company of a much larger tech company. They get a lot of funding from grants and collaborations so one could argue it as a way of funneling money from grants back into the larger company's pocket.

I have been trying to find/join/create a organization or group structure for research that would be more open/fair and less susceptible to corruption/waste but it's not visible enough of a problem to get support for it, and too new or odd sounding to get granting body to take a gamble on it.

A non-profit with everyone's salary visible, who work on delayed-release but open-source projects, seems like a good start to me, after all most of the research grant money is public money, it should be visible where it's being spent. Bounties for researchers/the pubic to fix active bugs. And a mandate that the code (or other work) gets released after ~2years no matter what. Commercially-paid early access and support. Harder to make a business around for sure but the amount of projects I have worked on, that don't get released as they are not profitable or the company/university are too lazy to make a profitable license/product around and refuse to just release the IP. I had one project that was patented and then the company is just sitting on it (for almost 10years now) waiting for a competitor to release something similar so they can seek licensing from them. It's heart breaking seeing all that work/energy/money just get locked up in a private gitlab repo to die when some of it can literally save lives or kick a field into the next step.

Can I ask you some questions about being a freelance consultant in NL? I'm a Dutchie myself. If you're up for having an online chat or IRL coffee [1] my email is in my profile.

[1] I live in the Amsterdam area.

I've been to a few of these "Hackers and Founders" meetups in Amsterdam before Coronavirus hit, and ran into interesting people who know about stuff like that. I love their strict anti-douchebag policy!

Café De Doffer or the Hacker Building might be a good place to meet up, once that kind of stuff is happening again. But I don't know when that might be.



>We were originally a group of friends who co-worked from different places across the city. We dreamt about getting our very own building so we could create our perfect work environment of likeminded people. So when the moment was right, we made that happen.

>Our group is pretty tight-knit but very welcoming to newcomers too. We have a strict anti-douchebag policy, which means we only have friendly people here who are open and welcoming.

Sounds good. Sent you a mail

Did both and consulting rates are indeed higher at face value but that is compensated by the risk. As an employee you will be paid if there is actual work or not, me as a consultant will be terminated the minute my work is done.

So if you are good in a field where there is demand, and you actually like doing negotiations & finding opportunities, doing your own bookkeeping and not forgetting your pension funds: go for it!

>Here in Mexico we have an opposite view of this: The majority of developers have spent their professional life doing "consulting" jobs

There's a saying here in Russia:

Can't code? Consult. Can't consult? Manage.

Love this saying and from my experience, a lot of people actually do exactly this.

I've worked with many managers that used to be bad developers. Most of them were bad managers aswell.

I've also worked with a few managers that were still very good coders, they tended to be much more hands on and productive with their managing aswell.

What makes a good manager for you?

Someone that actually manages things and takes away a lot of the communication between devs and users/customers.

Someone that has a broad overview of things and keeps things in line between devs in different teams, QA etc.

Someone that tackles existing or future problems hands on, by clearly communicating them and prioritising and assigning them to the right people.

Someone that makes sure, that requirements/backlog etc. are always in a workable shape.

Most managers that i work with lack in one or multiple of these areas.

Some managers i worked with do none of these and just report numbers and budgets, while avoiding to do anything useful towards the actual project/product.

I guess in this saying what "consulting" means is some vague "Agile, SAFe" BS consulting. What is being talked here is a software consultants who actually create software.

I'll second this. US SWE who spent a good portion of his career either doing consulting or working for a consulting company. It left me unable to care about the products of the companies I eventually settled down and started to work for. I have a very problem-centric attitude where I need to be fed well defined tasks and can't seem to care about the overall product, with it's various problems and features.

Don't get me wrong, I think consulting is a good thing for people to do, but don't let it distort your thinking. It's also easy to start to see everything in your life in terms of your hourly rate, and you start making weird choices regarding how you spend your time.

In response to the other replies, I'll say 'consulting' entails both work for hire(I was a core member of the platform team in a major media device company for 6 years) and full project design('We have a rough idea and we need to to architect, code, test, deploy and sometimes maintain a system'). It is not just working at a body shop doing shit work for hourly pay(although sometimes it is, depending on the economy).

I'm a consultant right now after doing software engineering for almost two decades. I owned a lot of my code before which got me to appreciate caring for maintainability.

I generally work as an advisor rather than a coder but if I do end up coding, one of my primary goals when working for a client is ensuring the code is high quality, maintainable, self-documenting and that any workarounds and cut corners are clearly marked as such and highlighted to the client.

You can just do this because you want to be proud of your work. Because you don't want to hate your life. Because you didn't spend 18 years of your life learning to end up writing unreliable diarrheas just to save yourself 30 mins a week.

And those dev shops in eastern Europe / asia are not consultancies. They're freelancing agencies with a sales pitch. Consulting implies expertise.

The article specifically excludes outsourced development from its definition of 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.*

Yeaaaah, I have never once heard anyone use the word "consultant" to mean the latter.

When a major company "brings in consultants" they generally mean exactly calling up one of the major consulting firms and bringing in a bunch of outsourced short-term people (those "hired hands") and not e.g. freelance experts; and while these "hired hands" contractors are quite different in practice from "proper consultants" as the article describes, they usually are advertised as the same thing.

Then maybe you should do a stint in consulting -- you'll learn something new every day!

See: https://news.ycombinator.com/item?id=28549676

I have. That's why I stopped doing it.

Clearly multiple people in this thread and the original article itself. Maybe you’re looking in the wrong places?

I've spoken to multiple consultancies to try and figure out if the career path would work out for me.

All of them made it clear that their MO is to provide asses in seats to build software quickly, then hand it over to the customer to whatever they liked with it - generally hire a bunch of outsourced developers to keep it barely alive, maybe add a feature or two per year.

Now TBF this is Switzerland, where salaries are always very high, but employee stock options etc. are pretty much unknown (outside of Google). Generally that means that companies are already spending shitloads of cash on software developers, so they might as well hire them as employees, not contractors.

Same, having been a consultant for 10 years.

By "serial hired hand" I think the article is taking about someone who is technically a contractor but gets repeatedly contacted by the same company for the same project over a period of years. They end with (almost) the same level code ownership as a regular employee. That's not what the parent comment was taking about.

That's outsourcing, not consulting.

Right, but nobody hires code monkeys for their bargain outsourcing sweatshop. They hire "experts" with "years of experience" for "consulting" to produce "custom solutions."

There is a category of consulting agencies that actually specialize in high quality developers, charge accordingly, and incentivize talent to stay by giving them a solid percentage cut of the customer fees.

I've seen a summary of consultancy business model described in three buckets. https://commoncog.com/blog/you-cant-ignore-business-models-i...

That's outsourcing for the employer, but consulting for the employee. If I consult for a US company while being in South America, I'm still a consultant. They are the ones outsourcing.

I don't think that's true.

You're a freelancer, that works for a US company.

A consultant is an advisor, that should have some specific technical or domain knowledge to advise people with.

In reality, everyone can call themself a consultant and i bet you can charge better money calling yourself consultant, even if you don't possess any specific knowledge and just work as a regular dev.

No, there are non-US companies that sell consulting services to US companies. If you are employed by one of these companies, you work as a consultant for a US company (usually as part of a team with several compatriots), and you are not a freelancer since you are employed by your company. If the contract finishes and you're left without a project, you're still employed and drawing a paycheck, and it's your company that finds you a new project to work on.

Consulting is outsourcing

There is "cheap outsourcing" though and actually hiring a deeply talented expert for that one thing you need done, and done right preferably. And anything in between.

Very interesting and unexpected points. Thank you for sharing that view.

>The majority of developers have spent their professional life doing "consulting" jobs in outsourcing firms

I think the issue here is your correct use of quotes on consulting. Contracting is not consulting; the latter you're usually getting paid a premium for your expertise, not as a cog in the wheel of code production.

I completely disagree.

Consulting is not for everyone and like everything you get out what you put in.

Why I went into consulting - I was working hard as ever, it’s my nature and I love what I do. - My pay was average - My projects looked amazing but in reality sucked and were driven by people in ivory towers

My concerns with consulting - we had a newborn and worried about health insurance. In the US this is highly coupled with your job

The outcome - I am still busy as ever and love it. - I am a seasoned 14 year dev with a lot to offer. - health insurance because of Obama care is amazing. We pay about $150 more per month but it’s actually better health insurance. - here is the kicker, last month I made 50k profit. Consulting is extremely lucrative and makes me feel like I was wasting my time as an employee before.

Will I go back to working for someone? Oh yeah in a heartbeat. But I must be valued according and can enrich the company as I do now with consulting for my clients.

What’s sucks about consulting - billing / payroll for other devs that help me as 1099 when needed.

Take away - consult for the right reasons. You will learn a lot but you can learn a lot as an employee as well. Let it happen naturally. Don’t force yourself to consult. You may be a completely happy employee and don’t let anyone tell you different and anyone worth being a human won’t discriminate against you for it.

I largely agree with you, except that I think the most valuable experience gained is that of exposure to information a typical software engineer is not privy to. I think this is often overlooked and is what doing a short stint in consulting should be about. Getting the opportunity to understand the inner workings of an organization at, often, a senior management level, was one of the most lucrative lessons of my professional life and is a selling point that I use when interviewing candidates because it’s generally true if they conduct themselves intelligently. Also, to reiterate your point, consulting can be incredibly lucrative if you price yourself at market value — most freelancers and consultants I’ve met are too afraid or nervous or get caught up in imposter syndrome, etc. to charge their true value. $300k/yr (in the US) is near trivial to make annually as a consultant, $400k/yr is where most capable software engineers should be, and yet few get there for reasons I attribute to lack of self confidence — a shame really.

> understand the inner workings of an organization at, often, a senior management level, was one of the most lucrative lessons of my professional life

What is an example of something you learned about senior management?

> $300k/yr (in the US) is near trivial to make annually as a consultant, $400k/yr is where most capable software engineers should be, and yet few get there for reasons I attribute to lack of self confidence

It's not "near trivial" if few get there.

I've done consulting myself and I've networked with a lot of consultants. I see a lot of people moving back to full-time jobs because they pay more for less stress a lot of the time. Some people thrive in consulting positions, but many quickly realize that normal jobs are a pretty sweet deal in 2021.

A lot of consultants like to point to their high water mark compensation and imply that it's their normal rate. In reality, consulting work can be extremely hit or miss. Making $300K one year doesn't mean you're going to make $300K every year.

Consulting can be a good fit for people who have strong diplomatic, communication, self-marketing, and business skills, but it's not an easy button $300K/year job for someone who just likes to write code.

> I see a lot of people moving back to full-time jobs because they pay more for less stress a lot of the time.

If you find that job, it’s a keeper. I find consulting to be less stressful than employment. Not worried about being online during certain hours or the office politics, etc. Also, my code still has to work and be pushed to production. If anything the more levels of abstraction between me and the client just produces more stress and slows down the process.

Okay, I'll bite :)

Did you pull that kind of income over a year or longer?

How long did it take you to get there?

Were there major jumps/realizations along the way, or was it linear-ish growth over time?

(My own situ: started freelance consulting right before having two kids in a pandemic, and so have done near-zero bizdev & make about what a non-FAANG W2 employee would, if not a little less. For other readers--this has still been worthwhile, I've learned a _ton_ and am pressing on to give this a shot while less personally compromised.)

> Getting the opportunity to understand the inner workings of an organization at, often, a senior management level, was one of the most lucrative lessons of my professional life

Would you say one can learn similar things if they work in an early stage startup?

I hear you. Management is one of those areas I have come to truly appreciate.

I just dont think a stint will get you what you need. I guess it depends what is meant by a stint. 6 months - 1 year? I dont think its enough. Your just getting started.

If you go into consulting for the experience my suggestion is plan on a 2 - 3 year stay with a strong start (clients paying you money before you leave your 9to5)

I learned a lot about the way the world works through consulting. It is a different perspective

After also working as a consultant for many years, multiple times, I proposed to my customers the following. Do not pay me per day, hour or week.

Pay me 1% of the money, I will save your Company. Nobody ever took me on this offer... :-))

What type of consulting did you do?

Software development

You are both taking it too literally and not abstractly enough.

The FACT is that you likely have a giant blindspot merely working "for the man" like you do that ultimately and adversely affects the quality of your work. Or minimally limits how far you can (or SHOULD) ever advance without reaching your Peter Principle or Dunning-Kruger limits!

I spent more than half my career in digital consulting for mid-size (500-5000 people) that did full service product development (strategy, design, tech, marketing). Eventually working my way up to director level that meant doing sales and writing contracts.

We did some crazy stuff. Delivered some gigantic ambitious projects with pure chutzpah. Dove into tech we didn't know anything about. Go sell a project to an airline, read everything about the airline business, then walk in like experts. It felt like fraud at times but we pulled it off so well you just start to feel invincible. It was a meat grinder but also thrilling. The kind of stuff I feel privileged to have been part of but never want to do again.

> It felt like fraud at times but we pulled it off so well

This hits home. 99% of work for those projects is common sense, and 1% is that special knowledge that you can learn on the job.

A colleague used to call this "reading the manual in the bathroom".

Exactly. And after you've done it a few times for different businesses you see really clearly what things you have to modulate. Then you just dig up your case studies that solved whichever set of problems they have to prove your bona fides and sprinkle on a bit of innovation and some design splash.

>"We did some crazy stuff. Delivered some gigantic ambitious projects with pure chutzpah. Dove into tech we didn't know anything about ..."

OMG. I had exactly the same story word for word until I got fed up with this meat grinder and had started my own business 20 years ago.

I spent a 5 years out of 40 working for a consulting firm, and I think it was valuable, as you get thrown in to all sorts of random things, which provides some great experience at dealing with stuff you barely knew existed before the customer walked into the door. This was mostly around the turn of the millennium (including Dotcom era).

The flip side was seeing some idiotic customers you had to build things for that clearly made zero sense, technical or business, and often led you to wonder about your sanity. I worked on one project for several months at which point the company pivoted to an unrelated business, and then refused to pay for the work done, as they no longer needed it. Another project was very successful in fixing their business issues, but they refused to pay for an extra week caused by a relatively major requirement change, so I had to leave the project incomplete. In another project the arguments about signing the contract took longer than the project did, so I was forced to work without any communication with the client.

This is a great summarisation of what I feel being a consultant feels like too. I often find an avid eagerness to produce the best there is, learn and adapt is a must, but once that fire goes out - like you say - you would never want to do it again.

>It was a meat grinder but also thrilling.

Fully agree. It was thrilling. I also did the exact same thing.

I strongly agree with the title sentimment. Strongly!

But, I'll add this - work at a company first, full time, for as long as you find it rewarding. Maybe several years at least? ... the longer the better. Bonus for each promotion you receive, primarily b/c of different levels of responsibility and leadership that places you in.

I think that's key to getting the most out of independent consulting, for 2 reasons:

First, b/c fresh out of college or early in your career, you still don't know what you don't know. That makes learning w/out benefit of teammates, mentors, interactions with other teams (Customer Success, Sales, Marketing, etc.), quite dangerous. Without that wide array of awareness and guidance on a regular basis, it's easy to form bad habits. And bad habits attained during one's formative years can be long-term or hard to break.

And second, b/c every engineer needs to experience what it's like to maintain and improve a product for years on end. E.g. while I didn't recognize it at the time, I believe time I spent with a product for 3 of its generations proved to be one of the best learning environments I've had as a software engineer. That kind of timeline provides first-hand experience to the long-tail of product decision making. It provides long experiential lessons in best practices like automated testing, a structured dev process, engaging in customer feedback, team culture & cohesiveness, etc. And b/c I was with the same cohort of employees for so long, and saw how leadership could fluctuate, I also found it helped develop my intuition for effective leaders.

All said, I wouldn't have gotten as much out of consulting if I wasn't backed w/prior experience. From an engineering standpoint, I was able to hit the ground running since I already had years of experience developing software. Soft-skills gained during that same time translated directly and immediately to client relationships. I also felt fortunate and well prepared to handle longer-term needs and concerns from bigger clients (Fortune 100/500), some of which I still maintain relationships with.

I was always under the impression that consultants were some of the best in their field (that can be hired, at least), and therefore going into it fresh out of college just isn't feasible, let alone a bad idea. Though it sounds like I might be wrong.

Edit: It's pretty funny how me and the article takes this differently

"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."

I've always taken a situation feeling stressful and dishonest as I sign I shouldn't be there, but if this is just how it is, maybe its not as bad as I thought

I’ve been a consultant for about 15 years of my career. I like to make the distinction between “product developers” and “project developers”. It’s just a different mindset. For product developers, there is a benefit in spending more time to make sure your code is correct and optimized — mistakes cost more when you have a large user base (or are trying to attract one).

By contrast, project developers have no such incentives. Their goal is to finish development within a time box and meeting certain acceptance criteria. Often they’re building tools that are high value but low user counts, so mistakes / bugs are more tolerable and users can be trained on workarounds.

In my opinion, it’s largely a personality difference. I personally get bored working on the same thing for too long, so consulting works great for me. Some people hate the context switching of moving to a new project every few months or are just meticulous and slow developers, and they make great product developers. That’s not to say you shouldn’t try both sides of the fence, but you’ll usually land on the side that best fits your personality and working style.

Im pretty far up the food chain at a large consulting firm and i too get bored easily. Consulting fits my personality type because each project has a deadline ( rarely exceeding a year ) and then you either sell an extension or go look for something else to do.

There's also a lot of adrenaline involved in consulting too, some of my coworkers have left to go run a program somewhere in industry only to come back in a year or two because they were bored out of their minds and wanted back in the game.

Same; I’m at the point in my career where I’m not really involved in project delivery anymore so it’s more about sales and coaching new leaders. Your technical skills do eventually atrophy (at least mine have) but that just means you lean on your experts for that knowledge. But it’s probably a more natural growth path than most technical roles in industry — promotions at consulting companies are far easier to achieve if you put in the work.

This is probably also down to your character. When I was working as a consultant for a big SaaS company I felt like the occupation really attracts a certain type of overly confident people who also like the attention. I'm 100% sure that everybody there had these blank spots in their knowledge which would potentially result in feeling stressed or dishonest when talking to the customer. Some people are just better selling their blank spots.

Yeh, could well be it. I'd like the be a consultant of course but I don't think Im the kind of person to be able to sell other people on my abilities before I sell myself on them. Credit where credits due to those who can though

Important thing to remember is that blank spots only last as long as you want them to!

I don't know about needing to be the "best", or an "expert", but I do believe a consultant should have a certain skill level, or set of skills, that provides some value to a team.

That's to say some consultants are very strong engineers, in the general sense; very capable in various roles. While others might possess a sufficient narrow skill set. E.g. maybe a front-end React dev, or data engineer assisting with integrating parts of a data pipeline, or a SQL consultant helping trouble shoot database performance issues. Other times, a team covers both bases (high degree of skill breadth, and depth), but lacks time to devote to all pressing issues.

So consultant relationships are formed for any number of reasons; they need not be an expert, necessarily.

Well, that's how you sell yourself to customers.

Typically you'd have a team of actual hotshots who start the project, sell the consulting company as competent, they draw up initial plans for whatever they are consulting on, and then you replace them with your usual kind of developers/BAs/whatever.

For example if your initial team had an architect with 15 years of experience, including 10 years in your specific domain, they get replaced someone with 5 years of experience, with 2 years in the domain.

It's a bit too broad of a concept to be general about it. If you go into consulting straight out of uni then imho either:

a) Use a consulting company that heavily invests in it's people through internal learning and mentoring and support. I don't know any us companies like this but there has to be some I guess? In Europe Swedish Netlight operates like this, I had experience when I joined them a few years back but they employ people straight out of uni too. b) Do it yourself if you for some reason have a real niche super strength

Local tax structure matters too. Here in Sweden it's very beneficial to start your own consulting firm instead of being tax'ed to death, to the tune of earning twice what you would in a similar role if you're employed so it's a road many including myself take for that reason alone.

Different people mean different things by it, but often/increasingly/safest assumption is that someone just means 'temporary contract work'. Which you can absolutely do as a new graduate, since 'need some fixed term/scope work' doesn't necessarily mean 'need some senior expertise' - it just means cash-strapped, or sudden need to scale out that isn't expected (or known) to last.

I knew a few friends at college whose first jobs were at consulting firms. It seemed a bit of a misnomer since they had no practical experience.

I think sometimes people don't want to hire pragmatist consultants who will rock the boat too much and challenge sacred cows - even if they get things done, instead, they might prefer someone who organises meetings, Gantt charts and committees in order to make their hirers look good.

i've work for Avanade, many moons ago. i have couple years of coding experiences when i join. they put me into a project that basically doing phone support for one of Fortune 500.

they just hire as many people with CS degree or working background in tech then send them out to do "tech stuff" regardless if it fit their employee's background.

This is very important. Experts in the field I look up to only became experts because they learned from the consequences of their choices. Sometimes these consequences don't materialise until 5, 10, 20 years later.

I agree with the author, and would add/modify a few things.

If you're successful as a consultant, you'll soon discover economic incentives steering you towards an established business model, which can take some of the thrill out of it.

By far the most valuable experience has been meeting people at all levels of an organization without being a part of their power hierarchy. When you're a neutral third party who has suddenly appeared in their daily routine, conversations go differently and people open up more. The company founder seeks your opinion about what direction to take the company--even when the question is far outside your scope of expertise. The forklift driver tells you of problems he dares not reveal to his manager. And the HR director, feared by many, turns out to be the best advocate for those who run the other way when she is near.

what do you mean by "And the HR director, feared by many, turns out to be the best advocate for those who run the other way when she is near." ?

HR is generally seen as being anti-employee, in the sense that the reason they exist is to protect the company (legally speaking) by managing its relationships, benefits, compensation, etc., with employees, and this often pits the company's interests against those of the employees.

It's quite silly for anyone to see HR this way in the first place. They get paid by the employer. Union execs get paid by employees. Figure out which is pro employee.

Human Resources mean managing the resources that are humans. Not resources for humans.

HR is there for the company.

Depends on which union, really. Corruption is a real problem in some of them, and in others the will to fight is weak or state laws make them much less powerful.

I don't know a lot about the mechanics of unions, but are the salaries not paid out of employee dues?

Just to add some counter balance to the hyperbole in this article. First, I always approach articles of “every X should do Y” with some skepticism. Its not a statement everyone can make, and I think individuals under appreciate survivorship bias.

Also you should know that being a self employed consultant is very different from being a company employed consultant. If you work for a firm, you won’t be measured by your impact per se but rather by the number of hours you bill.

Optimizing for hours billed is a cancer that kills innovation and creativity. I despised it, and it poisoned my experience in consulting. You’ll also find that it’s more profitable to create a factory that churns out 100 mediocre solutions than a few really good ones. You’ll also write a lot of single purpose code if you do software development as part of your consultancy work.

Consultancy has lots of great qualities but there are a few really awful ones that are prevalent in the industry as well imo.

I spent close to 20 years doing freelance and consulting work on my own as an individual that focuses mostly on smaller businesses (1-50 employees). There's a lot of truth to this article.

One thing that I really like about it is it's not just coding coding coding (I do this too), but you get a chance to really break down the domain of a company and work with someone on how to solve bigger picture problems. It's not just empty bs recommendations either, it's things that get directly implemented and in my case often times I got my hands dirty with the implementation. If not doing the implementation, at least doing the research while ironing out and documenting a step by step plan for someone to do it.

I would say I spend about 60% of my time coding and 40% of my time chatting with developers / CTOs, getting paid to do R&D and write documentation. For the coding bits it's everything from building web apps to doing ops related things like provisioning infrastructure and making it easier for other developers to release code changes.

With that said, for the first time in my life I took a W2 job this week. I'm only bringing that up because if you decide you do want to transition into a W2 job later often times you may get fast tracked through any hiring hoops if one of your contract clients wants to hire you full time. In my case I didn't have to do an interview because I had worked with them for 10-30 hours a month for the last 3 years. It was an instant hire where all I had to do was let them know a start date.

In a bunch of longer term contracts I was involved with there were always hints or offers to join them full time. Up until recently I never had an urge to pick one but this role is interesting and you only live once so I decided to try what life is like on the other side of the fence.

> but you get a chance to really break down the domain of a company and work with someone on how to solve bigger picture problems.

I did a very brief stint doing work that was similar to consulting, and I think this is the biggest net gain for me. I really developed skill at identifying the actual problems and solutions by understanding the domain and not simply building what a customer said they wanted built.

What's w2 mean?

https://en.wikipedia.org/wiki/Form_W-2 -- meaning he was a normal employee instead of freelance.

You don’t bring in a consultant to help you maintain the status quo, but to help you drive change.

I don't know what industries or companies this person has worked for as a consultant, but the ones I've worked for have absolutely used consultants to maintain the status quo. They bring in consultants because the full-time employees got reassigned to whatever new shiny project the senior managers have their eye on this week, but, in the meantime all this old legacy cruft still has to be maintained. Hence, consultants.

yes, the shiny new green field projects keeps many contractors in jobs as perminant people seem to hate working on older tech

migrations and decommisioning (large complex systems) also get lumped into the same pot that most perminant people seriously hate.

That's a different model. That's generally called staff augmentation, whereas generally the bigger consulting firms get pulled in to help the business deliver on the AI agenda (or whatever McKinsey's selling to clueless execs this year).

In my experience, it's also common that those big consultancies get those impossible projects because none of the internal teams what to work on them. And when they inevitably fail, they'll convince senior management to pivot to something more feasible.

A slightly more direct and IMO better name for this is "body leasing".

I have a similar but different thing I tell people: I think engineers should do a stint as a product manager. Spending time trying to solve problems on "the other side of the table" forces you to learn a lot about the business impact that different design, implementation, and prioritization decisions makes. Two years in Product made me a better engineer than the previous 5 years of cranking out features.

Thats not to say that a career product person will immediately be a good engineer. You need to be good at writing software. But if you get to a point in your career where you think your learning has kind of leveled out, go do a tour in product.

What other side of the table?

> 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.

Even doing that is incredibly educational!

I spent about six years of my career at consulting firms like this. Both were a bit more than body shops, though - they sold themselves on their ability to actually deliver projects, and teach clients to do the same. I spent those years being parachuted into complex, dysfunctional, ill-equipped organisations, and trying to work out what in that environment worked, and how to Macgyver it together into a project which worked.

I don't want to do it ever again, though.

Lol. You drank that KoolAid

> parachuted into complex, dysfunctional, ill-equipped organisations, and trying to work out what in that environment worked, and how to Macgyver

parachuted, macgyver.

An overinflated sense of importance and worth is the only common characteristic of consultants.

0 chance you understood the business or tech r challenges before suggesting whatever tech du jour you were last exposed to as the True Answer© before disappearing out of sight before the duct tape starts to break away.

I never once suggested a technology as a solution to a problem. I spent a lot of time trying to convince clients that technology was not going to solve their problems.

Sounds like you would really benefit from spending some time doing consulting.

I tried, I really did. I make a pretty great salary, but the company I was working at started to tank (this is pre-pandemic). So I reached out to my network but everything was pretty dried up at the time, so I looked at one of those sites that let you post your rate and skills and people could hire you. I had it up for a month and I got 1 hit from someone that wanted to learn Docker. I exchanged a few emails and in the end instead of hiring me he really just wanted to pump me for information. So after that I just reached out in my network a tad bit more and found my current position.

I'm never going to attempt it again. It's just not worth the frustration.

I think the problem here is using one of those sites. They’re just a race straight to the bottom.

Worked in consulting for 5 years mainly for large companies (> 20k employees) and it wasn't so nice. You'll end up solving problems that the digital natives solved 15 years ago. Moreover, half of the projects were staffed just because some C level read something about 'new technology x' and it was deemed to be cornerstone of the business. Of course our whole work was thrown into the trash the second we were out of the door. Lots of colleagues were in consulting just for their ego, they didn't care about the customer as much as being idolatrized by them. I switched to a swe role in a faang company and in half of the time I learned twice as much I did in consulting about the real engineering problems the industry is facing. Consulting is fine if you need an ego boost, otherwise go to a company doing serious engineering.

Been a consultant, not a contractor, for many years. You cannot be a consultant without reading Weinberg:

"The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully"


"More Secrets of Consulting: The Consultant's Tool Kit"


These books kept my sanity and showed me the Universe twisted sense, twisted...But nonetheless a sense.

Nit-pick, but

> Empathy for customer needs

You can't have empathy for a need, but you can have empathy for the pain the person is feeling due to their needs. Empathy isn't really all that useful. What you really want is compassion for the customer and their needs.

When you pay a therapist to listen to you, do you want them to feel anguished, anxiety-stricken, rage-filled? Or do you want them to listen to you, understand your feelings, and calmly help you cope with them? The former makes for a very ineffective therapist; they wouldn't be able to get through the day doing that for every patient. But the latter allows them to do their job, which is to help you solve your problems.

Compassion also helps you choose better solutions. When you're empathizing, you're using your emotions, and we don't think clearly when we're emotional. When you're compassionate, you can consider their emotional state, but you may need to ignore it to provide the best solution, which might not be one that appeases their emotions. I have often over-empathized with customers' problems, and subsequently gotten angry when a solution I wanted to use [to alleviate their pain quickly] wasn't implemented. The calm approach was longer, but better in the end, and didn't have me lashing out at the bureaucracy.

I don't think the two are mutually exclusive. For me, empathy is a root of compassion.

E.g., a friend of mine had an OS problem where she lost a bunch of files. I felt empathy first, and expressed it first as well. Only then did I turn to compassionate aid.

It's true that one has to manage those emotions, but that's true of all emotions.

I concur. Compassion seems impossible without empathy.

If you can’t imagine how someone feels (or why), how can you feel sorry for them?

I did this as my first job out of college and then within the core dev team at a large corporation serving multiple brands. You definitely see patterns and can help identify problems inside developers and managers do not see or dare admit. However you can also be seen as a warm body churning billable hours paid to the company at 4x your salary until you burn out. The lack of ownership of outcomes also means a lot of the real valuable lessons you get after your hard work are lost to you. It is however great for engineering roles where you are implementing tech the core team is new to. If you are an open source contributor or a specialist in a niche architecture, consulting would be a great gig, just make sure you make it a point to learn about the outcomes or decisions that come out to your work.

I couldn't help but think of Steve Jobs take on consultants when reading this: https://www.youtube.com/watch?v=-c4CNB80SRc&t=10s

"How many of you are from consulting? Oh that's bad. You should do something.

No seriously, I don't think there nothing inherently evil in consulting, I think that without owning something over an extended period of time, like a few years, where one to take responsibility for one's recommendations, where one has to see one's recommendations through all action states and accumulate scar tissue for those mistakes and to pick oneself up off the ground and dust oneself off, one learns a fraction of what one can.

Coming in and making recommendations and not owning the results, not owning the implementation I think is a fraction of the value and a fraction of the opportunity to learn and get better.

You do get a broad cut at companies but it's very thin, it's like a picture of a banana, you might get a very accurate picture but it's only 2 dimensions, and without the experience of actually doing it you never get 3 dimensional, so you might have a lot of pictures on your walls, you can show it off to your friends, I've worked in bananas, I've worked in peaches, I've worked in grapes, but you never really taste it, that is what I think."

Perhaps that was an advice for a different time and for a specific audience (MIT graduates can expect favouritism). Cannot see how spending a few years developing a tiny slice of some UI at Apple 2021 would make your experience "three-dimensional".

> 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.

Perhaps it’s just the kinds of things I work on, but I n my experience it’s mostly been the opposite: the customer is a domain expert in what they do, but not in what I do. I usually learn a lot (not by these experts’ standards, of course, but by mine) about new domains and as a result the world just looks different after each project.

What channels are best for advertising oneself for consulting opportunity?

For example, I am good at general software engineer (dev process, culture, management philosophy), and detailed technical work for distributed system (cloud/backend).

Where do I let people know that?

You can also simply apply cold. Ultimately turned the offer down due to concern about burnout, but I had a great experience interviewing with McKinsey. Compared to most tech company interviews, I felt like I was given every opportunity to showcase my strengths as a generalist, and the people I spoke to were all very likeable and invested in the process.

There's a difference between working as a consultant for a body-shop (no offence - and I do appreciate that McKinsey is nothing like Accenture) compared to doing consulting under your own name though.

Out of curiosity, what would you have been doing under McKinsey?

> my strengths as a generalist

I'm curious to understand this phrase, and how the interview process helped.

I think a lot of developers would prefer to sell themselves on their ability to take high-level business problems and work with a team to come up with software solutions, rather than just their raw technical skills. Of course, it's important to understand the details too, but I get more excited by delivering solutions which make my customers' lives easier than implementing a low-level algorithm that already exists in a library somewhere anyway.

McKinsey case studies are more similar to real work than most interviews. You're given a large business problem, and then you're responsible for demonstrating the sorts of questions you'd ask a real client in order to do product discovery and get accurate requirements. Then, you talk about the way you'd architect a solution and go into the details if you have time. At the end of the interview, your interviewer asks you realistic questions like a client would.

I do like pair programming exercises (the ones where you get a realistic problem with an open-ended solution, not the type where the interviewer yells at you until you get the One and Only Solution). And McK does a bit of that too, with questions which validate your ability to develop across the stack, but aren't anything you wouldn't encounter in a normal day at work ("implement a JS component in whatever framework you want", "given this table structure, write a query to do X in whatever SQL dialect you want", "implement a basic REST API to fulfill this use case in whatever language you want").

Thanks - understood!

different teams are very different but I also can say McK Analytics was +10 -- lots of invested and interesting people.

Though I do see that only 1/6 of my interview panel is still there 4 years later?

networking events, conferences, previous colleagues. face to face encounters, most of which have been severely cut back the last year.

All of which work for people seeking a normal job as well.

I agree they should try. Of course MOST will not succeed but that's the educational aspect of the experience. It's far harder than most would imagine. Yet the ONLY REASON 99% of engineers get paid and have their services valued is what is delivered to the customer in terms of value. Without that, engineers would be as non-essential as typists or any other declining job category.

You efforts have NO INTRINSIC VALUE without that customer being willing to pay money for the results!!

That is a reality and universal truth of economics - NOTHING has economic value UNTIL it is transacted for exchanged value. It is ONLY at that moment that the value is known. And even then the certainty of that value decays exponentially with time. After a few time constants/half lives, the value is again indeterminant because you don't know for sure if somone will commit to paying for your value again. It's always "What have you done lately?" combined with "What does the 'market' (i.e. any other individual or group of humans) think they are willing to commit to exchanging?" Commitment = Value.

This is literally how bourses/exchanges work: they do nothing more than record what two parties have been willing to commit to in terms of item and price for the item, on an instantaneous and average basis over time. That's the low-level algorithm of all bourses (e.g. stock exchanges, bond exchanges, derivative exchanges, etc. - it's all ultimately negations between parties and explicit commitments to those trades). There is NOTHING "magical" about it - they are not mystical oracles of truth.

But learning this directly is always more effective than being "told" what a thing is or how things work. Direct experience will responsibility (however short) will make you a better person and more aware of your own specialty. It also helps you know how to look out for yourself and when to say "no" and when to "walk away".

Q: What's the difference between a contractor and a consultant?

A: A consultant knows the difference.

As someone who does consulting now similar to what was described, I would say the pros and cons in this article are totally on point. I'm not sure it's for everyone, but it's been great for me and I've learned a shit tonne that I couldn't have learned anywhere else. I get exposure to so many successful companies at inflection points and they have to tell me everything. You don't get that from blogs or conferences or books where they only tell you what they want the public to hear.

That said, at other points in my career I have been totally freelance, worked on a product team, and worked in an agency, and I would also say that each of those is hugely valuable and teaches you unique things. If I was advising a young and hungry tech worker, I would suggest they get a year or two of experience doing all four if they can.

Consulting and contracting ingrains the opposite of "good" instincts for most product engineering. It makes money, it produces value for people, but it encourages throwaway behavior and activity which produces more hours than output (but not always).

I agree that consulting experience is valuable, but I don't think that it's right for all engineers. The biggest difference in my experience is nothing to do with engineering, but that you're spending a lot more time wearing hats other than engineering.

A business doesn't hire a consultant to write code -- they hire developers on contract to do that. They hire consultants to figure if/when/where/how to write the code, and to navigate their business politics/procedures/processes/compliance/etc. Heck, I've completed several consulting contracts where I didn't write a single line of code -- they ended up being 100% strategy, design, planning, etc.

To do consulting successfully, you have to be in a mindset about solving business problems, regardless of what the resulting work looks like. For someone who wants to solve engineering problems, they might be highly disappointed (or ill-prepared) with what a consulting job entails.

Every developer should do a short stint (a year or two) outside development. It doesn’t matter whether support, professional services, consulting, marketing, or sales. They will get better appreciation for the product they build and support system surrounding those products that make or break the product.

For me, there is something magical about having retail work experience. That special blend of sales and customer service combined with consumers of minimal patience...

Understanding that good customer service necessitates sacrifice and compromise is at the core of it for me.

Happy customers are the most important thing for a business. Nothing else matters as long as you have strong advocates in your market.

In pursuit of happy customers, you have to be willing to discard or compromise on all of your technical principles. Certainly, dont let the customer cut themselves on a sharp edge without warning them first. But, if they absolutely insist on a certain path, just give it to them. They are paying you money, correct? Clear exceptions to this would be ethical violations (i.e. plaintext pw storage for a public-facing app), but that should really be the only line you wont consider crossing.

Yes, unfortunately my “stint” has lasted 10 years. Now I’m having difficulty finding an engineering role.

> 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.

How do I do this?

Personally, I think consulting works well, like contracting works well, when you have a specific requirement that the Consultant/Contractor can meet.

We paid a lot of money for a software consultant once to produce an encryption library in .Net (packaging things, not inventing algorithms) and although he was clearly confident and reasonably competent, he wasn't able to produce it in 2 months. Once he left, I did it personally in 2 weeks on top of my CTO role.

If we had planned this better, we would have only recruited someone with experience with the specific issues we had around DI and .Net encryption and it might have gone a whole lot better.

> I’m referring to a true consultant role, where you are paid to bring expertise, give advice, and drive technical change.

There's the hurdle; only a small percentage of engineers will consider themselves good enough to fit that role. And of those, another percentage has the social skills to move to a consultancy role.

Don't get me wrong; I've done the "hired hand" version of consultancy, thankfully for a better company than the ones that can supply a hundred hands overnight, but still. I found it a valuable experience because of the higher level of expertise, the learning opportunities, and the variation in assignments.

I did this for two years, working as a "forward-deployed engineer," also known as a "BD warfighter" at my company, doing post-sales support.

I consider it time wasted. It made me a worse engineer. I was pressured to set clients up with unfinished bullshit products. I was pressured to set clients up with bullshit they didn't need. I was pressured to build solutions that weren't what the client wanted or needed.

I'm sure there exists a happy ideal version of software consulting that could teach you all kinds of valuable lessons. My experience was very far from that happy ideal.

I have a fairly rough experience working at a consulting firm. I was on a long-term project, but even on relatively stable projects consultants are the first engineers to get cut or moved around when there is trouble.

I ended up filling in on project management type work which certainly is better than getting laid off, but I did not enjoy it much (it was good resume building experience at least!)

One good thing about being a consultant is that it is pretty easy to quit and move on! People are constantly rotating in and out of projects, so it isn't as personal as working on a small close-knit team!

I've been on the lookout for consulting gigs, and they are far less common now than they were 20 years ago. I'd really like to know how OP is finding these gigs.

It is very true. Consulting was much easier. It looks like the market split into low budget places like upwork, low-code solutions, hiring someone directly, going overseas or going for a branded company.

You have to out market/ brand /out sell before you get to code. It makes sense to partner with someone who has a customer funnel because your job will be to provide that funnel otherwise and still have to do the coding/technical work after that process.

specialize and become a true expert in your niche

I agree with a lot of the points, however at most large companies solution architect is a significantly higher paygrade than developer. (I don't agree with this, but it is the case at every large place I've worked [non-FAANG Fortune 500].) Usually a career progression goes from developer to lead dev positions to solution architect, not the other way around. There is generally a big money drop if you go backwards.

I think that should be flipped around: every consultant should do a stint as an engineer and be forced to manage another consultant's code for an extended period of time. Writing code from scratch is easy and takes little effort. Dealing with product manager expectations when you're boxed into a corner due to the lack of foresight by other devs is a whole other thing.

The author forgot one of the worst parts of consulting -- the frustration you feel when you make a recommendation and then get ignored. It can get really grating, especially when they call you back a year later when they are in trouble they could have avoided if they'd listened the first time.

This sounds like a good thing though. Do you make more money if your clients make mistakes or if they are super successful?

Of course I'd make more if they make mistakes, but only in the short term. I'd rather have a long term reputation of solving the problem the first time, which would get more clients. Also it's the right thing to do -- set them up for success the first time, even if it means less money for me.

Consultants who have the ability to be selective about their clients and projects have the best chance of creating a satisfying work experience. It took me a while but when I got to the point where I could say "no, thank you!", it significantly improved my life.

Any founders or early employees out there who have experience doing this after their startup exits or closes? This idea really appeals to me and I could see myself doing this sometime in the next five years. I'd be interested to hear how it's gone for others.

After shutting down my startup I went into consulting. Frankly the work was easy compared to startup life and my experiences trying to move fast and iterate were exactly what my clients wanted to do.

I had a ton of knowledge gaps about enterprise, but they were relatively easy to fill in.

Can anyone give examples of the real problems that you're solving? I've wanted to do software consultancy for a while but just don't know WHAT I'm solving. Code is easy—there's a tangible output. But what exactly IS consulting producing?

many if not most of the things I learned while working for a consulting company as a data engineer are of a kind I wish I wouldn't have to learn to begin with. it's basically a sped up course about how companies are through and through driven by egoism and cliques. so, it's useful. but sometimes I worry that staying longer in this business taints me for companies with actually ethical work ethics. but in Germany it's except for a job at FANGAM the only way to crack six digits as an IT guy.

I work in an agency. I'd love to work on a mature product someday.

I only realised this after working in an agency for my first job - I find it more satisfying to improve a product than to keep producing new products.

As someone who is rotating out of a consulting unit, I tend to agree. It is a very valuable experience, albeit one that may well lead to faster burnout.

The impossibility of getting good, reasonably priced health insurance for a small family ended my stint years ago. I am employed for healthcare.

Not an American, but I thought Obamacare was supposed to solve this?

Agreed. Many engineering leaders at big companies were consultants at one point, which is a big reason why I got into the game.

Have been in dozens of organizations as a consultant, and it gives you a powerful meta view of how teams work and org dynamics that is not possible any other way. However, the skills needed to operate in an environment where you have to see and deal with the same people every day for 5+ years are very different from those required to provide value as a consultant.

Being an indie outdoor cat and being a big-5 employee are very different as well.

Definitely agreed. Fortunately, many consultants are looking for exactly that kind of exit, and it is easier to train a consultant with lots of diverse experience how to operate in that environment than it is to teach an FTE with 10+ years experience how to understand an industry at a macro-level

There are also many consultants on multi-year engagements that already have this experience.

Every engineer should do a stint in a call center or better understand results of collateral damage most engineers I interface with have since come from two parent affluent families and dont understand what it means to be poor is or don’t understand what the loss of a job is or if they become a manager what poor management decisions might cause.

A "stint" in consulting typically has three outcomes:

a) You fail at the business side, can't find clients, your finances suffer, after all the optimism and pleasure at owning your own time, you start looking for a job within a year or so.

b) You succeed at the business side, get more clients than you can handle, start sub-contracting, start having to manage your sub-contractors, decide the margins would be better if you had employees, grow into a "boutique consultancy", stop coding mostly and become a full-time salesman and manager, but now with other people who depend on you for their livelihoods.

c) You succeed just enough to sustain yourself, don't seek new clients or attempt to grow beyond a 1-person shop, outsource to subs when you need to for a little extra juice but otherwise shy away from taking on too much work, take the work that comes your way, subcontract for some of the bigger fish who need your special skills, and accept the 'feast or famine' reality of income, enjoy your freedom and time off between clients, but not entirely because you're always worried about where your next check is going to come from or "what if the work dried up?", but ultimately get trapped in the endless cycle of making pretty good money and "enjoying the variety" as you grow older, start a family, etc, and can't afford to take the hit trying something entrepreneurial any more since your kids need to go to college, until finally the burnout is so intense you hate consulting and the fact that your livelihood is tied to your labor, hoping that you've put enough away to at least retire early and maybe then you'll work on something you actually want to.

There is a fourth approach (or path, if you will) which is to work for an established consultancy as per the article. This path itself has three typical outcomes:

1) You are a natural creature of the corporate consulting world, you prosper in the one true measure of value -- selling work, you ascend to director-level or something where you make very good money, if you're entrepreneurial you maybe can take your clients with you to buy into a partner role at another consultancy. Maybe you see this life as a good life that you're well-suited to.

2) You think success at an established consultancy is based on technical merit, you're gradually disabused of this idea and suffer burnout, if you haven't been there long, you maybe jump to the product world or (gasp!) start a startup solving some problem you solved for a client of the consultancy. Congrats, now you have a startup and all the attendant cares. There is a different list for that path.

3) You burn out of working in corporate but think "hey, I'm a pretty good consultant and what else am I gonna do?", you decide to go independent, see outcomes a, b, c above.

I have two decades of experience as a consultant (not anymore) in different companies and even different countries and different states and at different levels in the hierarchy.

I would say that getting to work on a "high impact" project is not all that common. It does depend on how you define "high impact"

Most of the projects I got on were not green field, it was adding functionality to existing business application, written in legacy ways and legacy languages.

I did a lot of figurering out why some obscure program does not work anymore or why it is suddenly so slow.

Quite a lot of enterprises does hire in consultants to do sht work so that their internal devs dont have to do it. Of course, some do not have a dev team at all.

Some people you end up working with in mid sized to large companies are hostile to consultants being hired in. Had that problem a few times.

You do learn how to accommodate unreasonable demands, passive aggressive behavior, how to communicate bad news, lead a group, analyze an existing code base fast.

You can fast end up doing a lot of cover your ass, both from a client and from the consultancy company you work with. All the ones I have worked for were cutthroat in some ways. Some more than others.

Your billable hours are a huge factor. One coworker of mine was billing upwards of 90h to 150h a week, he got a lot of bonuses and perks. This was not physically possible, but since he had more than one client he billed full it me on several at the same time.

IT consultancies are usually highly competitive in all ways.

They are also only interested in what you have done this quarter and will sack you if that is not good enough. or have a pay stricture so you dont have a dime if you are not billig at least full time.

Several places I worked 40h a week was the bare minimum. Tolerated for a while, but you would get notices about needing to apply yourself more, to get in the game. You are expected to learn all new things in your field on your own time and dime.

In some places you have to keep X number of certifications current. You study on your own time but usually the exams are paid for, at least the first try. Failure to keep up is a grave problem.

The sales team rules. You have to learn how to kiss their assess and become friends. They will have a lot of pull when it comes to who will be put on a new sale. You want them to think of you as a valuable asset. or you always get the sh*t jobs.

I had perhaps 4 - 5 big fun projects. One was to write an ERP system from scratch (Yes I heavily advised the client to buy some existing product but the client was adamant that the business was so unique (it was not) that it had to have its own system.

The one big thing they had was a multi-dimensional pricing model from hell. The founder of the company must have spent years coming up with it. All sorts of inputs, all sorts of options discounts, scale, employees, nation, state, order size, Previous orders, season, sports events, stock prices, number and types of cars sold in the last month, and a lot more.

Working on that, and getting it to work was probably one of my best achievements. My team was superb.

I'll pitch in my own two cents.

In the worlds I've worked in it would help a lot for every engineer to do a stint at a customer site. The bigger places I've worked for could have easily placed people with a customer for a while.

It's remarkable how much stuff is designed by people who don't use it for a living, will never use it for a living.

I prefer to be employed by the government because then I don’t have to actually do any work.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact