Tech Screenings Explored
There are multiple ways to go about tech screenings when interviewing for tech positions, but so far none have come to the forefront as THE best version of a screening.
What it is: People show personal projects on Github or send the code directly to the interviewers. They may then ask to be walked through parts of it during an interview.
Why it's done: Some places want to see code that a person has made without giving any sort of specific challenge. This is seen as a good indication of both a person's interests and how they work through problems, as well as their level of dedication to coding.
What's good about it: If a person already has a project to show, this puts significantly less stress on them and can save them time. It's also a better indicator of the sort of code someone might do in a real life situation.
What's bad about it: Not everyone can have side projects. Some people are already working very long hours at their current job. Some people have duties such as caregiver when they get home. Some people are stressed, or depressed, or exhausted. Some people physically can't do more. A lot of people are looking for new jobs because they need better work-life balance or their current job is making them miserable, which basically means their personal projects are either going to be not-great or old.
What it is: This generally features a format along the lines of 'here is a challenge (or a set of potential challenges to choose from) that you can do in [a week]'.
Why it's done: In general, people believe that this both creates a somewhat natural setting (allowing people to think through the project before starting it and work on it piece by piece) while also showing the skills relevant for the job.
What's good about it: This avoids the downsides of the above personal project while also allowing people to juggle their time to be able to do it.
What's bad about it: It still favors people with more free-time and who are healthier/happier in their current situation. There's also often not much control over when the challenge starts/ends (sometimes, out of the blue after an initial screening, the interviewer will just send an email saying that here's a project and it's due in a week), which makes it difficult for people with busy schedules or who may have other commitments. If a time limit for the actual work isn't given (eg, 'you should take no more than 4 hours') then people with anxiety or other issues will be stressed about how much time to spend on it. Even with a time limit, it still favors those with more time as a suitably challenging project for the candidate/position would mean they would need more time to refactor at the very least.
What it is: The format generally consists of something along the lines of an email at a certain time that must be replied to with a github repo within a certain time limit (say, 2 hours) or a link to a website dedicated to timing coding challenges that starts once you enter the challenge.
Why it's done: It returns enough code to most likely evaluate the candidates skills, tests how they work under pressure, and is seen as not too time consuming.
What's good about it: Unlike the above types, everyone spends the same amount of time on it, which makes it better for people with less time on their hands and better for the evaluation process. It can take place at any time of day/day of the week, so it can be done outside of work hours for the candidate. It also shows how someone does under pressure.
What's bad about it: It penalizes people who can't take that amount of time uninterrupted (parents, people with certain disabilities, etc.). It's more stressful. It's not a "real-world" environment. It requires regular, decent access to the internet. The sites that are used for these type of challenges are also generally quirky and don't have great UX, and can require a decent amount of prep time just learning their ins and outs before even starting the challenge, though, which again favors those who have more time.
Live Internet White Boarding
What it is: The candidate and an interviewer both online, looking at the same site, as the candidate works through a challenge.
Why it's done: It's basically just an alternative to the in-person whiteboarding exercise. Normally either as an early screening process that the company doesn't want to invest a lot of time and money into or for candidates that would have to travel for an interview.
What's good about it: As mentioned above, candidates do not have to travel (or even leave their own homes). It allows for a real-time conversation between candidate and interviewer, which also may allow for pseudocoding instead of having to do working code.
What's bad about it: Like a whiteboard exercise in real life, many people find these stressful. The challenges are often not real-world compatible and even if they were, the nature of them means sometimes you're not even supposed to Google for answers, let alone copy and paste from Stack Overflow. The interviewer is often a person the candidate has never met or talked to before. It also requires uninterrupted time and good, reliable internet. And because it's live for the interviewer, it also normally means it takes place during normal work hours, favoring people who work from home or can take time off. It basically has almost all of the downsides of in-person whiteboarding, without the benefit of generally having hours of interviewing which will allow a candidate who is too nervous to whiteboard to still make their case.