Hacker News new | ask | show | jobs
by hardwaregeek 2177 days ago
Also get feedback from candidates, especially rejected ones. The people who get offers will assume that the process works, since it validates their self-worth. Even if the process is very stupid. I've had processes that were so so bad from top companies. Like "here's a repo, clone it, write a program that will be judged by automated tests that you can't see". I had to basically guess what the tests were going to do, which turns the coding challenge into a game of luck.

I'd love to do away with coding screens in general. I glanced at the doc for Stripe and it looks great. I'd have loved to read this doc, but the last time I applied to Stripe I got a HackerRank followed by an auto-rejection. I get why coding screens exist, but it's so annoying to be batted away because I failed blind automated tests.

3 comments

I think it can only be fair to ask for feedback from a rejected candidate if you (the potential employer) are willing to give feedback yourself, which is rarely the case, especially from larger companies.
This might be what you'd think intuitively. I've conducted ~500 technical interviews, and in my experience candidates who are obvious DNP (do not pursue) often times really do not want your feedback or do not care about it, either because they think they're smarter than the whole process, or they're too busy turning inward to deal with an emotional breakdown. But those very candidates are the ones who are likely to leave the feedback!

tl;dr candidates are happy to give feedback whether or not you provide any yourself.

EDIT: I agree with you though. An interviewer should be ready and willing to provide feedback if the candidate signals that it would be welcome.

> An interviewer should be ready and willing to provide feedback if the candidate signals that it would be welcome.

And at which point would this happen, I wonder? All the interviews I went through during the last 4 months didn't have one person sound inviting along the lines of "we won't take you but if you think we can improve our process do let us know". Not one even hinted at that. It's all very... impersonal, cold and often feels like copy-pasted emails are being to sent to the candidate.

You are kind of assuming -- way too generously -- that the process and the interviewers are actually open to feedback. Most people, including in tech companies, are happy to tick boxes and check in / check out at given times of the day, and do nothing else more creative or requiring special attention (like recruiting).

---

EDIT: I tried giving feedback -- unsolicited -- after the rejection in my first 5-6 interviews. Didn't go well. You could tell people got offended by very simple points like "would have helped if you told me you will measure me with one extremely specific test while I am looking for a generalist role" or "what was the value of imposing a hard deadline on a homework while the candidate is going through several interview processes in parallel? does that tell you anything about their real productivity?", and a few others like "I am not sure that teling me 'I am not like the others in the team' is a valid point in remote working conditions where comms are mostly async and people don't chat that much". Etc.

In the end you get tired hitting a brick wall. People are generally not receptive to feedback and even react in a hostile fashion when it is given to them. Plus when you want to go through 35-50 interviews, at some point you really start counting the hours that each company is taking away from you before rejection and you figure it's not worth it to try and present feedback where it's clearly not wanted.

Sorry to hear about your experiences. It sounds frustrating.

I think there's some miscommunication happening here. The line you quoted is specifically regarding the person conducting the interview looking for signals to provide feedback to the person being interviewed, not the other way around.

I would not recommend providing feedback to your interviewer unless they explicitly ask for it. It's likely to just become a clash of egos, and if the company is larger then it's likely the interviewer doesn't even have much power over the process anyway. If you're being interviewed and hate their process and/or the way they communicate, the best thing you can do is politely inform them it is not a good fit, remove them from your list, and move on.

Oops, I guess I misread indeed. And you are quite right on your last paragraph -- found it the hard way.

I also agree that the interviewer shouldn't just give feedback without asking because I know many interviewees will react badly.

It's just that in my case no feedback was wanted in either direction. And job-hunting is a game of numbers and evolution (okay, most of the time, definitely not always): you seek to adapt to the current conditions and see what you can improve upon for the next interview. Some feedback would have made your time and effort worth it. Giving you zero feedback wastes your time entirely though.

I don't think you should give them feedback directly, instead post it to glass door where all the people who do care will look. And it helps me out :D
It would feel a little awkward for me to ask for someone to do work for me after I've determined that they're not a good fit for the company. And if it's post-interview pre-result then the problem is that they'll feel pressured to be positive.

Perhaps if it were a third party.

I am hardly a fan of excessive language policing, but this phrase "a good fit" bugs me. Is it common currency? To keep asking among yourselves "is this person a good fit?" seems unlikely to encourage the sort of objective assessment of a person's usefulness and talent that you'd want for your company's sake and also to stay within the law.
Agreed that it's tricky, but there needs to be some feedback loop. Otherwise you end up with seriously broken processes that never get fixed. Companies tend to care about false positives more than false negatives, but there's a decent possibility that some companies have an extremely high false negative rate.
I think glass door provides the best feedback loop because it gives me an idea of what I'm getting into when I apply.
This is true, but perhaps you could do that passively by placing candidates in a re-sample queue and seeing where they work and for how long.
I think it's instructive to look at this from the other side to see why these processes exist. At my last job, I wanted to hire a frontend engineer with some experience beyond tweaking HTML and CSS (we used gRPC/Web and Typescript, so some actual programming experience was going to make them pretty productive, and that's what I was looking for).

