Ask HN: Junior devs, what frustrates you the most at the recruitment process?
39 comments
The main issue with 'seniority' labels is that they are contextual - dependent on the hierarchies already in place in the existing team. In simpler language, what is a 'junior' developer changes depending on who is already there. The main manifestation of this in the recruiting process is a misalignment of expectation between the candidate and the employer. And all kinds of bad things can happen from this: under / over sold jobs, job title 'inflation', incipient turf wars and so on.
It's not an easy problem to solve and we've wrestled with this on Workshape.io (matching platform for Software devs). The formula we've come up with is a 4 level hierarchy based not on experience or times served but on the role you play within the team.
Entry - you are competent, but need guidance / supervision / mentorship. Your code will be reviewed before deploy
Mid-level - you are competent but do not lead or manage
Senior - you are still hands on, but do lead and manage others
Lead - you may still be hands on but managing / leading / deciding are the most important things you do.
Its still our categorisation though and we know it's not perfect at all
It's not an easy problem to solve and we've wrestled with this on Workshape.io (matching platform for Software devs). The formula we've come up with is a 4 level hierarchy based not on experience or times served but on the role you play within the team.
Entry - you are competent, but need guidance / supervision / mentorship. Your code will be reviewed before deploy
Mid-level - you are competent but do not lead or manage
Senior - you are still hands on, but do lead and manage others
Lead - you may still be hands on but managing / leading / deciding are the most important things you do.
Its still our categorisation though and we know it's not perfect at all
At my organization, everyone's code gets reviewed before deploy, everyone (especially leads and managers) is learning and getting mentored, and everyone gets guidance (new projects and major changes have a design doc that goes out to the whole engineering org for comments).
Tech leads are expected to do more architecture but having direct reports and writing code are usually mutually exclusive.
So, everyone is junior?
Tech leads are expected to do more architecture but having direct reports and writing code are usually mutually exclusive.
So, everyone is junior?
I've got well over a decade of experience, much of that as a team lead, and I still think everyone's code including my own needs review before deploy.
Yeah, that's kind of nuts. No one is above review.
Who has time for that?
I've worked in places that didn't bother with code reviews. In the end, they didn't have time for it because all their time was spent desperately trying to keep the mass of poorly-designed, inconsistently implemented legacy code (which included code written the previous week - "legacy" doesn't mean "old") working.
There comes a point where there's no time to stop and start making things better, and you just watch the inevitable disaster come hurtling down the track as people are forced to continue churning out legacy code to keep it going today, knowing that they're just ensuring the final crash will be that much more destructive.
There comes a point where there's no time to stop and start making things better, and you just watch the inevitable disaster come hurtling down the track as people are forced to continue churning out legacy code to keep it going today, knowing that they're just ensuring the final crash will be that much more destructive.
Exactly. The question ought to be "who does NOT have time for that?"
People who don't have time for having large parts of their system only be understood by a single developer.
Why are you in a rush?
I think your hierarchy is pretty much realistic. I love what you're doing with workshape.io. I would like to chat with you more on the recruitment topic. Would you be interested? My Twitter handler is @RautaAlin
Yeah of course. Happy to chat. Followed on Twitter (we can DM there) or if you prefer, email [email protected]
Requiring a CS degree and asking coding questions that boil down to if you've memorised BFS/DFS.
When we were hiring, I noticed people couldn't look past non-CS degree, and so we were effectively turning people with 3+ years of experience and great Github profiles/real world experience away. Because we "wanted the best".
Or having people fail shitty coding "challenges" because they couldn't remember breadth-first search of the top of their heads. Never mind that they knew where to look the algos up, or the role was pretty much full stack web developer.
When we were hiring, I noticed people couldn't look past non-CS degree, and so we were effectively turning people with 3+ years of experience and great Github profiles/real world experience away. Because we "wanted the best".
Or having people fail shitty coding "challenges" because they couldn't remember breadth-first search of the top of their heads. Never mind that they knew where to look the algos up, or the role was pretty much full stack web developer.
Than there are clearly enough developers to pick from.
When I was a junior dev trying to get my first jobs, what was frustrating was the range of what 'junior dev' meant. Anything from knowing what JavaScript is to having 2+ years of experience with a JS framework, and having a Github full of interesting side projects.
The latter style job posts were very disheartening to read, and I sometimes wondered how I would ever get enough experience to get a job as junior dev!
The latter style job posts were very disheartening to read, and I sometimes wondered how I would ever get enough experience to get a job as junior dev!
I couldn't agree more! I looked at junior dev jobs that wanted people who contribute often to open source, had awesome side projects, etc. Sounds like they wanted midlevel but only had budget for junior.
Please note, I've never seen your code, so don't take this personally.
That's because they want you to be productive. IME/O, having someone on the team that can't really make an app is antithetical.
You could definitely look for a job in QA and ask them to set you up as a dev, then work on dev in your spare work hours.
That's because they want you to be productive. IME/O, having someone on the team that can't really make an app is antithetical.
You could definitely look for a job in QA and ask them to set you up as a dev, then work on dev in your spare work hours.
I had the same feeling in the beginning. It seemed to me so hard to have the credentials asked by a junior job requirements and felt very discouraged.
I'm a little bit more senior (4 years experience) than a new junior and not a developer per se (work in marketing tech) but my biggest gripe are the hurdles you have to do to reach the hiring manager (or how drawn out some of these processes are). Some of these I've experienced are:
1. Cover letters - I'd rather someone from HR screen my resume and give me a 3 minute call about why I wanted to apply for the job.
2. Take home exercises/psychometrics before having an in person interview
3. Interview with junior staff before an interview (good experience for the staff but I've found them to be a bit unsure of what to ask.)
4. Vetting from HR or recruiters that don't really know the topic but are just looking for keywords which indicate competence (i.e. "SQL","Reporting", "Project Manage","Agile") or want to know why you want to work at the company specifically when the careers website has poor information.
My ideal process would be (for a large company): Apply with Resume (ideally one-click apply) -> Short Chat with HR on phone -> In person interview with hiring manager -> Interview with senior manager (more on cultural fit and long term fit) or short take home (ability) -> Offer
1. Cover letters - I'd rather someone from HR screen my resume and give me a 3 minute call about why I wanted to apply for the job.
2. Take home exercises/psychometrics before having an in person interview
3. Interview with junior staff before an interview (good experience for the staff but I've found them to be a bit unsure of what to ask.)
4. Vetting from HR or recruiters that don't really know the topic but are just looking for keywords which indicate competence (i.e. "SQL","Reporting", "Project Manage","Agile") or want to know why you want to work at the company specifically when the careers website has poor information.
My ideal process would be (for a large company): Apply with Resume (ideally one-click apply) -> Short Chat with HR on phone -> In person interview with hiring manager -> Interview with senior manager (more on cultural fit and long term fit) or short take home (ability) -> Offer
Let's say you the one paying for the ideal hiring process you mentioned above. You're the owner of a bootstrapped business, or you're in a large company and have a fixed budget with which to work. You advertise a 10 junior positions, and get 100 applications per position (let's assume 1000 total unique individuals). In this situation, would you make any changes to your ideal hiring process mentioned above?
A sibling post said this involves cutting people out at the pre-interview stage which I agree with. I don't know to what extent recommendations should be able to help int his "ideal process". I think this where proxy metrics like highest degree earned, years experience help.
I've never worked for a company that gets 100s of qualified applications per position (edit: apart from call centre) and I'd wonder how a bootstrapped company would get so many applications?
I've never worked for a company that gets 100s of qualified applications per position (edit: apart from call centre) and I'd wonder how a bootstrapped company would get so many applications?
You throw out 900 resumes between step 1 and 2 because they didn't manage to submit one without tens of spelling mistakes?
I agree though that having everyone write a cover letter, that they can write in their own time, and that you can read in your own time is preferable though.
Better yet, just leave off on the cover letter requirement.
I agree though that having everyone write a cover letter, that they can write in their own time, and that you can read in your own time is preferable though.
Better yet, just leave off on the cover letter requirement.
What jobs are receiving 900 resumes?
When we looked for a Django dev we got two applicants, and the good one of the two only wanted to work freelance. Admittedly we were looking for some experience.
When we looked for a Django dev we got two applicants, and the good one of the two only wanted to work freelance. Admittedly we were looking for some experience.
A lot of it is situational. A company in San Francisco hiring a junior Rails dev will probably get a LOT of recent bootcamp grads as applicants. Last I checked, most bootcamps were still focused on teaching Rails. So that's on factor. I was recruiting for Rails in SF, so that's part of it. You learn to optimize for challenges you have.
In that case would you throw out all the bootcamp grads? Would degree > bootcamp?
Probably when you're interviewed by some mid-senior manager who isn't capable of writing any code and his sole purpose is to "keep you in line" so tries to assert a bullying authority from the outset.
Extremely typical in big corps. Makes me wonder what purpose they serve other than being glorified messengers between the board and real works.
Extremely typical in big corps. Makes me wonder what purpose they serve other than being glorified messengers between the board and real works.
Pretty much this :- https://www.youtube.com/watch?v=hNuu9CpdjIo
I love that film.
I love that film.
The irony of this being that a decent requirements person, who can actually get out of the customers what they actually want and present them meaningfully to the software engineers, is extraordinarily valuable.
As someone who has been unemployed since graduation....
Getting no feedback, not even a rejection, after an onsite.
Trivia games
Getting rejected because of the lack of keywords on your resume. Example: I was interviewing for Walmart. Recruiter said I must've applied to the wrong position, since I had no Java framework keywords. This was for a new grad position.
Companys not asking any algo questions, not even STAR ones, and me still getting rejected.
Lots of lying by the recruiters that revolve around salary.
Getting no feedback, not even a rejection, after an onsite.
Trivia games
Getting rejected because of the lack of keywords on your resume. Example: I was interviewing for Walmart. Recruiter said I must've applied to the wrong position, since I had no Java framework keywords. This was for a new grad position.
Companys not asking any algo questions, not even STAR ones, and me still getting rejected.
Lots of lying by the recruiters that revolve around salary.
>Getting no feedback, not even a rejection, after an onsite.
This happens all the time even when you are senior (10+) years like me. It's maddening and I think one of the rudest things an org can do.
This happens all the time even when you are senior (10+) years like me. It's maddening and I think one of the rudest things an org can do.
In reality culture fit means "do I like you or not?". To get disqualified on culture fit, all you need is one single interviewer that will not feel %100 comfortable working with you. You can get discriminated on anything really, if you seem smarter than the interviewer, if the interviewer is having a bad day, your voice, the way you look, your laugh, etc. In other words, it's nearly impossible to figure out the exact reason why you'd get disqualified on "culture fit". It's in the interviewer's brain only. He or she will obviously never share the real reason why. Sometimes it's not even explainable on paper, it's just a personal feeling, you haven't connected with the candidate for no particular reason. So you can't write an official feedback based on culture fit. Interviewers will never share their personal tastes because it doesn't seem professional. That's why 'we' use algorithm questions :)
Speaking of "technical" questions - the good news is that there's absolutely no difference between Junior and Senior dev nowadays. Questions are identical so you can learn it once and re-apply for life. Everything you've learned in college is what will get you a job, even 10 years down the road so forget about your professional experience. Majority of interviewers have no skills interviewing candidates. They apply the same evaluation whether you're a tech lead or fresh out of school. If you happen to have 10 years of experience or at least one project on your Resume, they might fill up the blanks by asking you a few questions about your previous projects. But the goal is to jump straight into the basic CS questions (algo) because this leads to a YES or NO answer. That's what interviewers use to make a decision and let you go to the next round or not. You can't fail answering questions like "tell me about your project XYZ, what was difficult, how did you solve it". Though if you can't reverse a linked list because you forgot to google it prior to the interview, you will get disqualified right away since it gives the interviewer a solid feedback to write down that will never get challenged by the hiring manager.
To answer your question - what I just wrote is what frustrates me the most in the recruiting process in the Software world. I've been dealing with this thing for years... as an interviewer and interviewee. Things are getting worse in 2017 because I see 500 applicants per job. You get disqualified on questions like "do you use a new line for curly braces?". The trick is to not answer right away and to return the question back to the interviewer - "good question, what do YOU use?". Then just say "me too"... safe bet.
Speaking of "technical" questions - the good news is that there's absolutely no difference between Junior and Senior dev nowadays. Questions are identical so you can learn it once and re-apply for life. Everything you've learned in college is what will get you a job, even 10 years down the road so forget about your professional experience. Majority of interviewers have no skills interviewing candidates. They apply the same evaluation whether you're a tech lead or fresh out of school. If you happen to have 10 years of experience or at least one project on your Resume, they might fill up the blanks by asking you a few questions about your previous projects. But the goal is to jump straight into the basic CS questions (algo) because this leads to a YES or NO answer. That's what interviewers use to make a decision and let you go to the next round or not. You can't fail answering questions like "tell me about your project XYZ, what was difficult, how did you solve it". Though if you can't reverse a linked list because you forgot to google it prior to the interview, you will get disqualified right away since it gives the interviewer a solid feedback to write down that will never get challenged by the hiring manager.
To answer your question - what I just wrote is what frustrates me the most in the recruiting process in the Software world. I've been dealing with this thing for years... as an interviewer and interviewee. Things are getting worse in 2017 because I see 500 applicants per job. You get disqualified on questions like "do you use a new line for curly braces?". The trick is to not answer right away and to return the question back to the interviewer - "good question, what do YOU use?". Then just say "me too"... safe bet.
This really is true. During an interview I gave in college, I was rejected because of 'culture fit', because I tried to explain my solution to the interviewer but he wasn't bothered to understand it. My friend (who later got hired) told me that he said that while I was technically capable, I had 'an attitude problem'. Not saying I wasn't at fault, but it does matter because interviewers are human too, and like working with people they enjoy spending time with.
>Speaking of "technical" questions - the good news is that there's absolutely no difference between Junior and Senior dev nowadays. Questions are identical so you can learn it once and re-apply for life. Everything you've learned in college is what will get you a job, even 10 years down the road so forget about your professional experience.
That isn't even close to true. Perhaps I'm misunderstanding. Could you elaborate on this a bit?
>You can't fail answering questions like "tell me about your project XYZ, what was difficult, how did you solve it".
This is the most important question I ask, and you can absolutely fail it. I use it to gauge interest in the field. If people give me a ho-hum answer, I know they are in the field because they heard it paid well and will probably have no incentive or drive for excellence. Even passionate introverts will perk up when this question is asked. I can't overstate how important passion is to future personal development.
On a side note, I haven't had to deal with a recruiter (for my employment) since 2001 (dot bomb) and that didn't even help me. I used a recruiter for my first and second job and haven't since (in 20 years). If you do good work, people will remember you when time goes by and your co-workers are at a new location looking for talent.
I think you are sharing your perspective from large companies. Small and mid sized companies are often more competent in interviewing (and fun to work for) because they aren't shackled by some pre-determined interview "process."
That isn't even close to true. Perhaps I'm misunderstanding. Could you elaborate on this a bit?
>You can't fail answering questions like "tell me about your project XYZ, what was difficult, how did you solve it".
This is the most important question I ask, and you can absolutely fail it. I use it to gauge interest in the field. If people give me a ho-hum answer, I know they are in the field because they heard it paid well and will probably have no incentive or drive for excellence. Even passionate introverts will perk up when this question is asked. I can't overstate how important passion is to future personal development.
On a side note, I haven't had to deal with a recruiter (for my employment) since 2001 (dot bomb) and that didn't even help me. I used a recruiter for my first and second job and haven't since (in 20 years). If you do good work, people will remember you when time goes by and your co-workers are at a new location looking for talent.
I think you are sharing your perspective from large companies. Small and mid sized companies are often more competent in interviewing (and fun to work for) because they aren't shackled by some pre-determined interview "process."
I agree with what you said even though it seems a bit outdated. I made a general statement looking at the evolution from 2005 until today. I switched employers many times, worked for small, medium and large companies. I got to interview a lot of candidates for the last 10 years collaborating with other colleagues to make hiring decisions. I'm aware there are exceptions out there, totally agree with you! Though, it changed since 2005. It seems that most of the tech companies are now following the google model by putting CS principles at the center of the technical screening. It doesn't matter if you applied for a Web, Mobile, Backend position, if you're a junior, senior, staff, etc. You'll have to go through it and it's usually a 30 minute question within a 45 min to 1h interview. So I call it the main technical evaluation for engineers. Versus a 2 minute question going over the technology you used and how you tackled some of your challenges. I personally dig into those questions but most of the interviewers don't want to hear about anything else rather than their own voices. They need to make a "valid" decision at the end of the day so they better get a solid justification. Like I said, it's easier for them to ask YES/NO type of questions rather than engaging in a design discussion for 30 minutes. Some do but most don't.
Right now the market is saturated by people applying everywhere at the same time. Some recruiters get handed multiple choice questions and get involved in the filtering right up front. If you use a referral these days you still have to go through the standard hiring process, again, there are exceptions. I got hired by an ex-collegue from another company a few years back, where he got promoted to manager. We worked together, coded together and were both engineers at our previous employer. He had an open req in his team and contacted me personally. I still had to go through the standard hiring process and crack a few algorithm questions with other engineers. He bumped up my rank though to the max when he hired me, which is where the referral boost came into place. Not during the hiring process, I was just a regular candidate for other engineers.
Anyway, back to your points, algorithm questions are the main topic of conversation during tech interviews in 2017, minus the exceptions. It all comes down to writing code on a whiteboard or in a notepad. When I say code I mean palindrome, dykstra, doubly linked list and all this crap. I say that because it's the hardest problem you can ask to a candidate with or without experience. People know you'd feel comfortable talking about app optimization, scaling an infrastructure, common problems in a multi threaded system, etc. They use it for architect positions where they know the person won't write a line of code. There's just a big misunderstanding because interviewers aren't trained to evaluate candidates. They'd rather go for the generalist route and hire the "smartest" algorithm guru over someone who has a deeper knowledge of the field.
Right now the market is saturated by people applying everywhere at the same time. Some recruiters get handed multiple choice questions and get involved in the filtering right up front. If you use a referral these days you still have to go through the standard hiring process, again, there are exceptions. I got hired by an ex-collegue from another company a few years back, where he got promoted to manager. We worked together, coded together and were both engineers at our previous employer. He had an open req in his team and contacted me personally. I still had to go through the standard hiring process and crack a few algorithm questions with other engineers. He bumped up my rank though to the max when he hired me, which is where the referral boost came into place. Not during the hiring process, I was just a regular candidate for other engineers.
Anyway, back to your points, algorithm questions are the main topic of conversation during tech interviews in 2017, minus the exceptions. It all comes down to writing code on a whiteboard or in a notepad. When I say code I mean palindrome, dykstra, doubly linked list and all this crap. I say that because it's the hardest problem you can ask to a candidate with or without experience. People know you'd feel comfortable talking about app optimization, scaling an infrastructure, common problems in a multi threaded system, etc. They use it for architect positions where they know the person won't write a line of code. There's just a big misunderstanding because interviewers aren't trained to evaluate candidates. They'd rather go for the generalist route and hire the "smartest" algorithm guru over someone who has a deeper knowledge of the field.
>It all comes down to writing code on a whiteboard or in a notepad.
Thanks for elaborating but that's sad news. I thought we had all collectively decided this was a horrible way to interview people. If a company absolutely must have code written, assign all interviewees a programming task and have them submit it through GitHub or on your site. Something that shouldn't take more than 30 minutes for a moderate developer. Anyone who doesn't complete it gets filtered, and you get a good example of their thinking, style, sloppiness, comment habits, etc. If you think they nicked it from the internet, have them make a slight change.
I've always considered the ability to be able to design a piece of software or module from nothing to something complete in a moderately elegant way was way more important than if someone had memorized how some algorithm works without ever having the need to implement it.
It's akin to asking a painter how to build various types of brushes and how to harvest paint, or an author how to make pens. That ability isn't useless, but certainly don't make that the focus of your interview.
I want experienced software designers, they can learn anything they are lacking with whatever stack we use in house in just a few weeks. I'll just stick to using my methods and wait until the industry catches up. :)
Thanks for elaborating but that's sad news. I thought we had all collectively decided this was a horrible way to interview people. If a company absolutely must have code written, assign all interviewees a programming task and have them submit it through GitHub or on your site. Something that shouldn't take more than 30 minutes for a moderate developer. Anyone who doesn't complete it gets filtered, and you get a good example of their thinking, style, sloppiness, comment habits, etc. If you think they nicked it from the internet, have them make a slight change.
I've always considered the ability to be able to design a piece of software or module from nothing to something complete in a moderately elegant way was way more important than if someone had memorized how some algorithm works without ever having the need to implement it.
It's akin to asking a painter how to build various types of brushes and how to harvest paint, or an author how to make pens. That ability isn't useless, but certainly don't make that the focus of your interview.
I want experienced software designers, they can learn anything they are lacking with whatever stack we use in house in just a few weeks. I'll just stick to using my methods and wait until the industry catches up. :)
What you're describing is the perfect way to evaluate a developer. That's exactly what I promote to my employers. That's what I ask at the last step of the hiring process if we still have a doubt. we should use this evaluation only and get rid of the extras. Then we should talk about life and work in general for an hour rather than a stupid algorithm question just to make sure the candidate isn't a d*ck.
Being quizzed on specific language syntax during in person interviews when they knew I didn't have much experience in that language was annoying.
Also, any mention of a cover letter was frustrating. I think hiring managers have enough info to decide if a phone interview makes sense with just a resume/Github, especially for a technical role.
Also, having to spend 20+ minutes creating an account with all my personal info just to submit an application stopped me from applying to multiple positions. That time adds up during a job search and makes it extra stressful, not to mention you end up feeling like you just dropped your resume into a black hole where it will never be seen.
Also, any mention of a cover letter was frustrating. I think hiring managers have enough info to decide if a phone interview makes sense with just a resume/Github, especially for a technical role.
Also, having to spend 20+ minutes creating an account with all my personal info just to submit an application stopped me from applying to multiple positions. That time adds up during a job search and makes it extra stressful, not to mention you end up feeling like you just dropped your resume into a black hole where it will never be seen.
For me it used to be the fact that everyone required at least 1 year's worth of work experience. They would hardly grant you an interview without it with all open source projects in the world. Recruiters don't even know what open source is and employers might have assigned the hiring to a legacy guy who's never done open source either.
You can't get work experience without working so it was 6 months of constant searching before I got a job.
You can't get work experience without working so it was 6 months of constant searching before I got a job.
If the company is not a startup or otherwise very young, then a lack of training or mentoring.
I'm expected to be a cheaper version of a mid/senior dev, perhaps just a bit slower.
I'm expected to be a cheaper version of a mid/senior dev, perhaps just a bit slower.
Companies that give opportunities to some one just because he got a degree from premier institution
Feel free to embrace debate.