Captain's log, stardate d285.y37/AB
The experts are in, and they all agree on that the new bubble in the market is the developers' salaries.
Startups are raising more money than ever, at incredibly high valuations, which increases the cost of developers, thus forcing other startups to raise even more money at an even crazier valuation.
It would seem that the only way to attract development talent is to be the hottest startup out there and splash the cash. But it's not.
While it's true that Google was one of the first companies to make developers cool, and that every other startup along the way has been stealing talent from the previous ones until today, that doesn't quite explain how less sexy companies like consultancies or big corporates still have their (sometimes huge) teams.
We, for one, have never had any problem hiring anyone. What's more, on a couple of occasions it took less than two days to incorporate a new developer in our company.
We can proudly say that we've got a line of people waiting for a new opening in our company so they can quit their job and join us. While this doesn't sound very humble, it is downright true.
MarsBased is not a product company. We're, in all senses, a company that's not sexy for most developers, who look to join the hottest startup and develop features for hundreds of thousands of users from the get-go and maybe cash in big bucks once the startup exits or IPOs.
However, we have created a model that is working well for our clients - some of them we've helped to increase their own in-house team - and, most definitely, for us too.
Here's how we do it.
Find your segment
The most common mistake when scouting the market for developers is to think that one size fits all. You think you can mould any developer to become a developer for your company. After all, if a guy is good at coding, what gives if he does Erlang, Ruby or PHP? Good developers are fluent in multiple programming languages!
Wrong. There's much more than programming languages.
In order to find developers who'll stay long term at your company, you have to define who's your ideal developer first. After all, you've done this for your market research, segmenting customers and finding your ideal client to reach product/market fit. Why don't you do it for employees as well?
Seems common sense, but we hear the following sentences almost every other day:
- I need to hire 35 developers in one month!
- Introduce me to any developer you know, and we'll train him!
- Attitude over aptitude!
- We're offering the highest salaries in the market!
The sentences above are something we hear all too often and yet, those who utter them seem to be the ones who have more trouble hiring.
In our case, we know we can't compete with the highest salaries or dog-friendly offices with healthy snacks and arcade rooms (we don't even have an office!), or even building The Next Big Thing™ following hockey stick growth and massive rounds of funding.
We have segmented the developer market to find our ideal hire and we define it as follows.
Our developers are all senior people, capable of managing themselves responsibly and the project they work on. Because they oftentimes work alone in their projects, they need to be able to speak to clients in English (and our local languages) and be very communicative. They also need to be comfortable with working remotely and have experience in freelancing/consulting, which allows them to switch between contexts easily & be part of multiple projects when needed.
Our developers value the stability of having always work to do but never working crazy hours or stretching the day. No one has ever been requested to do a single minute of overtime in three years of MarsBased. We believe in work/life balance as one of the highest values in the company.
Finally, our employees know that we value quality over quantity, appreciate and contribute to the transparent company culture we've got and participate in all the activities we do as a company, thus helping us, the founders, to manage our business. After all, it is our first business, and we need support from everyone.
That might seem a little bit too much to you, but when we think of potential hires, we can only hire people like this. The more you narrow down your potential candidates, the more chances you've got to hire them.
Don't appear desperate / communicate sensibly
Another common mistake we've seen is the urgency with which companies rush their hiring.
While we understand that every business is different, and some live hand to mouth because of their commitment to investors and or business partners, we just can't stress enough the importance of communicating things right.
Back in my development days, I was interviewed by companies who told me upfront "we're desperate to fill this position" and similar statements. Well, that didn't put them in any advantageous position. Quite the contrary.
One thing is being transparent, but the other one is lowering yourself with such statements. The last thing I'm going to think about you is that you're a rock-solid company who can offer me a long spell.
Therefore, we suggest that you communicate things accordingly. It's OK to say that you need to hire developers quickly to achieve your goals, but don't beg me to join your company. That'll increase the chances of my asking for a higher salary or else leaving the building immediately.
I am quite defiant of companies that lure all kind of developers to join them because they can either train you to learn their technologies/frameworks, or because they've got all sorts of projects with different tech stacks.
First of all, companies hiring "everything and anything" are companies that need to hire fast because they're in a rush to accomplish something. That might be to deliver projects or features rapidly to either investors or thousands of hungry users.
Further, if you are hiring this quickly, it is because most likely you're behind schedule, and the more people you need to hire, the more likely it is that you will never hit the quota.
In some cases, companies hiring quickly means that they've got a low employee retention (i.e: people leave), thus creating even more urgency and adding fuel to the fire.
If you're that busy and in such a rush to hire people, how likely is it that they you invest time in training the new hires, when they are required to hit the ground running? Not very likely.
On the other hand, companies with multiple tech stacks & gazillions of different projects can be very chaotic and disorganised. Make sure, as a company, that you communicate how you organise them and how these projects are managed the right way with practical examples, blog posts, and dedicated interviews with team members who are hands on in different projects.
How to hire someone specific
There are times when you want to hire someone you previously worked with, or someone you really need and it needs to be him/her.
In this case, a good strategy is to hire the people he/she works well with. You can find out in the selection process, where you will ask about former bosses and teammates. Questions like these will help:
- Who was the boss / team leader you felt most comfortable working for/with?
- Which individuals have inspired you in your former companies and how did they shape who you are today?
- What's the best thing you've done with a team and who were they? What did each team member do?
- Have you ever felt that you were part of a company mostly because of the people you were working with?
- Have you bonded so much with any past teammates that you now consider them friends?
You can be even more upfront and ask if you could hire someone today for this company, who would that person be?
How to do this? It all depends on your budget. If you're a big company with big bucks, you can hire the mentioned people, or just the one or two they singled out as the best.
If you're a small company, you might struggle to lure them, but you can do so by getting them closer to your company. You can hire them as freelancers, or for a certain project, or even get them to join a company in the same coworking space if you happen to be in one.
Developers really care with whom they're working. Having a solid group of developers who also happen to get along well is paramount to the amount and quality of work they can produce.
Also, a developer will be way more motivated when working for a CTO/team lead/etc they can learn from and respect.
This is an expensive way of hiring someone, but it pays off. You're not only investing in that individual, but he/she will have helped you to screen potential hires you might have never heard about, who will boost the performance of your team.
Don't go to the market just when you need it
Most companies seem to think that they can go to the market, grab a developer or two, and then go back to work.
Well, if we know one thing, is that developers like to be valued. We're not a soda can anymore.
Understandably, we all have got businesses to run and projects to devote our full attention to, but we need to always keep an eye out for opportunities. Otherwise, we will be perceived as fairweather friends.
It's easier to explain if I switch the perspective. When you're looking for a job, your first interviews go wrong. You are nervous, you might even be desperate to get a gig because rent doesn't pay itself, or you're just not comfortable and that is easily perceived by others.
The more interviews you do, the better you become at it. And, if you really want to hone your game, you will do interviews even when you've got a job, so you are always up to date with salaries, perks and industry standards.
The best opportunities in life come when you don't need them.
Same when you're hiring. If you go to the market in a given time frame, you might just find what's there in that moment.
If you do it like us, you will meet and interview candidates all the time, even give them freelance/contractor work to test them, have them collaborate with other like-minded companies, recommend them to other startups and build a relationship with them.
In an occasion or two, we didn't have a vacancy for a person we wanted to hire, and we told them to go work for our friends at another company. Maybe, in the future, our paths will cross again. We really don't like to keep people hanging, and this caused them to perceive us as a long-standing and trustworth company who values individuals over quick gains.
If you help them first, build trust over time with them, they will respect you and will want to join you when you need to hire.
Invest in the community
Following the previous point, investing in the community is something that any company can do. It's never too early to go out and meet the developers community.
Investing, however, does not only mean sponsoring all the things but, rather, using your time or other assets to build relationships, for instance.
You can start by going to the events and meeting people. Later on, you can introduce other people to the community and maybe even give talks if you think you've got something worth saying.
Or else, you might not have anything to say, but you might want to contribute by covering the expenses of an event, community, or NGO. Or even doing pro-bono work for other companies or organisations/associations.
And last, but not least, try to contribute to open source projects by adopting them, working on them, fixing bugs, suggesting features and generally adding value & making progress.
Companies that contribute to open source are generally better perceived by developers.
At MarsBased, we're organising Startup Grind Barcelona, and a conference that will unite Barcelona and San Francisco, we curate Startup Digest and a Slack community for over 900 entrepreneurs and startups in Barcelona, we teach & mentor in a lot of different coding bootcamps, business schools, universities and acceleration/incubation programs, contribute to open source, and much more. Take a look at our Community page to see our different ongoing initiatives!
Have everyone in your company be an ambassador
At the end of the day, it's not only the founders or HR doing recruitment. New companies do know this very well, and invest heavily in having their employees invite friends and potential candidates to their offices.
They have events going on, or free meals, or a cool lounge with chillout music where you can do some afterwork beers. Once you, as a developer, are invited by your friend who works there, you're in their trap. You've been charmed by the cool company and nice ambience floating in the air. You want to be part of this.
Therefore, as a company with some employees, make dead sure you convey your company culture often by actually living it and breathing it. Embody your company culture and lead by example. This way, your employees will adopt it as well and start referring potential customers or hires.
Happy customers refer other customers. Happy employees work better, will enjoy working for your company and eventually will attract potential candidates.
Always have someone your candidates can learn from
Truth hurts, but if you're embarking on your first entrepreneurial journey and you're not a developer, it'll be really hard to find a developer to join you.
Developers are usually motivated by continuous learning. We want to be working always with new technologies, testing new frameworks, starting side projects and solving new challenges.
If your company isn't really appealing - say, a consultancy, or an e-commerce, or nothing worth writing home about - you'll have a very hard time finding developers.
The only way, in this case, is to have a CTO as a co-founder or someone really experienced they can learn from. But that, logically, requires that you find a CTO first.
In this case, if you're neither technical nor experienced, you might want to start hiring a freelancer or a company like us, who can bring in the experience without having to become a co-founder. It might be easier for you to attract a potential hire if you tell them that she'll be learning from this super-expert fullstack freelancer or that she'll be working shoulder to shoulder with MarsBased (or almost any other agency, per se).
How to find the first technical hire
How to hire a CTO or your first hire if you are not technical yourself? How can he learn from someone at the company if he/she might be the first one?
Well, first of all, you might not need a CTO.
Secondly, if you do need one give him/her a real project and give them decision power to everything technological. If you get in the way and start reducing scopes, budgets and cutting edges to meet deadlines, your CTO will leave.
As a non-technical person, try to delegate as much as possible the technical decisions on your CTO and focus on bringing money into the company.
We've all had a boss or a client who didn't know jack about technology telling us how to do things.
Don't be that person.
Bonus: Quickfire tips
- Have someone with development knowledge write / validate the job offer. Developers know when an offer has been written by a recruiter, and they don't like it.
- Don't ask for too many requisites / technologies, incoherent or unrealistic things (for example 10 years of experience in technology X when technology X was released 5 years ago).
- Focus on the core technologies. If you find the right person, he/she will be able to learn other technologies as needed.
- Try to convey as much as possible what's the value proposition for the candidates and what kind of company they'll be working for. Sharing them your playbook, or an explanation of the company culture will help.
- Include the salary range & other perks in your job offer. Otherwise, you're wasting people's time.
- Invest your time in finding the right channels to post your job offers and don't spread too thin over a million different generic channels.
Hope you've gotten a clearer perspective on how to hire developers. At the very least, you will have learnt a thing or two that you're either doing wrong or not doing at all.
Or else, we might have forgotten something. So why don't you share what's your experience been like so far? We'd love to read it!