Anyway, I wrote up a req and posted it to the usual career sites, and within a day, I had 500 resumes to review. About 490 of these had no real-world programming experience. They were all candidates from "boot camps", that, as far as I can tell, copied some example code into their GitHub and called it a day. (They listed each example project as "work experience", and many of the candidates had bit-for-bit identical repositories in their GitHub.) I would have been fooled if I had only seen one of these, but when you see hundreds of them all on the same day, you realize that investing in each candidate isn't possible. Even a 30 minute phone call to each candidate would have cost me an entire month of 8 hour workdays. Even a cursory review ("maybe this person actually did something other than the boot camp, let's look through GitHub") was excessively time-consuming. Even an email along the lines of, "sorry, we're looking for 5 years of experience for this senior position", is expensive.

So at that point, you have to somehow shift the cost onto candidates. It costs nothing to spam your resume to hundreds of companies, and I have no doubts that the bootcamps automate this process to some extent. That is why online coding tests exist. You have so many candidates in the pipeline that missing one good person is a cost that's acceptable for having to spend 30 minutes with someone that probably can't actually program. Is it impersonal? Yes. Does it suck for someone to be in limbo for forever because you are too lazy to write them an email saying "we're not moving forward with the process." Yes. But the submitting-resumes process scaled and was automated much more efficiently than the reviewing process. It's kind of like spam filtering now. (I get a ton of emails in my spam folder from people from HN that are email-blasting everyone on HN their projects. I get a ton of emails in my spam folder from people in open-source Slack channels that I read along the same lines. Is it unfortunate that I can't read and respond to every one of these emails? Yes. Does it suck that their "hustle" got detected by some machine-learning algorithm that has permanently blacklisted their company. Yes. But that is life -- attention is limited, a for loop that sends email isn't. So something has to give.)

I realize that it's confusing to say "we can't hire any engineers!" and at the same time throw 500 resumes into the trash can. But a resume is not equal to a hirable engineer. Anyone can make a resume. And, attracted to the high salaries of the software engineering field, many people do!

Anyway, I don't know what other fields are like, but I feel like the programming world is unique. You don't need extensive background -- university, internships, prior work experience. You can buy yourself a Python book and teach yourself everything you need to work at Google all by yourself. As a result, there are a lot of people that think they've taught themselves everything they need to work at Google all by themselves, but in fact can't actually do the job. As a hiring manager, your job is to filter the wheat from the chaff, and there is one grain of wheat in every ton of chaff. It's hard, and you're going to miss something. But, that is the world we built for ourselves. In other fields, there are other bodies in place that handle the filtering ("what's your Professional Engineer license number?"), but not in ours. As a result, the hiring process isn't as good.

I think we could do better, and I do appreciate people that I've emailed and wrote back "the process is over". But even that is hard to scale.

Internships seem super valuable to me. When I was at Google I had an intern every summer, and I basically dedicated my summer to teaching them everything they needed to know to be successful at Google or another big software company. Obviously, Google was 100% happy about this; I would go to weekly team meetings, say "all I did last week was spend days with $INTERN figuring out how to adjust build options for this new target" and the response was not "wow, you're lazy, get back to work" but "great!". Not every company can support that, though, which is why they're looking for people with experience. They want to pay money for getting work done, not pay money to have a senior engineer do no work for 3 months with the hope of someday having someone who can get things done by themselves. Again, it sucks, but that's how it is. Job training is EXPENSIVE. You can't always expect to get it for free. (That's why colleges exist, not that I think they do a great job.)

TL;DR: Practicing those coding challenges and how to write A* on the whiteboard is going to send a strong signal to companies that you're worth their time. It shouldn't be that way, but it is. "The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." You have to ask yourself, do you want a job, or do you want to change the world. Changing the world is going to be a lot harder. Kind of sucks, but that's life.

> You have so many candidates in the pipeline that missing one good person is a cost that's acceptable for having to spend 30 minutes with someone that probably can't actually program.

VERY debatable. I've chatted with dozens of HR and CTO people during the last 4 months of interviewing and looking for a job. They all complain "there are no good candidates". Without exception. (And I know you addressed that one paragraph below this quote.)

You're not wrong that selecting good candidates is extremely hard. I know it is. But the companies have to find a way to do better. I know many examples of world-class programmers being passed on by employers who, if they actually paid attention, would kill for them (and often times they contacted them anywhere from 6 to 18 months later, only to be predictably laughed out by the now-happily-employed person).

> That is why online coding tests exist.

Actually, it's why other high-salary professions have professional licensing and advanced degree requirements.

I 100% agree. I used to be in the boat of "I shouldn't have to study to pass a job interview" when I was younger.

