Hiring Practices in Software Engineering

From SI410
Revision as of 21:47, 28 January 2022 by Brjchang (Talk | contribs)

Jump to: navigation, search
Back • ↑Topics • ↑Categories

Hiring practices in software engineering refers to the procedures that encompass the hiring process for jobs in the tech sector. These practices often involve challenges where the applicant must demonstrate their knowledge and experience. Due to the nature of these challenges, many industry workers feel that they are not indicative of success in the tech industry[1]. Similarly, the hiring process often requires access to a computer and cell phone, which some have felt is also a limiting factor[1]. There is evidence that shows the hiring practices in software engineering can select for certain demographics in terms of sex, race, and class. This can lead to many ramifications as to the design of new technologies, algorithmic bias, and many other ethical concerns[1].

The following steps of the hiring process may vary slightly in order by company, but typically they follow this standard fashion.

First Steps of the Hiring Process

The hiring process for software engineers typically begins with an online application[2]. An applicant will submit their resume and other supporting documents, and if the company likes their resume, they will proceed to contact the applicant. The next step is typically a phone interview, where the questions will largely pertain to past projects, professional experience, and potentially some behavioral questions[1]. If the company wishes to proceed with the applicant, the next step is typically the coding challenge[1].

Coding Challenge

The coding challenge typically involves problems pertaining to algorithms and data structures. These are problems that are often quite challenging thought experiments[1]. There are often many solutions to these problems, but some solutions may be algorithmically quicker, or utilize less memory than others. It is not uncommon for certain solutions to be correct, but simply not an efficient enough solution to receive the job[1]. The solution is often coded in a language of the applicant’s choosing. This coding challenge is usually completed online and timed, and is generally not proctored.

This step is one of the most crucial to getting the job, and is often the largest filter in the hiring process[1]. Many aspiring developers will spend significant time practicing these types of challenges on websites such as LeetCode or HackerRank[1]. Developers have complained that these practices can be discriminatory, as those without access to computers will not be able to access LeetCode or HackerRank without going to a public computer. Thus, some developers believe that applicants with less fortunate backgrounds will have a significantly harder time breaking into the industry, as they will have less practice with these challenges[1].

For many companies, the coding challenges are structured around avoiding false positives. A false positive is defined as someone who the coding challenge and hiring process deems as a good fit for the company, but that person does not succeed at the company. In the case of Google, they structured their whole hiring process around avoiding these false positives[3]. These false positives are regarded as very costly, because the person will cost the company money and be difficult to fire. The coding challenges are thus structured around avoiding false positives; however, this implies that most companies are ok with rejecting people who would be good for the company[3]. The ramifications of accidentally hiring a bad applicant are strong enough that companies are willing to filter people who would be perfect candidates[3]. This has led to outcry from some developers, who believe that these coding challenges filter too many people[3].

Behavioral

One of the last steps in the hiring process involves behavioral interviewing. This typically happens in person, but has also shifted to platforms such as Zoom, Google Meet, and other video chat platforms due to the Covid-19 pandemic[2]. Interviewers will ask questions to see how an applicant may handle stress, deadlines, failures, and other situations[2]. The behavioral interview exists to determine if you can explain your ideas to coworkers, and if you are someone who other people would want to work with.

Whiteboarding

Whiteboarding is another one of the last steps in the hiring process[2]. Whiteboarding is the practice of solving a challenge on a whiteboard. Usually this occurs in person, at the site of the company; however, it is not uncommon for this to be done over video sharing platforms as discussed in the previous section. Rather than a whiteboard, the applicant may type out their response in a text document, integrated development environment, or some other way to share a pseudocode solution. Typically, an applicant is given the problem by someone in the role or division that they are applying for. The applicant will work through the problem on a whiteboard in front of the person. The applicant can ask questions or bounce ideas off this proctor. The challenge will typically be a problem similar to the ones an applicant may face in the coding challenge. The difficulty may be easier to compensate for the added stress of being in person with an interviewer, but this is handled differently at all companies.

Many developers have critiqued the whiteboarding step in the hiring process. Critics of whiteboarding believe it induces excessive cognitive load and stress on applicants[1]. These critics believe this stress can lead to an exacerbation of the biases already present in software engineering hiring. A study has shown that solving problems in the whiteboard setting causes an increased cognitive load and stress level when compared to solving the same problem on paper[1].


Ethical Issues

Demographics in Tech

The demographics in tech demonstrate an overrepresentation of certain races and an underrepresentation of others. According to the United States’ Equal Employment Opportunity Commission, Whites are overrepresented in the tech sector at 68% of employees, and Asians are overrepresented at 14%[4]. This is in comparison to their representation in the United States population demographics, 60% and 5.9% respectively[5]. African Americans are underrepresented at 7.4% despite their population representation of 13.4%. Hispanics are similarly underrepresented at 8% of tech employees, despite their 18.5% population representation[4][5]. Similarly, women are underrepresented in software engineering at 36%[4]. Questions and criticisms have been raised about hiring practices in tech that leads to this overrepresentation of certain races and underrepresentation of others. Some argue that the lengthy interview process is not feasible to underprivileged minorities, and this is what causes the under and overrepresentation.

Software Engineer Gender Wage Gap

Many tech industry workers have expressed outcry at the existence of a gender wage gap in the tech industry. Nationwide surveys have supported this outcry, demonstrating that there is a wage gap of roughly 5.4%, implying that men make 5.4% more than women in software engineering roles[6]. Developers have questioned whether this may be due to the current hiring practices discriminating against women, or making it more difficult for women to succeed in the hiring process[6]. Although a pay gap exists, it is noted that the gender pay gap on average is roughly 11%, and thus software engineering has a less harsh pay gap[6]. The gender wage gap in software engineering is decreasing yearly, and this is true of almost all gender wage gaps in the United States. From 2016, the gender wage gap in computer programming shrunk the most of all gender wage gaps across jobs in the United StatesCite error: Closing </ref> missing for <ref> tag
  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Mahnaz Behroozi, "Hiring is Broken: What do Developers Say About Technical Interviews?" 2019 https://chrisparnin.me/pdf/interviews-HN.pdf
  2. 2.0 2.1 2.2 2.3 Indeed Editorial Team, "A Guide to the Software Engineer Interview Process," June 24, 2021 https://www.indeed.com/career-advice/interviewing/software-engineer-interview
  3. 3.0 3.1 3.2 3.3 Dean Jackson, "The Google Technical Interview: How to Get Your Dream Job," Winter 2013, XRDS https://dijkstra.eecs.umich.edu/kleach/eecs481/w21/readings/googleinterview.pdf
  4. 4.0 4.1 4.2 U.S. Equal Employment Opportunity Commission, "Diversity in High Tech," 2021 https://www.eeoc.gov/special-report/diversity-high-tech
  5. 5.0 5.1 United State Census Bureau, "QuickFacts," July 1, 2021 https://www.census.gov/quickfacts/fact/table/US/PST045221
  6. 6.0 6.1 6.2 Megan Rose Dickey, "The Gender Wage Gap is Shrinking Among Computer Programmers, But It's Still Quite Large," March 26, 2019 https://techcrunch.com/2019/03/26/the-gender-wage-gap-is-shrinking-among-computer-programmers-but-its-still-quite-large/