How corporations can attract good engineers

  • 11 min of reading
  • Stats

Jeanne Trojan invited me to attend her HR professional community event to talk about mistakes corporations make when trying to hire engineers like me. The funny part is that with recent acquisition of Apiary by Oracle, I've myself became a member of a big company. However, that doesn't make my points less valid. It only makes the topic more relevant to me.

Because the talks are without slides, I decided to sort my thoughts and to prepare for the performance by writing it all down as an article on my blog. Looks like my approach worked well after all:

Why

What is so special about IT people that it's so difficult to hire us? We are not special at all. We're just spoiled by the current situation on the market. There is not enough of us to feed the demand, so companies go extra steps when hiring us, they overpay us, and they offer us extreme benefits. For example, finishing studies of information technologies looks like this:

  • Monday - graduation
  • Tuesday - hangover
  • Wednesday - interview, accepted, 20000 CZK first salary

No prior experience required. We don't look for work. We get ten offers per week. We are very picky. If we lose job, we go for several months of hiatus. We never experience any actual job seeking. Unfair? Unhealthy? Yes. But that's how it currently is. I'd say there are generally two strategies you can take:

  1. To play along, compete, and to be part of the game
  2. To try to change the game (fix the market)

How to Compete

I think one of the hardest problems recruiters of the big companies face is their public image. When someone says corporation, my imagination goes wild:

  • suits and ties
  • stock photos full of people with artificial smiles
  • Dilbert comics
  • endless meetings
  • glass buildings full of open spaces at the outskirts of the city
  • subordination, managers everywhere
  • process instead of culture
  • mandatory software on my computer spying on me and limiting my internet
  • 9-5 working hours

The hard part is the fact you cannot hire a PR agency to improve your public image. It could very easily just become a part of the same problem.

Software engineers, especially in the Czech Republic, do not like pretending when it comes to presenting the company in terms of a job offer.

To give the best impression, you need to align what you are and what you do with what you say, as much as possible.

Be Cool

One way to improve the image is to change the company to genuinely become better and more flexible. Obviously, that can be very hard. Ask Microsoft about how hard it is.

Hi boss, Honza told us to tear down all the shiny office buildings we've been building for several years and to stop using open spaces. What do you think?

Own Cool

Another approach is to create separate venture with a very different culture. This way you can easily hire for the best of both worlds - open minded and innovative culture, and almost unlimited resources.

Zonky.cz looks like a cool startup, right? But it's owned by HomeCredit. Sousede.cz is owned by Hypoteční Banka (owned by ČSOB). developers.csas.cz is by Česká Spořitelna, percieved as the dinosaur of all dinosaurs, but the portal is developed by a squad of punks, who even physically moved from bank offices to Paralelní Polis.

Be Honest

In the unfortunate case when you just can't easily become cool yourself or spawn a cool daughter company, you should play on being honest. Even though it means you sometimes need to say that your company is imperfect, or even that it sucks.

Do not overdo, do not bullshit, do not pretend. Be honest. Be open and straightforward about how your company sucks, but make clear why it still makes sense to work there and how the cons are going to be compensated.

Getting your code to production may take years because of our very defensive QA and it's all quite old technologies. On the other hand, you'll be working on devices which save people's lifes in hospitals and that's pretty cool. Also, we have a lot of benefits, ...

Every attempt to present your company as better then it is, every superlative and every buzzword or general term makes you more pathetic in the eyes of an ordinary developer.

It's because the local market is small and we have friends who know what is it really like to work for your company. Or we worked on similar projects and just from plain experience we can recognize you're not saying the complete story.

Find Cool

Find technologically interesting things which small or medium companies just cannot afford to have. Ask your existing employees about what's great about their work (and don't forget to also ask what sucks). Large scale? Deep R&D? Open Source? Petabytes of data?

Size of userbase? Maybe it's the impact what counts. If your company saves lives, then you're actually very cool for some people, regardless the technologies used.

Be Visible

There is a chance your company already is pretty cool, but people still imagine Dilbert strips when you offer them a job. That's because we have no idea what you do and how you do it. You probably have zero presence in the community of developers.

Do you and your engineers attend developer meetups? Do you send them to conferences? Do they speak at conferences? Do you sponsor events? Do you have conference booths where I could speak with your recruiters and employees? Do you have a funny sticker I can put on my laptop lid? Do you host any events? (Look at Y-Soft! Look at Apiary!) All that makes you a visible member of the community. All that puts real people in front of your candidates instead of shiny claims and anonymous logos.

Seems hard? Hire a Developer Relations person (often shortened as DevRel), i.e. someone, who coordinates all your activities towards developers. Ask Kiwi.com how Jan Bleha is essential to their success with hiring engineers.

