How I went from stay-at-home-mum to landing my first web developer job
freecodecamp.org
freecodecamp.org
> I got through to the second stage on one job I applied for which was a take home coding exercise. The other interview I was offered the job on the spot.
This is how you interview. She obviously is very self-driven and a good communicator. If she were hurled some leetcode, there's a good chance she would have failed (as do so many devs with years more experience than her) and yet even reading this post made me think she's a great hire.
Managers: fight to change your hiring process. Throw out coding tests, leetcode and white board shenanigans. Invest in your own skills so you can quickly and accurately identify talented people. Take chances on unusual backgrounds. Not only will you save a bunch of everyone's time, you'll have a more organic culture and pick up diamonds that places like Google will pass over every time.
Live coding a problem you were just given, in front of strangers that are also evaluating you for a job is not a good way to evaluate candidates. Interviewing for a job is already a stressful situation, adding live coding to the mix takes it far into absurdly difficult territory. No real life job conditions match that type of situation, and if they do then there are other much bigger problems at play in that company.
We've hired only great people with this approach, and they've told me after the fact that they really appreciated that it tested them in a natural manner, rather than a type of competition.
There are developers who excel at whiteboarding. There are those who excel at presenting their own projects from their github experience. There are yet others that excel in small code samples on company-driven problems, and some that excel in larger code samples.
The truth is that no one interviewing style works best for finding all developers that are a match for the company. Either we need to accommodate multiple interviewing practices, or we need to accept that we are going to gather in the companies that match our interviewing styles the best.
I wonder sometimes if there isn't room for a company that hires everyone who can fizzbuzz and is a good fit for the company as determined by behavioral interviews, and then accept a large attrition within the first 3 months.
I think the honest truth is that no matter what we do, interviewing is a hard problem.
Why?
The biggest risk with those take-home projects is that you'll lose out on the "2-3 hour project" because someone else spent 5-6 hours and had time not to just finish it, but to make it look very polished—unreasonably polished for 2-3 hours. So you either do it as directed and worry, or spend way more time on it (enough that I'd probably just pass unless it was one hell of a job)
Keep it small enough and you don't run into the thing where you're excluding the semi-happily employed, competent devs, because they don't really have to put up with your shit to find new employment, which is the case with those defined time (but not really) larger projects.
"I hate anything that asks me to design on the spot. That's asking to demonstrate a skill rarely required on the job in a high-stress environment, where it is difficult for a candidate to accurately prove their abilities. I think it's fundamentally an unfair thing to request of a candidate."
[EDIT] and on the topic of your quote, in actual work screwing up while working through problems in a meeting or while collaborating is (or had better be) normal, and everyone's working together to find the right solutions. If you miss something you missed it, that's fine, even if it was something dumb, everyone does that all the time, NBD, unless you're doing it just constantly no-one will think a thing of it. Expectations, explicit and implicit, in an interview make it way less friendly and safe feeling than even a very important or relatively high-stress task in actual work life. It's not even in the same category of activity as solving problems at work.
Which is arguably worse than whiteboarding.
If this was for a more senior role with many candidates, I would raise the bar a bit to filter those that aren't serious or are unable to critically reason with technical/non-technical decisions. It's funny to see that most startups adopting whiteboarding practices can't justify their questions other than mimicking FAANG or stroking their egos over candidates by asking ridiculous algorithms questions they are unlikely to use, unless they can justified it otherwise.
Hiring is difficult because of managers that are still obsessed with finding the so-called "talent" when they're actually looking for that legendary senior 10x developer who knows them and the interview konami code, which wastes time and doesn't exist. The interview process in this article gets straight to the point which results in a justified hire of a very qualified candidate.
Well Done!
It also gives people a bad taste in their mouth, don't ever forget the candidate is interviewing the company as well.
The best response is to immediately walk up and leave when asked to white board something, stating something to the effect of "sorry but if this is your company culture, I'm not a good fit". I know several people who have done this and were hired anyway.
Look at a candidates successes and body of work, if their competency isn't obvious from what they have demonstrably accomplished, they probably aren't the right candidate. No amount of white boarding (or the nonsensical "thought exercise" questions) is going to change that.
When I first got into the industry, it was much more rare to have coding tests vs. just general interviews, and that meant teams often hired the best talkers or the folks who boasted the most about their accomplishments, and those two skills had very little correlation to how well someone could code.
Even worse, 'team fit' was often prioritized above others, so be it on purpose or implicitly, good candidates from diverse backgrounds were much easier to overlook. When you have the majority of engineers solely focusing on 'can this person solve a problem', it is harder to argue against strong candidates just because they look older/younger/darker/lighter/more feminine/masculine etc.
Take home tests are incredibly biased against candidates without free time, and as I've pointed out in other places, can easily be abused by spamming candidates with them which is just not possible with whiteboard coding.
Coding tests are the best way to hire, if they are done right. They aren't perfect, but so much better than take home tests and 'discussion' based interviews.
I think a lot of the whiteboarding/leetcode stuff is just hazing, a desire for "standard" processes (every candidate has a different background, so a well-done conversational interview will differ a ton per-candidate), as a bit of a time-filler ("that's right [C-suite person who's asking questions] we have very rigorous hiring, look, it takes six hours, and see all these steps! Only getting the best of the best, I assure you."), and because if it's scripted you can have mid-level devs do it—poorly, for the most part, since conducting a good whiteboard/leetcode interview is possible, so far as that goes, but it's not easy and requires serious people skills, which is a big part of where places go wrong I think, and also tends to make it look so non-cookie-cutter that if you squint it's not really that much more "standardized" than the conversational version.
Talking about those things is a learned skill just like writing on a whitebaord. Hence why good companeis that do whiteboarding interviews also have traditional rounds. You want to give candidates multiple avenues to shine.
A casual conversation where someone is purposefully trying to put you at ease is going to be more effective at seeing someone's true skill over a whiteboard every time.
There are also a bunch of very senior people that won't play interview games at all. Especially when they're an internal referral. If I refer someone to get hired, I make absolute sure that they are not put through a technical hazing ringer. I've seen senior people who were heavily recruited walk the instant they're put into "the process" under the very sound logic of: "You wanted me to work here, so why are you making this difficult?"
There are so many critiques possible, it's difficult to know what to focus on. Some people care about algorithm efficiency, and others don't. Some interviewers require test coverage and expect you to work under tdd. Or maybe you arrive and some guy frowns when you reveal you didn't prepare DB query plans for your 3 hour assignment.
I suppose what I mean is: it feels to me like just trading one kind of arbitrariness for another.
Coding in general is highly opinionated (who hasn't had a disagreement during code review).
I have had a particularly bad take-away experience and so I am shy of them now.
Kudos to Quincy Larson and the community of FCC. His Indiehackers podcast is an inspiring listen .
https://www.indiehackers.com/podcast/056-quincy-larson-of-fr...