The Tech Talent Acquisition Landscape 🗺️
A round-up of the various ways you can increase your engineering capacity today.
Hiring is one of the biggest challenges for engineering teams, and, for many, it feels broken.
When you think about it, in an ideal world, hiring somebody should take days at most. You put up a new opening, it gets matched with suitable candidates, you pick one, and it’s done.
Instead, it usually takes months, because of a combination of inefficient boards, unclear job posts, and overly long interviews.
To solve this problem, in recent years, alternative ways of acquiring and working with tech talent have emerged. These are typically:
Faster — it takes less time to bring in new talent, and
More flexible — the scope and duration of collaboration are potentially smaller.
Some of these ways are kind of new, while others have always been there — they just got gradually better and more widespread.
Part of this trend is enabled by the shift to remote work. Once offices are not a constraint anymore and people don’t have to get together daily, work naturally feels more transactional, which, in turn, opens up to more transactional ways of working together.
This piece draws a landscape of the available options for acquiring tech talent today, breaking them down on various qualities, and trying to figure out which are best based on your use cases.
To do this, I got some help from my friends at Cosmico, who have been working in this space for years and play a major role in it.
As a disclaimer, even though I partnered with them for this piece, I only wrote my unbiased opinion about the practices and services I covered, Cosmico included.
So here is the agenda for today:
5️⃣ The Five Modes — we explore traditional hiring, talent-as-a-service, agencies, contractors, and code-as-a-service
🏢 What’s best for companies — we consider the various options based on your needs. We talk about collaboration, agility, and scope.
🪴 What’s best for your career — we explore the other side. If you are an engineer, what’s best for your career? When should you consider one option vs the other?
Let’s dive in!
5️⃣ The Five Modes
There are five main modes you can use to acquire talent today. Let’s see them, from the most stable and long-term to the most flexible and transactional.
1) In-house talent
That’s regular hiring, where the final goal is embedding a new person into your team for the long term.
Hiring people is tough because it requires a sophisticated internal process, from sourcing candidates, to selecting them, to finally converting them through an offer. This is usually done by hiring managers, and/or engineering managers with hiring duties.
On the surface, this process just looks like interviewing people, but there is much more to it:
📊 Manage hiring channels — job boards, communities, referrals, and more. This includes keeping a pulse on the market and outreaching to candidates directly.
🔍 Screen candidates — to minimize the time wasted on interviewing bad candidates.
🥇 Deliver a great candidate experience — throughout the whole selection process, by managing the relationship with them, collecting feedback, and setting them up for success.
💬 Relay with the team — during the interview process, collecting their feedback and having decision meetings.
💸 Negotiate and close — make candidates accept the offer.
🔄 Improve the hiring process — collect feedback from all parties (candidates and the team); track KPIs, and make the process better over time.
That’s a lot of work.
Hiring well means mostly two things: 1) hiring the right people, and 2) hiring them fast. Whenever you cut corners on the hiring process, either quality or speed suffer — or both.
So, there are situations where this fails:
You fail to bring in quality people in a timely way, or
You find yourself with temporary/peripheral lines of work for which hiring new, full-time employees feels overly long and expensive.
Enter other modes of work 👇
2) Agencies / studios
There exist plenty of teams out there which go under the name of agencies, dev shops, or studios, which can be hired to do product and development work.
Here are some factors you should consider about them:
🥈 Speed — with studios, you are outsourcing the whole dev process, as opposed to individual tasks. These folks are typically very efficient: they have seen plenty of projects, have their process dialed in, and can pick up things pretty fast.
🥇 Quality — there exist good and bad studios—just like individual engineers—but good studios do quality work (e.g. look for them on Clutch) . If you need to do something well, and fast, for which you don’t have internal skills, that’s basically your only option.
🥈 Scope of work — these folks, on average, won’t have much experience in your business domain. They won’t have context on what you have already in place either, so, if what you need to build is very specific and/or coupled with other parts of your assets, that’s going to slow you down — or make it downright impossible.
🥉 Cost — good studios are expensive. Like, close to an order of magnitude more than hiring somebody. If a studio only costs moderately more than hiring, chances are it is not a good studio.
So, studios are usually perfect for zero-to-one projects which 1) require a set of skills you lack internally, 2) have few dependencies with what already exists, and 3) for which you need to move fast.
I wrote a full piece about how to work with studios and agencies a while back 👇
3) Talent as a service
Talent-as-a-service are companies, like Cosmico, that match you with talent in their network based on your needs.
You hire those people for as long as you need, but you keep the work relationship with the parent company (e.g. Cosmico itself) instead of the specific professionals.
These services have plenty of benefits:
🥇 Speed — the talent pool is vetted and curated, so they can match you pretty fast with professionals that fit your needs. These people are usually available to start right away, making the whole process extremely lean.
🥇 Quality — this is table stakes for TaaS providers. The strongest value prop of TaaS, as opposed to simply hiring contractors, is that the talent pool is vetted, so you should take quality for granted.
🥈 Scope of work — TaaS engagements can turn into long-term hiring if both parties agree. This potentially turns it into the best of both worlds.
🥈 Cost — TaaS is more expensive than regular hiring (contractors or regular employees) because of the provider fee. But it is way less expensive than agencies, making it more palatable for a wide number of use cases.
So, work relationships coming from TaaS platforms are flexible. They can be short-term, like normal contractors, or long-term, becoming indistinguishable from regular hiring. This makes the opportunity for using TaaS largely depend on the maturity of your hiring process, rather than the type of work that you need to do.
If your process is leaky and slow, the TaaS cost has a fantastic ROI. Conversely, if your hiring machine is firing on all cylinders, you get a lot of inbound and referrals, and your time-to-hire is satisfactory, just keep doing what you are doing.
4) Contractors
Contractors (or freelancers) are just individual developers you hire with a more flexible / smaller-scope engagement than you would do with your stable employees.
In terms of flexibility, the differences largely depend on the country you are in. In places like the US, where employment is at will, practically speaking there isn’t much difference between contractors and normal employees.
However, when people talk of contractors they usually mean people who work on a project basis. They join to work on a specific initiative, and leave after that.
Platforms like Freelancer and Upwork, in fact, optimize for this use case. You post jobs (projects) there and then either receive bids or include the budget in advance.
With contractors, here are some factors you should consider:
🥈 Speed — hiring this way is quick. There are two tricks here: 1) platforms curate talent and are usually pretty efficient, and 2) by posting the job in advance, with the budget, you create alignment upfront and make the hiring process faster. This is a lesson you can learn even for regular job posts, where including the salary range guarantees >3x applications and faster time-to-hire.
🥈 Quality — contractors are often associated with low quality, but in my experience this is not the case. Quality of the output largely depends on whether you stick with top rated vs cheaper talent, and by the quality of your process. In fact, contractors, like agencies, have no context into your product and processes, so they need plenty of input from you.
🥈 Scope of work — freelancing has usually limited scope, but it can easily lead to full-time hiring when things go well. Many companies do small freelancing projects as a probation period for full-time roles, which is a smart way to reduce hiring risk and keep a leaner interview process. In general, freelancing works well for small, isolated tasks where the lack of context isn’t an issue — like agencies, but one-person sized.
🥇 Cost — contractors are not necessarily cheap, but they are usually regarded as a cost-effective solution. The main reason for this is that you can hire good ones from countries with cheap labor. That’s it, let’s admit it. This is, of course, a benefit shared by all full-remote setups, rather than just freelancing.
5) Code as a service
The last option we are covering is quite recent, and is about working with people on a per ticket basis, so at an even smaller scale than contractors.
Gitstart is the best service I know for this — you simply open tickets and receive full PRs in response, created by a real developer.
🥇 Speed of hiring — this is by far the fastest you can “hire” someone. There is zero overhead and the engagement is completely transparent to the client, you just create the task and someone will pick it up.
🥉 Quality — while the code quality itself is fine, it is 1) hard to enforce your team’s coding standards, and 2) close to impossible to make such new code reuse existing assets, which it may lead to inconsistencies and duplication.
🥉 Scope of work — CaaS is only viable for small tasks where very little context is needed. Still, there is plenty of these in any team.
🥇 Flexibility — you pay per task, which is the absolute best flexibility you can get.
🥈 Cost — you may pay more per individual task than you would do on a regular employee, but this is made efficient by the pay per task approach.
🏢 What’s best for companies
Of course, there is no single solution that is best. It depends on many factors, like the quality of your hiring process, the type of tasks at hand, and how fast you need to go.
So, the optimal approach is probably a combination of multiple methods, just like any company’s work profile is a mix of various things.
In the future, smart companies will probably use a portfolio of options. For example:
In-house talent (maybe brought in by TaaS) for long-term, core assets.
Trusted contractors / studios to deliver tactical, isolated initiatives without impacting the core train of work.
Code as a service to augment your in-house team on a daily basis.
Flexible modes of work, like TaaS and freelancing, can even be used as trials before full-time employment. This is a different dimension to consider, which makes the right call also depend on the level of pre-existing trust, rather than just the type of task at hand 👇
🪴 What’s best for your career
At this point you may be wondering—from the other side of the problem—which option is best for your career.
My take is that, being tech a fast moving space, you should always optimize for maximum learning.
In that respect, different types of projects make you grow in different ways:
Big, multi-year engagements give you the opportunity to work on complex projects and develop leadership and management skills. They also risk becoming stale though — multi-year experiences sometimes degrade into 1-year experiences, repeated many times over.
Conversely, working on many different things in terms of projects and tech, as you do in a studio, or by freelancing, is helpful to build the horizontal leg of the T-shape, but it doesn’t do much for the vertical one. Many good contractors I worked with were extremely good (more than my regular folks) at delivering small projects, as a result of refining their tech chops over and over, but struggled with true complexity at scale.
And look, there is nothing wrong about this.
Most projects in real life are indeed small and you can have a decent career by just being productive at these. But if you want to step up your impact, or you want eventually to lead a large team, you likely need a long engagement where success is measured in years.
So, in general, always bet on work that challenges you and keeps you on your toes. If you do, money (and a good career) will just be a natural consequence.
Stick longer with teams and engagements in which you keep learning, and leave early those where you don’t.
This article couldn’t be possible without support provided by the Cosmico team.
I have known Cosmico for a long time and I am happy to promote it in the newsletter. Cosmico works at the forefront of the tech market, providing ways for great companies and great talent to connect.
The future of work, which we often talk about, can only come through products with a strong vision and an equally strong execution.
Cosmico is among those products.
And that’s it for today! See you next week 👋
Sincerely
Luca
Nice article. I don’t think that companies who can afford employees are going to look for a mixed approach. When there is less trust what happens is that you end up micromanaging.