Now that I'm older and I've interviewed a lot of people too, I realize sometimes life is un-fun and kinda sucks but you gotta do what you gotta do. There's a strong co-relation between people who spend two hours a night for three months studying algorithm questions and people who are willing to spend 8 hours a day debugging un-fun code. Which, more often than not, is what I need my team mates to do.

I work in AdTech. It's not particularly sexy. We don't have particularly sexy projects but we do have a large (millions of users per day) scale. A lot of our projects just require a engineer who has base level of experience plus a positive attitude and a slightly above average level of responsibility because we have to avoid outages. I need people to do work that is oftentimes not particularly fun but particularly important and revenue driving. My best filter, apart from actually having worked with the person for years beforehand, is asking a low-ball JavaScript "can you debug this asynchronous JavaScript" question.

So while the current system is frustrating, until we can figure out a best solution, unfortunately you just gotta play the game how the rules are laid out now.

This is all true, I just wish people didn't put that much weight on some pretty random and oddly specific tech interview questions.

I've practically [re-]invented Redis back in 2008 while working for a company, and wrote something very akin to the Google crawler bot in 2009 yet at some point 2 months ago I "fail" an interview because I didn't do the best possible optimization of a basic stock storage system that has packages at different weights (and valued in different currencies) and since I had to fit a whole mini web project in 2h I of course didn't pursue perfect optimization. But the thing was working pretty well and ticked all boxes that were required -- and perfect optimization wasn't mentioned otherwise I'd probably skip 1-2 features to achieve it and fit in the [arbitrary] schedule of the homework assignment.

And then boom, you are no good because of a hidden requirement and unclear communication which aren't my fault.

I do get your point. Really. But people put too much value on some pretty random questions / assignments as well.

pdimitar I totally feel you. For full context: I have never passed a leetcode style phone screen in my entire life. Even after studying for 6 weeks, every night for 2 hours and buying a couple of courses on how to pass coding interviews.

I've gotten my last few jobs and oppertunities by following co-workers from job to job. AKA doing good work and building good relationships with the people I worked with. I've been able to leverage these relationships to skip the phone screen at some of the big tech companies but still freeze up on the the white board interviews unfortunately in real life.

At the end of the day though I know what I have to do: Either study for 3 more months, stay where I'm at with my current pay, or switch careers entirely. Right now I'm leaning towards switching careers entirely.

At the end of the day though, if you've never worked with a person before, and your company doesn't do a good job firing people who aren't performing, I'm not sure of a better way to screen people in 45 minutes :(. And this is coming from the guy who's screened out himself.

There's _plenty_ of engineers out there. We're not special.

> At the end of the day though I know what I have to do: Either study for 3 more months, stay where I'm at with my current pay, or switch careers entirely. Right now I'm leaning towards switching careers entirely.

One person who wrote a Python book was spot on in their conclusion: "At one point you should stop working as a programmer. You'll get no respect and your pay will be mercilessly negotiated down. Better to start another business and utilize programming as a secret weapon."

(Grossly inaccurate rephrasing but that was the gist of the paragraph.)

Still though, maybe you are too shy for the brutal game of numbers and chance that job hunting is even for seasoned programmers. That's fine. But you should know -- there are a ton of really mature and interesting people out there who know how to recruit. But it's a fact of life that you rarely find them; more often than not, they find you. And that's not happening to everyone who needs such an approach (sadly).

If you feel you want to switch careers and can't bear the thought of working programming anymore then do it. But if you just kind of feel giving up because of bad interviews -- don't give up just yet.

And I absolutely agree: we like to think we're special but there are a lot of very talented people out there. Very few are actually standing above the crowd. I am fine being one of many though; we each bring our own flavour to the company and some of these flavours do bring serious competitive advantages. :)

I agree and sympathize with what you're saying. Coding screens are a necessary evil. But perhaps they can be omitted in certain situations. I know I completed the Google foobar challenge far enough to alert a recruiter, only for the recruiter to send me a snapshot test. Like c'mon, I just solved a whole slew of harder problems than this.

I wonder if companies like TripleByte are actually successful in solving this issue. I've avoided them because I'm skeptical of recruiting companies, but it might be a good idea to have people take one coding screen and have it apply to multiple companies.

I am sorry but this tells me exactly one thing: that you don't know how to write a job description.

If you have written your job description tailored to the ideal candidate you would have had a smaller candidate pool and a better match to the actual job.

Writing a nice description will help but only slightly. It was written here the other day: GitLab used to receive 15,000 resumes per month. I think their job descriptions are pretty good and precise. People use scripts to apply to hundreds of jobs blindly.

"How to Apply to All Jobs on AngelList (Script)"

https://alejandrorioja.com/how-to-apply-to-a-lot-of-jobs-on-...

Unless you somehow require proof that the applicant meets the requirements, I don’t see how that prevents the spray-and-pray applications.
This is not from an IT position, but my wife uses "mention word XYZ in the email subject" in the requirements. This filters out a few people who just spam their CV regardless of job description. It also filters out people who are applying to a job that really requires attention to details in written communication.