Ok, sure, there are some companies out there that don't know what they are doing, and the very most prestigious companies have to do some very tedious stuff to deal with the fact that their process gets leaked and people are willing to put a ton of effort into preparation.
But mostly, it's pretty reasonable:
- Little reliance on credentials, because there are many solid candidates that didn't go to top schools or don't have CS degrees or maybe didn't go to post-secondary school at all.
- There's some sort of technical interview that asks the candidate to show they can do the work by doing a small amount of work. They usually let candidates choose the language and tools they'll use for this, offer help if the candidate gets stuck, let them look things up on the web, etc. This can take a few different forms, but it's inevitable given that credentials aren't reliable.
- There's some sort of "behavioural" interview that asks about how a candidate collaborates and communicates with coworkers. Tech companies aren't looking for the anti-social genius anymore; software requires teamwork.
- Recruiters are typically very accommodating of a candidates' circumstances. They'll tailor the pace and scheduling of interviews to the candidates' needs, fly them in from other cities, reserve time in interviews to answer candidate questions, and generally put significant and explicit effort into making the "candidate experience" as positive and low-stress as possible.
- There's a lot effort put into eliminating biases, and interviewers will often do things like not reading a candidate's resume until after the interview, or writing up their report before talking with other interviewers about the candidate. Most tech companies really want to do this right.
I think that what tech companies ask of candidates is quite fair. These are high-paying (sometimes very high-paying), high-prestige, comfortable jobs with lots of perks. The company puts a lot of time and money into training new hires before they're productive, and it'll be even more time before they can tell if the new employee was a good hire or not. In other words, the cost of hiring the wrong person is very high.
I hate the state of tech interviews with a passion but I have to reluctantly agree.
When I was involved in hiring I was astonished at how difficult it was to even find a person who was both worth interviewing and willing to interview, and resumes were basically worthless at helping you make that determination.
Resume did not matter at all. The hiring pool is flooded with a thousand bootcampers, 1 in 40 can actually program and its impossible to tell who they are without conducting a remote. A thousand people with Masters degrees in comp sci, 1 in 50 can actually program and most of them don’t even seem to have any interest in programming.
Then there are unfortunate language barriers, where a large percentage of the pool are international but your company doesn’t have anyone who can interview them adequately.
There’s a reason finding tech hires has become its own industry and we all get spammed 10x daily. It’s because it’s really, really difficult and time-consuming and exhausting and expensive to make a good tech hire, and the cost of making one of your first 5 or 10 engineering hires a bad one can literally be that your company just fails.
It’s just so hard to hire software developers. I’ve been on both sides so I know how frustrating the situation is for devs, but I don’t think it’s half as frustrating as being on the hiring side of it. It’s just so fucking hard and exhausting. Even beyond the logistics of it, you’re spending all your time judging people’s economic worth and sending emails that you know will ruin their day. It’s just not a fun job at all.
I’m a big tech veteran, and I agree tech interviews aren’t perfect. Your assessment on discrimination is misleading. The tech interview is a signal, which is “good enough” but far from perfect, especially in this world of hiring at scale.
>if people go to university and actually study and work hard to get a degree, it should be normal they don’t have to go through this bullshit.
There’s a significant number of candidates, who despite their CS degrees and fancy GPAs, can’t solve basic programming problems. And then there are the senior or principal engineer candidates who can talk a big game but can’t write fizz buzz.
Frankly, you can call it bullshit, but hiring unqualified people, coaching them, and eventually letting them them go is expensive. It’s not just expensive for the company, but it has a personal toll on the candidate, their manager (if they’re sincere), and the team.
Tech interview loops aren’t a perfect solution. We still let go of people who get through these loops. People try to study specific questions and anticipate the same or similar question in their own interview. Or other times, people get hired because the hiring manager is just bringing in “talent” from their previous company to expand their empire and get their promotion. Yeah… there’s corruption in every system.
> it has indirectly prevented knowledge workers from organizing.
I have literally no idea how unions are relevant or how tech interviews encourage or discourage unions.
The standard process at tech companies for interviewing and assessing candidates is completely ludicrous. I like writing software but I've given up on the industry because of attitudes around hiring and advancement within companies. It just sucks dick everywhere I've worked.
If tech was just look at a resume and decide to hire or not people would hate that even more than modern complicated forms of interviewing.
There's flaws in the ways a lot of companies hire, but the process has to be complicated when you get down to the numbers of how many people are for hire and how many are worth hiring.
It's not a "Tech company thing" it's a "junior engineer who doesn't know how to interview" thing. It is an indicator of a low quality company. Seriously. This is my opinion after 25 years of interviews.
Ask the candidate "Tell me about a project you're passionate about". Find out why. Get them to explain a hard problem they solved. Get them to teach it to you so you understand it.
Find the candidate that can do that and that gives you a good answer and you find a candidate who is passionate about something and can communicate it and understood it well enough to relate it in detail to you on the spot. That's the one to hire.
not the one who memorized quick sort... the former can implement a new quicsort.... the other one will spend all his time on stack overflow asking others to do his work.
IMO none of OP's points are the one thing really wrong with (dev/tech) hiring.
The absolutely grueling, pointless, insane interviews processes are the lion's share of problems in this field. To the point that its an industry of its own, with Leetcode and the likes. Its pathetic, inefficient and just in terrible taste.
What's so interesting about this experience it hits so many of the points I've been complaining about in my writing about hiring in the tech industry[0]:
- Giving trick questions that have an "insight" moment, instead of one that has multiple answers, even partial answers to build off of.
- Not letting the candidate pick the language they're comfortable with. The candidate may even know the language they're asked to code in, but if they haven't been working with it recently, an interview is not the right time to pick it up again.
- Making the candidate nervous, both by not being helpful and by watching over them with unnecessary scrutiny.
- Looking for flaws instead of strengths.
People, myself included, are always talking about these problems, but companies have so much inertia, they are not evolving fast enough to solve these problems. No wonder tech companies are filled with people who, while capable, often fit a particular mold, and why we end up in situations where products don't reflect the needs of the market (because the people working on those products aren't representative of the market).
This is my personal pet peeve. I've often applied for jobs at well known tech companies who's technology is fairly simple (one company was a plain mid-sized CRUD Rails app, another was three PhoneGap JS-frontend-heavy mobile apps + JSON API backend, fairly mundane things like that)
And yet they still interview you like they're pretending to be SpaceX or NASA or something. 5+ hours of programming brainteasers (which they swear are just 'simple programming exercises' that 'are just to give insight into process' -- but are actually brainteasers, and you are actually expected to solve on site).
Which makes the inevitable "we like you, but have to pass on you for technical merit" rejection sting pretty badly -- I have the technical capability to handle these jobs, because I already do this same work every day. But I get told my technical knowledge isn't strong enough to work on their apps, because of stumbling on some of the latest trick questions.
And then, their managers write a blog post on Medium and complain about the lack of tech talent, or how they are inundated with fake applicants who "can't code FizzBuzz"
sigh
Technical hiring is just totally screwed up, and no one seems remotely interested in fixing it.
The problem with tech hiring is that a significant fraction of tech people are basically unskilled. Despite education and experience in some cases. Odds are either the interviewee is unskilled or the interviewer is.
In the best case where you have a technically skilled interviewer and interviewee, there is still the problem of: 'the correct answer is my answer. Even if yours also works, it is not my answer.'
Tech hiring is not difficult, but it requires the following traits in the interviewer:
1. Broad technical skills and the ability to recognize skills in others.
2. Ego is not driving them. No need to be smarter than everyone.
3. Conversational/interpersonal skills to get the interviewee to talk, and to recognize someone who will be a jerk.
The common assumption is that skilled tech people lack interpersonal skills, but in my experience 1&2 is the rare combination.
I've absolutely bombed tech interviews in the past, I now will refuse to do any. Particularly, because I've got some "street cred" with my startup, and basically my work with my company and GitHub speaks for my talents. I get it, you have to "vet" a candidate, but tech interviews in my opinion are not a good solution.
O(N) notation, data structures, academic computer science.... Rubbish.
I’ve just interviewed at 4 places. None had technical recruiters; I was contacted and went through the process with the hiring manager.
Same nonsense though; here’s some random leetcode problem; sure our company hasn’t made anything novel or proven itself in the market but we Googled how to do a tech interview and this is what we found.
Getting a job is hard because people are lazy. They’re just regurgitating what popular companies are doing, whether it’s good for them or not.
Interviewing in tech is a mess especially with the self-aggrandizing questions.
Besides the questions, you get interviewed by recruiters. The recruiter, very likely a person that has never done anything technical, been in a technical team, delivered products/features under tight timelines...
Companies do not want their engineers and product people spending time interviewing prospects, so they throw recruiters at the problem and end up frustrating and wasting the time of other engineers. Like, it's your problem, not ours.
If a recruiter reaches out and I'm interested, I ask to talk to someone technical.
People hate on tech interviews, but it's honestly a lot more fair than traditional interviewing if done properly. You only gauge the candidate on their ability to solve and think through a problem. I also follow a trainer's pattern who doesn't read the candidate's resume before a technical screen to further reduce bias.
Please don't. Better, I'll remove the please and go JUST DONT FUCKING DO IT.
Hiring is broken because most people hiring aren't good at it and the people working in tech are pretty much idiots (I'm focusing more on SV-startup, 5hour discussion about aeropress, put people down because they chose vim or emacs - people kinds). From 'cultural' fit interviews (who the fuck cares if you are a sikh or an atheist, whiskey drinking or think alcohol is evil? You are hired to do a job, not much more). This 'i have my social life at work, so I want people I can hang out with' shit has got to end. I work remotely for 10+ years and I can see in interviews/meetings the people that seem to base their identity and life around work, and the ones that actually are well rounded people that don't care about which coffee grind size you use on your morning crap of joe.
I have been a professional boxer and dabbled with MMA/Grappling. I can say most things in the article can apply. So.. at the end of the interview just get them in gloves and duke a few rounds? I would be sued out of existence, but for some reason, between take home assignments, 10h whiteboard drilling and whatever the fuck is hip now (leetcode or what not), interviewing is broken because people are idiots. I have been interviewing people for the last 5 years. If in an one hour talk that is semi technical, you can't understand if the person knows what the fuck they are doing or not, then the problem is you, not the whiteboard or the take-home or the paid assignment. Just admit most people interviewing others for technical positions have not fucking clue or training, BUT, hey, they are smart people from Standford or MIT, so 'how hard can it be' and we get the clusterfuck that it is now
Even happens in the US. This is why US tech companies don't give a shit about a diploma. Half of applicants then can't pass basically fizz buzz during a phone interview. It get's even worse once on site. As annoying and ineffective as tech interviews are we can at least weed out the people who have no idea how to program fairly effectively. Though too much of the focus is on that really. When it comes to higher level positions interviews can barely even start to gauge talent.
And yet the discussions on the candidate post-hiring interviews mostly revolves around whether they confirm to the company/tech/what-have-you 'culture' which, imo, is simply a euphemism for ageism, in-group bias, prejudice, hubris, and one-upmanship more often than not. The world would be a better place if people started accepting the fact for what it is: There wouldn't be so much despair around the tech interview process if not everything was broken, surely?
Ok, sure, there are some companies out there that don't know what they are doing, and the very most prestigious companies have to do some very tedious stuff to deal with the fact that their process gets leaked and people are willing to put a ton of effort into preparation.
But mostly, it's pretty reasonable:
- Little reliance on credentials, because there are many solid candidates that didn't go to top schools or don't have CS degrees or maybe didn't go to post-secondary school at all.
- There's some sort of technical interview that asks the candidate to show they can do the work by doing a small amount of work. They usually let candidates choose the language and tools they'll use for this, offer help if the candidate gets stuck, let them look things up on the web, etc. This can take a few different forms, but it's inevitable given that credentials aren't reliable.
- There's some sort of "behavioural" interview that asks about how a candidate collaborates and communicates with coworkers. Tech companies aren't looking for the anti-social genius anymore; software requires teamwork.
- Recruiters are typically very accommodating of a candidates' circumstances. They'll tailor the pace and scheduling of interviews to the candidates' needs, fly them in from other cities, reserve time in interviews to answer candidate questions, and generally put significant and explicit effort into making the "candidate experience" as positive and low-stress as possible.
- There's a lot effort put into eliminating biases, and interviewers will often do things like not reading a candidate's resume until after the interview, or writing up their report before talking with other interviewers about the candidate. Most tech companies really want to do this right.
I think that what tech companies ask of candidates is quite fair. These are high-paying (sometimes very high-paying), high-prestige, comfortable jobs with lots of perks. The company puts a lot of time and money into training new hires before they're productive, and it'll be even more time before they can tell if the new employee was a good hire or not. In other words, the cost of hiring the wrong person is very high.
reply