HACKER Q&A
📣 letvar

Are LeetCode-style interviews are more fair and objective?


There has been a growing trend of companies using take-home assignments to assess candidates for screening. A few of them takes it to the next level by converting their onsite rounds into a 5 hrs long coding project, e.g. use this mock to build a mini web app.

Initially, I was quite happy to welcome this trend. No LeetCode-ing, use my favorite tech stack, sharpen some fundamentals, and learn a new Web API or two. It didn't end there, I've received 4 offers from companies that used a combination of take-home exercise and code-a-project during onsite.

Fast forward to current date, I'd discourage this approach of interviewing a candidate. Firstly, the amount of time involved per exercise is impractical, think 3+ hrs per take-home exercise. And more importantly, any two teams could have entirely different opinion about the same piece of code/architecture. In a limited time setting, candidate can focus on a subset of key aspects like functional spec, clean code, tests, performance, or pixel perfection. But it's difficult to gauge what is important to the team.

I wouldn't want to criticize something without giving a few alternatives.

Option 1. LeetCode-style interview is difficult to prepare, but it is more objective and fair when compared with code-a-project styled interview.

Option 2. For frontend engineering roles, there are well defined focus areas. Onsite interviews should assess each of these areas separately rather than clubbing them into a single mini-project. Example:

Round 1. HTML/CSS, tests solid foundational knowledge. Round 2. JavaScript, tests solid foundational knowledge. Round 3. Framework, pair program a widget. Round 4. Special Topics: accessibility, networking, performance, security, testing etc, Pick 1-2 topics and go deep. Round 5. System Design for experienced candidates/CS Fundamentals for lesser experienced candidates.

#frontend #interviews


  👤 karmakaze Accepted Answer ✓
The best interview process was at Pivotal where I had two pairing sessions with different developers in the same day/visit in two typical programming environments. One was front-end mobile and the other back-end TDD. They just wanted to know two things: (1) can this person program with any level of competence, (2) can I communicate/get along with this person.

My version would be talk to the candidate for 30+ minutes about their general experience and then in depth about something they worked on recently and can give great detail on what was being solved, how it was written, and challenges overcome in the process. I'll follow that up with pairing on a problem in a language/stack that's relevant to the position and candidate.

My fave way of getting hired is when your car breaks down on the highway and you buy a used car from Auto Trader and the guy sees your engineering ring and asks "Do you know how to make a print function for a GUI program?" I didn't, but figured it that weekend. Got the car and means to pay for it.


👤 atdrummond
Am I the only one who finds the “unpopular opinion”-type threads on Reddit and other sites don’t generally yield high level discourse?