Tech hiring is broken

Tech hiring is broken

Well, I’m a Software Engineer at Zalando, I came to Deutschland two years ago, and it has been a hell of a ride, with ups and downs, and mostly good things thankfully –AlHamdulillah.

It has been a long time since I wrote something on LinkedIn or my blog, couple of years ago, I wrote about the hiring processes and horrors I faced back home in Egypt my beloved root (long story short: I did more than 60 interviews with around 32 company in 2 years in Cairo alone, it was a script I made where I filtered and generated couple of thousands of emails, and I can say confidently I’ve seen and learned a lot from those meetings and I can have an honest voice on the matter ), the series of articles got some attention that I never expected, but after a while I deleted them; and reason was that I realized at some point, impulse behind them was more of sarcasm and bitterness, rather than learning, and those were negative feelings that I, first do not want to retain, second do not want to grow. After that experience, I decided to stop writing for a while.

Why do most companies fail at hiring?

Many companies, seem to not put much clever effort into the hiring process, they’re still using “Which animal you see yourself in?”, or expect you to show up in a tux (well those are dinosaurs and are getting extinct, my sincere apologies to dinos it’s just a metaphor) but some others send you some unrealistic _Algorithm Exams_ , Or They post jobs without full job description, or hide behind recruiters and fully count on them.

Disclaimer: Definitely recruiters aren’t a bad way of hiring that’s not what I’m trying to say. But recruiting is a tremendous amount of work job that might look easy to many people so it attracts many of those who claim they understand it while they actually don’t. Therefore you need to be very careful when you express your needs to a recruiter who is a freelancer for example, and has no idea what your business exactly needs. Hence case “1” on the importance of published job descriptions.

So here’s your seed and here’s what grows out of it:

Case 0 Never hire jerks and fire the ones you already have

I find many interviews to be solely techy as if you were going to work remotely not with actual real people! I’ve seen many colleagues leave companies or switch teams because of bad people that companies don’t want to fire either because they just can’t or they’re supposedly good performers, and now we hear about the harassment cases and disasters nobody thought would have happened.

You know people you hire, work 8-9 hours daily? If your recruiting team doesn’t focus on the communication and human side then, you’re definitely failing.

I would assume so many people, would rather work with good people than having a bonus!

Case 1 Poor Job Description

Q: You publish a weak and poor Job description that contains words like (JS Ninja, Java Guru) ? while you miss out mentioning the actual libraries you’re using in your projects or the kind of business model you have?

A: Then either expect someone who’s actually super but will ask ten times what you offer, and leave you as soon as he/she gets the opportunity, or you’re going to have a series of tiring painful interviews with desperate job seekers.

Case 2 No Salary Range

You might think, I would recommend a full disclosure, but actually it really depends, but what really matters, is that you do actually have salary ranges for each level on your team (junior, professional, senior, manager, architect etc ) And never leave it out to the “Do we really need that person that bad” factor, or “Is he/she desperate for the job?” factor.

Not only it is immoral, but to tell you a secret We tell each other one way or another people share their numbers, _“I remember when Zalando Employees made a Google Sheet and shared their salaries it was quite a stir, because there was a lot of unfairness incidents with many people, which brought the company to be more clear about later and do salary adjustments”_and those who might not tell today, they might share it with their best friends on their way out, etc.

If management continued with this unethical ways, many people get angry when they figure out how not appreciated deceived they were.

So It will also save you a ton of time and other candidates precious time if it was clear from the beginning. Hence we’re talking about a range, not a fixed number.

Case 3 The Superman/Savant exam mode

When you send your candidate an exam, that contains fairy tale unusual algorithmic problem and expect them to solve 3 more in less than 2 hours, while in most cases your Tech Lead didn’t actually write those hideous questions, he just copied or used Codility or HackerRank (and switched hardest level on) . Well, expect :

  1. The candidate is actually a Savant, (prepare to empty your bank account)

  2. The candidate is cheater he’ll google it (p.s in our daily life as sad and bored software engineers, all we actually do is copy-pasting code, there are books around this btw) Although it’s your fault, and although the previous fact, I myself unfortunately just refuse to answer them as a matter of principle, so I take the one that I like the most and take my time with it, just as a game, and I of course I know at that point process has failed.

  3. The candidate just memorized Cracking Coding interviews, and other 100s of examples, this person is awesome hire him/her, but congratulations you just lost hundreds of good candidates; that could have competed with your lucky one, in real life business problems.

