Let’s Talk About the Software Engineering Hiring Processes

A pragmatic look at why organizations hire the way they do.Photo by Maranda Vandergriff on UnsplashThere is a lot of discourse about including leetcode style questions, design style questions, and take-home assignments in software engineering hiring pr…


This content originally appeared on Level Up Coding - Medium and was authored by Michael Faber

A pragmatic look at why organizations hire the way they do.

Photo by Maranda Vandergriff on Unsplash

There is a lot of discourse about including leetcode style questions, design style questions, and take-home assignments in software engineering hiring processes. I’m going to dissect the pros and cons of these three things and unpack why organizations might choose to do them.

Hiring Process Goals

First, a little bit about the Binary Classification of interview outcomes. An interview ultimately boils down to one of four possible outcomes.

  1. True Positive: You hire the candidate, and they succeed in their new role.
  2. True Negative: You don’t hire the candidate, and they wouldn’t have succeeded in their new role.
  3. False Positive: You hire the candidate, and they do not succeed in their new role.
  4. False Negative: You don’t hire the candidate, and they would have succeeded in their new role.

I’ll be using these terms throughout the article.

Naturally, the goal is to create a process that maximizes the number of true positives and true negatives, and minimizes the number of false positives and false negatives. This is how employers think about their hiring processes. They also have to determine whether they want to prioritize eliminating false positives or prioritize eliminating false negatives.

For a large organization that may gets hundreds of applicants for every software engineering role they post on job boards, they will likely choose to optimize against false positives. False negatives are unfortunate, but their applicant pool is so large they won’t have to wait long for a true positive to come along. They likely see this as the lesser of two evils.

For a small organization that may only get a handful of applicants for every software engineering role they post on job boards, they will likely choose to optimize against false negatives. False positives are unfortunate, but hiring a candidate that underperforms or needs more guidance than originally anticipated is okay when the alternative is that the role remains unfilled for months. They likely see this as the lesser of two evils as well.

LeetCode Style Questions

The Good

LeetCode style questions increase the speed of the feedback loop. The candidate either finds the optimized solution or they don’t. If they don’t, the organization can move on early. This optimizes against false positives.

Performance in LeetCode style questions does correlate with technical competency more than a lot of software engineers are willing to accept. If you’re capable of understanding and solving a sophisticated question like “inverting a binary tree,” it’s a quick and efficient indicator that you’re capable of digesting a problem like “how to manage state in a React application.”

The Bad

Smaller organizations have begun emulating the hiring processes of FAANG* companies, without really thinking about why FAANG companies choose to and can hire that way.

This creates angst because candidates feel like this is an unnecessary amount of vetting for a role that doesn’t require the same skill level and doesn’t have the same compensation.

* When I write FAANG, I mean the companies in the acronym, along with any other elite technology organization or unicorn startup.

The Ugly

LeetCode style questions asked in interviews can be so difficult and so far from the day to day of an actual software engineer, the truth is candidates need to study them.

Asking very difficult LeetCode style question favors candidates who have a lot of time to prepare for them outside of their job and familial commitments. Diversity and inclusion can take a hit here. At best, they’re missing out on the feedback and insight that can come from people who don’t fall in that camp. At worst, it impacts equal opportunity.

Design Style Questions

The Good

Design style questions decrease the speed of the feedback loop. The questions are open ended, so the candidate has an opportunity to talk about what they know. This optimizes against false negatives.

They are a decent measure of a candidate’s understanding of software and software development, and candidates don’t really need to study for them.

The Bad

Without the binary of solved or unsolved, they defend against false positives poorly because a candidate can invent a response good enough to satisfy an interviewer. A candidate may not understand how to implement the design they’re describing, the consequences of it, etc.

The Ugly

Asking candidates sophisticated design style questions when they are applying to entry level positions is unfair, especially if their experience is limited to a computer science undergraduate degree and possibly an internship. I don’t think this is a huge problem though.

Take Home Assignments

The Good

With a take home assignment, a candidate is given requirements, a period of time, and access to all of their developer tools to build something to submit or demo to the organization they’re applying for. This is probably the closest thing to real software engineering an organization can include in their hiring process.

The Bad

This defends against false positives poorly. There’s no way to know for sure that a candidate didn’t sit down with their friend(s) to build the take home assignment (not necessarily a bad thing, depending on how you look at it — this still emulates real software engineering).

The Ugly

Doing 6 hours of uncompensated work for the possibility of employment is perceived as unfair by candidates.

Organizations might even use take home assignments as an opportunity to get jobseekers to do work for them for free — which is incredibly unethical.

Conclusion

Organizations use certain hiring practices because they’re trying to be pragmatic about hiring. They analyze the possible outcomes of an interview, and what outcome they want to optimize for or against.

LeetCode style questions, design style questions, and take home assignments all have their pros and cons. What works for one organization might not work for another organization.

Thank you for reading! If you disagree or think I missed something, please leave a comment! I’d love to hear about it!


Let’s Talk About the Software Engineering Hiring Processes was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.


This content originally appeared on Level Up Coding - Medium and was authored by Michael Faber


Print Share Comment Cite Upload Translate Updates
APA

Michael Faber | Sciencx (2022-02-13T22:32:37+00:00) Let’s Talk About the Software Engineering Hiring Processes. Retrieved from https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/

MLA
" » Let’s Talk About the Software Engineering Hiring Processes." Michael Faber | Sciencx - Sunday February 13, 2022, https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/
HARVARD
Michael Faber | Sciencx Sunday February 13, 2022 » Let’s Talk About the Software Engineering Hiring Processes., viewed ,<https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/>
VANCOUVER
Michael Faber | Sciencx - » Let’s Talk About the Software Engineering Hiring Processes. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/
CHICAGO
" » Let’s Talk About the Software Engineering Hiring Processes." Michael Faber | Sciencx - Accessed . https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/
IEEE
" » Let’s Talk About the Software Engineering Hiring Processes." Michael Faber | Sciencx [Online]. Available: https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/. [Accessed: ]
rf:citation
» Let’s Talk About the Software Engineering Hiring Processes | Michael Faber | Sciencx | https://www.scien.cx/2022/02/13/lets-talk-about-the-software-engineering-hiring-processes/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.