ProTip™: Are you bored as a recruiter? Become a DevRel person!

Be Open

Invest in Open Source. It's a great way how to become a part of the community. When people see you are able to give something back to the world and to actually pay your engineers to contribute to Open Source at least part of their working hours, it's hard to think of you as a bad employer.

Being involved in Open Source means you have doors open at every meetup and every conference. You have a topic to talk about. You have something visible to brag about and to show your candidates as a sample of your work.

Look at phpstan from Slevomat's employees (~2000 stars on GitHub). What does it say about Slevomat as a company? To developers, this means a lot. Look at Avast's ButterKnifeZelezny (~3000 stars). LMC has quite a nice presence on GitHub as well. Punks from ČS have a public issue tracker on GitHub.

ProTip™: Contributors to your Open Source projects are people already quite familiar with what you do and how. Hire them!

Offer Career

Often companies don't offer adequate career advancement to engineers. Many software engineers do not have ambitions to advance to a manager position. To give us some space to grow, you should have two separate tracks:

  • Manager Career Track
  • Technical Career Track

Imagine higher technical positions as architects, analysts, mentors. My friend from STRV became an Android specialist and his task is to keep track of the best techniques in the field and to educate the rest of the company about them.

How to Change the Game

Think long-term and train your future employees. Think big and don't limit this to your company. The whole market has a problem, so a big part of the market needs to unite their efforts to make a difference.

You basically need to make sure more people gets trained as software engineers, which will not only feed the demand, but it will also devalue the software engineer position to a blue collar job.

Logically, we should defend our exclusive positions and should prevent you doing such moves. The good news are that's not the case. Although we're the ones who can afford anything exactly thanks to being a scarce resource, we will volunteer to help you to bring more people to the market.

Why? First, currently the gap is so large it won't actually change anything on specificially our position. On the contrary - by teaching others, we'll become even more experienced and more valued. Second, we feel socially responsible. We see how people with low-paid jobs can easily reach very comfortable lives just by going through a couple of programming courses. We see impact. For us, teaching beginners is Open Source in the real life.

Imagine a funnel like this:

  1. Interest in IT
  2. Education
  3. Internship, first job

For the effort to be effective, companies in the market need to focus on all three stages of the funnel.

Improve interest in IT

IT has a very bad public image generally in the society, especially the Czech society. The stereotype of an IT person is a white male introvert wierdo with glasses who does some genius stuff in the basement. You need to change the public opinion to get more people to want to become IT.

Hire Public Relations and come up with a way how to make IT cool. Push the Czech government to introduce e-government faster, so more people are in touch with technologies and see their benefits. Push on schools to provide courses of basic literacy in modern technologies, internet, etc. Push on breaking stereotypes, such as those saying IT is not for women.

Without changing the public image of the IT as a field, there will never be enough interest to devalue our jobs.

Improve education

Support education on all levels. As mentioned above, push on public schools to teach basics of technological literacy and to teach algoritmization. (By the way, all kids should be taught basics of algoritmization. It's a very good skill to have, even if you do not plan any kind of career in tech.) Become partners with secondary schools, with universities. Look at Red Hat! Become partners with independent course providers. Look at Kiwi.com! Support volunteer-driven activities, such as PyLadies courses. Look at MSD IT! Support Czechitas. There are so many options.

ProTip™: Supporting educational activities makes you very cool. Promote it!

Offer internships and first jobs

Today many people learn programming over the evenings. They have their day jobs or they're on maternity leave. They put a lot of effort in gaining all kind of knowledge, but then there's still a significant gap in skills and experience before they can be hired as a regular developer. To make this transition easier, you need to offer part-time jobs, internships, and to open junior positions suitable as first-time jobs.

People who learned to code in order to change their live are not as spoiled as you're used to from us, regular developers. They don't have the luxury of choice. When hired as juniors, they're very grateful. They're very eager to learn. If you treat them right, they'll be very loyal. Yes, you need to invest in them and teach them. But it's worth it, trust me!

Be ready to employ people, who're not ready yet. Go to PyLadies, Czechitas, and similar organizations, and feed them with entry-level offers.

Conclusion

If you're not successful in hiring IT people, it's probably because you don't realize the current situation on the market. If you need ready-made professionals, be prepared to invest a lot into the recruiting process, the environment, and into our salaries. You need to do some extra steps to compete, I'm sorry.

For your own good, you should participate on fixing the market. You are probably the only ones to have the resources and the motivation to make a real difference in this regard, you just need to focus to the right things.

ProTip™: If you're looking for Python developers in the Czech Republic, check out How to find Czech Python software engineers (in Czech, Jak najít Python programátory). Also, there will be PyCon CZ 2017 in June and we're still looking for sponsors!