After over 12 years of working in the tech industry as a SW developer, team lead, engineering manager and startup founder, I came to the following controversial conclusion:
Junior SW developers should aspire to work at SW consulting firms at the beginning of their career, as opposed to working for big tech companies (Google, Amazon, Facebook, etc., etc.).
In this post I’ll explain the logic behind this reasoning.
Consulting firms are a better school for junior developers
Unlike big tech companies, for consulting firms their service is their product, meaning once a junior developer joins the company, it’s the company’s #1 goal to get her up to speed with the relevant technologies in the best way possible.
The best way is not necessarily the fastest; it means learning from the best material available on the web, getting daily code reviews and one-on-one sessions, learning basic principles for high quality coding, and having someone at their side every step of the way in case they need help.
For big tech companies, there is a working product already live in production and generating money. As a result, everyone on the team is focused on improving the product by creating some positive impact.
Usually a junior developer will join an existing team with existing goals for the product, so the team focus will not be on developing the tech skills of their juniors — in fact, just the opposite. Junior developer will be expected to learn everything by herself, and maybe once a day it’s considered OK for her to disturb her other team members with some questions.
Another important point in this regard is that the senior developers on her team have no incentive to help. They will be measured by OKR or another obscure metric, meaning their manager will measure them based on results, and results = code. Therefore, getting the junior developer up to speed is not on the senior developers agenda — for the seniors getting the next feature ready is on the agenda, with unit-tests of course :)
The technologies scope for consulting firms is much wider
Consulting firms usually work with multiple clients at any one time. Each client works with
a different technology stack (programming language, BI and analytics tools, and so on). The consulting firm, if successful, should be able to address a large number of technologies in order to be able to win as many attractive projects as possible.
Therefore, it’s in the consulting firm’s best interest to develop the technical skills and SW stack of its developers. The more variety and skills each developer has, the more attractive projects the company will be capable of taking.
At the big tech companies, the junior developer will join an existing team, which develops a certain product with one SW stack which doesn’t change for years. The developer is expected to learn this one SW stack and nothing other than that. There is no incentive for the big tech company to teach their developers a wide range of technologies because there will be no use for it in the short term, and probably not in the long term either.
Working on several different products
As stated, consulting firms usually work with multiple clients at any one time, which means multiple products. At our company, Cherrypick, for example, we’re currently working on a digital health product (Nutrino), an Enterprise SaaS product (Gong.io), and an Ad-Tech product (Outbrain).
A typical consulting firm works with companies across the full range of the industry, including cyber security, medical devices, ad tech, e-commerce, enterprise SaaS, sports, education, and so on. For people interested in learning about different industries and different products, this work can be fascinating.
For us at Cherrypick, every time we work on a new product, we discover a new world. We learn who are the users of this product, why they are paying for it, what are the key values and features, who are the competitors, what is its current status in the industry (growing, shrinking), what are the current trends and so on.
Imagine a week of work in which the first 2 days are with a cyber technology firm, the next 2 days you’ll be working on an app for diabetes treatment, and on the 5th day you’ll be at your own consulting company office, working on what’s left for you to complete for this week.
At the big tech companies, by contrast, every day is pretty similar; you just come to work and try to make some incremental step towards this quarter’s goal.
At consulting firms, junior developers will do more
Let’s take an example from the world of sports. A young basketball player who wants to develop his game and improve his skills has to play. It’s that simple. He can’t sit on the bench the entire season and expect some magic to happen.
The same goes for young programmers. If they want to learn by doing and actually get a lot of meaningful work under their belts, they have to get a chance to participate in the game, in a manner that allows them to create valuable impact on the project they are working on.
Since most consulting firms are small, naturally young developers receive many more opportunities to take responsibility and shine (if they are willing to put in the effort, of course).
At big tech companies, even the most talented and motivated junior developers will have to “wait for their turn” to make an impact. Remember, each team member is compensated based on the impact they make, so if a team receives a big mission for the next two quarters, who do you think will take the most impactful role? Again, unfortunately, there is no compensation at big tech companies for helping and guiding juniors, no extra points at all.
The above examples and arguments are taken from years of experience working for startups in various stages and for tech companies of > $10B valuation.
I’m well aware that my key point in this post is controversial; however, I’m tired of meeting super talented young developers who are wasting their first years at some big name company just so they can put the company name on their CV instead of actually doing real and meaningful work and acquiring the knowledge and skills needed to be able to start a successful company themselves one day.
Oded is the founder of Cherrypick Consulting, please visit the company website to learn more.