Earlier quoted context omitted.
I would estimate a reasonable amount of prep time prior to interviewing is around 100 hours. This is about how long it will take to brush up on and practice data structures, algorithms, DP, design questions, etc. This is about 2 months of practicing an average of 2 hours a day, meaning you're still working a day job. I figure this could be reduced to 1 month of prep if you quit your job and have all day to yourself.
Lots of people get offers with little to no prep.
What I've learned from 100s of interviews with candidates at top tech companies
151–160 of 225 posts
Re: What I've learned from 100s of interviews with candidates at top tech companies
#152Candidates who know their worth should also have the confidence to grill interviewers. Including technical questions.
Yep. Here are a few things I always make sure to ask about asap: * Version control - what kind do you use? Do you use it? * Deploy process - how do you deploy? How often? Who can and can't deploy? * Security - who has access to mission critical systems? how do you secure your apps and network assets? What do you use for secrets management? * Problems - what is the burning technical problem you're having right now? If…
Re: What I've learned from 100s of interviews with candidates at top tech companies
#153I think the tide is turning against this type of interview. The industry is starting to notice how ineffective and stupid it is. The big tech companies don't care and will continue doing it because success hides all failures. When there's an endless flood of new college graduate applicants and near-monopoly positions bringing in billions of revenue, nobody cares if the hiring process is bad. They will care someday if…
Yes, the only people/entities who benefit from this type of interview process are the interviewers themselves - They make the interview process needlessly complicated and pointless and then they sell books giving people specific instructions on how to pass those interviews. They create the problem and then they sell the solution as a book or as an online self-help service. All the interview questions do is demonstrat…
All of those sound complicated as hell. Perhaps they are more effective, but the whiteboard interview is obviously less complex. And the side projects approach is just laughable considering the number of excellent engineers I know who don't have time or interest to code on their off hours.
A good whiteboard question can tell you a bit about the applicant's design sense, knowledge of key data structures and algorithms, and ability to integrate new ideas. It also has the nice benefit of quickly weeding out the huge number of applicants who can't write DFS on a tree.
Re: What I've learned from 100s of interviews with candidates at top tech companies
#154Earlier quoted context omitted.
> I would rather make more money in a stupid corporate job than working on more aggressive ways of making people to click on ads. Could you name a few "stupid corporate jobs" that pay better than Google or Facebook (200k - 300k for a senior engineer) ?
That depends, are you factoring cost of living into your calculations? 200-300k is sounds like a basic living wage in the bay area these days... What's the point earning that kind of cash if it's gonna be chewed up by housing and transportation?
Re: What I've learned from 100s of interviews with candidates at top tech companies
#155Earlier quoted context omitted.
Do you think it makes sense to ask interviewees to solve backtracking problems, given the fact that its mostly about already knowing the solution? Someone who's never come in contact with backtracking won't be able to solve n queens "in time", unless they pull a mathematics stunt, but those who do know backtracking won't struggle much. On a higher level - how much of an "already seen the algorithm" crapshot are tech…
> On a higher level - how much of an "already seen the algorithm" crapshot are tech interviews? I'd say it is mostly that. Just do thirty to fifty leetcode medium problems (some of them on pen and paper), and you're good to go.
Re: What I've learned from 100s of interviews with candidates at top tech companies
#156Earlier quoted context omitted.
She's profiting from it
And? By your logic, if a lawyer tells you how to handle some unfair legal situation, that lawyer is doing something wrong. Because they're profiting from something that's unfair. When I talk to a company about how to create a hiring process, I tell them that it's unfair to expect side projects from candidates.
Just putting things into perspective for OP. It's like Trump campaign has ties to Russia. Doesn't incriminate him automatically but I would be wary of vested interests. Just an additional data point
Re: What I've learned from 100s of interviews with candidates at top tech companies
#157Has any link ever been determined between interview performance and on-the-job performance? I've made the clichéd mistake mentioned in the article of wearing a suit to an interview where it wasn't appropriate, and felt the air being sucked out of the room. It strikes me as silly, but what do I know. Do these hiring practices result in a good cohort of employees?
Unfortunately, nobody has any data on the job performance of people who failed their interview.
In this video, a Google hiring committee were given their own anonymized hiring feedback and wouldn't even hire themselves.
Re: What I've learned from 100s of interviews with candidates at top tech companies
#158For starters, thank you for hanging out on this thread and answering questions. Where it comes to taking a realistic look at what it takes to be hired at google and other top tech companies, I think you give great practical advice. I've recommended your book and blog to a lot of people. Here's a summary of something I've posted elsewhere on HN, and I'd be interested in your angle. It goes, essentially, like this. Tec…
Happy to give you my thoughts, but I'm not sure what you're suggesting. I do agree that lots of companies create bad interview processes -- for coding interviews and other interviews. Those issues should be addressed.
To an extent, you have addressed this - in a blog post a while back, you reviewed some of the other options available to a compnay trying to hire, and none are especially compelling or necessarily preferable to a technical exam style interview.
Here's the thing, I'm not just focused on clear abuses - bad question, bullying attitudes. I think even when "well administered", the customary technical exam interview itself may in fact be harming the industry pretty seriously. I think it's sufficiently onerous, intimidating, and secretive that it may be driving away talent. And I wouldn't be at all surprised that it tends to drive away people don't feel they fit the mould of the standard Silicon Valley developer at an even higher rate.
I'm starting to think this is one of those tragedy of the commons situations where each individual firm is acting in its best interest by giving candidates rigorous technical interviews - but the aggregate result ends up deterring people form applying for new jobs or perhaps entering the field at all. Imagine if you had to re-take the bar exam every time you changed law firms - and the only people who would know if you passed was the firm evaluating your candidacy! In many ways, that's what we have in software.
I really do think this drives a lot of potentially good people from our field. You mentioned in a blog post that taking time off to do take-home projects may deter women and others with family obligations from applying - but surely that's true as well for taking off 100 hours to study for a tech exam, especially one you might not pass (and if you don't, will never know why). People might be more willing to do this if there was a better process that ensured a fair hearing, a less secretive, more transparent approach to technical exam interviews.
So, I'm asking, maybe we should step back for a moment and ask how we, as people who buy into and use technical exams, may be collectively contributing to a real malaise in our industry, one that creates a problem for everyone, but perhaps an unusually severe one for the very people we're saying we are trying to get into this field.
I certainly don't think that there's an easy answer here, but perhaps our industry really does need some outside regulation, or a professional association that can administer exams in a way that is more transparent, or at least some set of standards. For instance, perhaps non-disclosures that might mask discrimination should be illegal or unenforceable? Perhaps companies and others should be obligated to share scores and reviews of candidate coding exams?
I can see big problems there as well. But I really do think the situation, as it stands, is pretty bad.
Re: What I've learned from 100s of interviews with candidates at top tech companies
#159Earlier quoted context omitted.
So I was always very upfront. I told the candidate you will not get the answer. This is so I can see how you attack a problem. All the candiates had a background in the subject matter. The question was not on subject matter not tied to the job. Overall we found that the way we did this interview was very successful. At one point we lowered the bar and hired a bunch of people and they were all gone in six months. On t…
"but when you go to collage for an STEM major there is a huge amount of critical thinking and problem solving involved" I went to college for Computer Science and while there was definitely a larger emphasis on critical thinking and problem solving than in high school and grade school, testing (which is the closest to a school equivalent of a job interview) still ultimately boiled down to you either knew the material…
We did have this issue of hiring quickly and as I said at one point we lowered the standards. No one from that group made it. We did try. The cost of those hiring mistakes on productivity and just time spent was not worth it even if it meant we passed over someone that was a good candidate.
To be fair it was not all cut and dry. Personal recommendation for someone you worked with in the past could override any interview issues. There was atleast one time where a candidate was rejected by some of the interviews but got hired anyway because of this and it worked out.
When I started the team was around 30 and made of veterans of various other companies. We all hand family and the goal was to get it done right and go home. Age ranges were around 30-40 for the core team at this point. We recruited heavily from collages at BS/MS level and within a year the the number of people in their 20s was more then the older folks, so we must have been able to do something right for the new kids in their interviews.
The one thing I have learned is hiring is so much an art as well as a scince. Google has published tons of data on their hiring practices and success rates. Most of it is pretty interesting as the things you think matter turn out not to be the key to those that were successful.
Re: What I've learned from 100s of interviews with candidates at top tech companies
#160Earlier quoted context omitted.
The process is flawed in that it ignores the ability of interviewers to rate a candidate. The solution to this is not getting rid of coding interviews because (coding sure is important). But the overweight emphasis on coding as a binary decision-making is ridiculous. There are actual engineers doing actual real coding work. They don't necessarily spend entire days solving puzzles. So, they won't do as well in whitebo…
So what do you suggest?
I do not have a bulletproof solution but I have implemented processes in my current company that filters in better (measured by performance at work) people than the average prolific whiteboard coder.
1. First, we need to establish the goal of the interview. What is our goal? The goal is find passionate candidates who will get the job done or are bring something that makes our team better. Golden State Warriors will not succeed with a team full of Stephen Curry clones. Note that the goal is not to reduce false positives but to hire the best we can get.
2. With that established, we need to interview candidates and see if they are worth it.
a. If they are a generic software engineer/just out of college/did not get a chance to do something interesting yet, what else besides coding (verified by 2 rounds of non-perfect whiteboarding) did the candidate do? We need to identify if they have the potential to do more than just toy coding
b. If they have been doing something interesting at previous jobs/school they obviously did not have time to practice coding. What were they doing? Is it relevant? Is it it interesting?
With point b, I know you get paranoid about bullshitters. I agree. Candidate b can be a bullshit artist. But, if the interviewer is capable enough, the bullshittery will not go anywhere.
In the light of above, I designed the following:
1. 2 coding rounds. It's ok to miss edge cases as long as you can fix them when prompted with decisive hints. The coding problems are also relevant problems from our own codebases and not just some random "skyline problem" ----Note that the emphasis is "OK on missing edge cases". We just want to know if you can solve the problem and translate it to code
2. System design round: Yes even for college grads. For college grads ask something trivial like how would you design a simple diff or a simple OS/compiler. For experienced folks, ask something relevant to their background. This works really well because it shows which college grad really likes exploring the world of "practical" computer science. This also helps remove bullshitters to a large extent. Linkedin has a great round on this and I really enjoyed that round because it got me engaged with the team and they got to explore sides of me that even I didn't know existed
3. "What is special about you round"...We want to know what makes you special (to compensate for lack of toy coding). Here is where a lot of really good engineers would shine. Some will give examples of a compiler they wrote, or how they applied machine learning to an unconventional area. There are no right answers and it quickly becomes a technical discussion. This round shows how insightful the candidate is. Also, this has to be a full round.....not just a 5 min chit chat thing. The reason for it to be a full round is that bullshitters run out of stuff to talk about whereas the person who was engaged in such projects will go far.
Granted some engineers aren't good communicators but whiteboarding is a bad proxy for hiding bad communication skills since a lot of engineering IS good communication. This same candidate will get hired, write design docs, give presentations, explain concepts, mentor interns, interview other candidates. This person better be a good communicator.
Is this process perfect? No. But neither is the current overweighted whiteboarding
So what does this process do? It tried to "select" the better candidate as opposed to trying to "reject" everyone in the name of reducing false positives.
Not perfect but gets me the candidates who are not just whiteboarders.
I am in the bay area and I'll be happy to walk through this process in great detail if necessary.