Disclaimer:I’m not saying you shouldn’t introduce hard algorithms questions; Algorithms is only an example. What I’m saying is:

  1. Don’t think that solving a hard typical question (in our case algorithms) is the only way to measure someone’s intelligence/skills and leave out many areas where you can see some real intellectual power and problem solving skills. The key here is to always use your business daily problems for the interview !.
  2. Only raise your bars in the area which has actual relevance to your business problem

So if your developer is supposed to create APIs, a hard algorithms is unnecessary while a couple of REST principles tricky questions is indeed a good thing.

Companies that are figuring it out (slowly)

Companies like Google or Facebook in the tech world, are out of the scope of this friendly discussion, I haven’t applied there yet, so I can’t judge, I read some stories although, but I still won’t judge - sorry.

But let’s talk about less big companies, Zalando for example, with roughly 20 Billion Euro in stocks, almost 1.5K tech engineers/scientists and over 10K non-tech. Or even Amazon.

Yes, there is no one straightforward answer, and despite massive demand and supply scale, Zalando or Amazon have, they’re trying to be smart,

Zalando interview goodies:

My Zalando interview series was with many Engineers, and fancy algorithm questions was never part of them, instead it was one to one friendly pairing to solve a problem, with yet to learn later one of the best people I met (Sean Floyd, for example, one of most experienced and most humble + cool in Java and tech world) and many great others, still meeting seeing.

Not to mention, how helpful and nice the People Services team was and my recruiter hero she was the best. These are things that are never forgotten, yes we have tons of issues which should be addressed properly in Zalando, but “Those who do not thank (acknowledge favors of) people are not thanking Allah” Prophet PBUH.

Zalando is using its working force, as part of it’s interviewing process, we pair with interviewees, they come to premises, we have lunch with them, even if it doesn’t work out at the end!

Disclaimer, I refuse doing tech interviews to people, I think of it as a huge responsibility to judge someone’s knowledge, and therefore I don’t, I might only accept a lunch invitation or a friendly intro. Hopefully I never get to be forced to do it.

But

A couple of months ago, I heard Zalando started using Codility, as a filtering step, I would hope that it’s not the crazy hard levels of Qs, and if they were, then it would be a disaster, I hope they avoid.

Zalando and so many other companies have some preferences regarding Ph.D. and Bsc etc, they’re of course a great indicate of hard work, but in the world of Coursera, and free education today, they’re getting less and less important and actual experience, morals and communication skills are what really matters.

Amazon

On the other hand, Amazon’s case was one very simple exam, that I really learned from, and although I didn’t succeed in the exam, I actually enjoyed it and learned something new about data structures and algorithms, that time was around 2 years ago, I even kept the questions and studied them later.

Wrapping up and Suggestions :

  1. Always Check candidates Github and Stackoverflow accounts.
  2. Many companies moving toward the 2-3 days assignment thing, where candidates are asked to solve a normal business based assignment and their code is evaluated by tools + people.
  3. Avoid by all means following the crowd, you’re not Google, and you’re not Facebook, you’re not receiving 100,000 resumes daily! from around the globe.
  4. I would even suggest you ask questions about what your job description or even about your company, it would be fun and you’d make sure your candidate knows about your business model before he/she enters your series of interviews.
  5. Ask basic questions but meaningful ones
  6. Use your workforce, rotate on engineers and leads to do the interviews, for not just one tech interview but many and diverse.
  7. Always do interviews by pairs of people at least to influence a fair assessment.
  8. Pair programming with team members and on-premises site visits, office walks, and even lunch is also a must-have.
  9. Candidates are already stressed out, they’re dealing with a life-changing event, no silly questions or sizing stares, yes people will handle the pressure most of the time, but you’re not the only company in the market, and some people would even accept less if they felt comfortable in a place than another.

P.S Yes, I do interviews occasionally, even that I’m happy in my company, I believe keeping a sane rate of interviews per year is very helpful, and I suggest you do too.

P.S I would rather be rejected because of a normal sane interview questions that I should sharpen my skills in, rather than an interview that has no backing reality behind it.

Some good readings

I’d suggest you follow Human Workplace and its founder Mrs. Liz Ryan https://www.linkedin.com/in/lizryan it’s one of the best companies and series of articles about how things should be and how to fix/face problems you have in work, and of course being a Human at work.

I’m not the only one talking about it:

  • Straight to the point article: https://medium.freecodecamp.org/why-is-hiring-broken-it-starts-at-the-whiteboard-34b088e5a5db
  • First part of this one is about when exactly an algorithms savant is needed and how it’s often not the case: https://hackernoon.com/why-functional-programming-matters-c647f56a7691

Your feedback is important, and I’m always open for fruitful discussions and comments.

comments powered by Disqus