
What is the engineering hiring bar? - leeny
http://blog.interviewing.io/the-eng-hiring-bar-what-the-hell-is-it/
======
gregdoesit
The article could be a_lot_ more concise. Here’s what I got out of it as the
takeaway:

> And that helps us understand why Recursive Cactus spends so much time
> practicing. He’s training himself partially because his current company
> isn’t developing his skills.

Exactly. Recursive Calculus wants a better job, (a lot) higher pay, a better
environment. So he spends time prepping for this.

And companies who can offer all of this, and get a lot of interest already,
they are selective, minimising false positives in the hiring process. They
expect working code in the coding challenge, a good attitude and some other
skills like demonstrating decent systems design. Recursive Calculus also preps
so much as his interview process to his current place was different and he
_really_ wants to nail these interviews, get a bunch of offers and get into a
bidding war before saying bye to his current workplace he’d love to leave for
something better.

There wasn’t really any actionable thing in this article that I found, or
applicable advice. The end.

~~~
twomoretime
>And that helps us understand why Recursive Cactus spends so much time
practicing. He’s training himself partially because his current company isn’t
developing his skills.

I develop software full time and have some 10 years of experience depending on
how you count it, and I'm absolutely terrible at leetcode style problems and
find whiteboard questions difficult for non programming reasons.

I know it wasn't the point of the article, but there's a deeper problem here
that most FAANG programming questions aren't actually testing work related
code skills.

At my company we give two very basic tests, takehome. Both can be completed in
15 minutes if you're rushing. Far more useful of a tool than any of leetcode
style questions.

~~~
austincheney
I remember one time I was hiring for a JavaScript developer. The most
important technical competency was a brief working knowledge of the DOM. The
actual position required modifications to pages for A/B tests and jQuery was
either too slow or broke in production when other developers used it for their
test code.

Of everybody that passed through HR to me I sent out a notice that there would
be a minor code assessment and they could not use jQuery. 6 or 7 people
instantly dropped out. There were 22 people left that I actually talked to
which only three could pass the code assessment.

The assessment was never designed to be challenging. Candidates were using
their home computers had access to any reference material. There was no hurry.
They could look things up. I also told them if they got stuck just ask me and
I would point them in the right direction without any penalty, but only 2
candidates tried that.

The assessment was an hour long phone call. At the start of the call I would
send out a static HTML page for the candidates to open in their browser and
for them to write an answer in whatever tool they wanted but it had to execute
in the console of a browser on that page. Tasks were things like take this
item out of the page and reinsert at some other location or change the color
of a particular paragraph to red. Stupid simple stuff that you would expect
any UI developer to do easily. After all these were beginner skills and this
was a senior level position.

I did ask to see the code they wrote only to make sure they completed the
tasks. I would drop their code in my browser console and run. I never looked
at code style or sloppiness. It’s a job interview where people are rushed and
nervous. Their code is allowed to be sloppy.

Only 3 candidates were able to pass this code filter. The people that did pass
either did well enough to pass or extremely excellent. The people that failed,
maybe 19 of 22 people, all failed epically.

That experience really shocked me. I did everything I could think of to make
this relaxing and take the edge off because there is always pressure during a
job interview. No matter how much of a lifeline I threw out almost nobody
would bite. They would sit there silent on the call or they would attempt to
stall like that would somehow make code magically appear. Sometimes I would
remind candidates they could ask me questions because I cannot evaluate a
blank answer. Other times I would try nudge them to get started or guide them
into progress, which only seemed to hurt more than help.

Very bizarre experience.

~~~
monksy
> No matter how much of a lifeline I threw out almost nobody would bite. They
> would sit there silent on the call or they would attempt to stall like that
> would somehow make code magically appear. Sometimes I would remind
> candidates they could ask me questions because I cannot evaluate a blank
> answer. Other times I would try nudge them to get started or guide them into
> progress, which only seemed to hurt more than help.

Because they felt that it was a false help. If they take it they're
disqualifying themselves because they didn't know something.

~~~
austincheney
I suppose they could have assumed I lied about the assistance, but surely they
could have reasoned that would be less disqualifying than delivering nothing.

~~~
monksy
You need to have empathy for the person on the other side of the table.

Your relationship when questioning is very conditional. Answer question right
== get the job.

------
Ididntdothis
I had a conversation with a fellow engineer and we pretty much concluded that
our current company would not hire us with our current resumes if we had to go
through the interviewing process. And we are generally viewed as some of the
higher performers. I bet the same is true for a lot of other companies.

~~~
christiansakai
I suck at writing resumes, to the point that recruiters and even hiring
managers at companies that I applied to give me a pity and even talk on how to
improve my resume DURING INITIAL PHONE CALL lmao.

~~~
PascLeRasc
That probably means you're underselling yourself. Have you tried taking their
advice?

~~~
Psychlist
I've had that advice myself. and they were right. Once my resume and
application was cleaned up I found better jobs.

------
carapace
This is so silly. Here's teh secret: your programming ability is set
_genetically_ by how much _Yeti blood_ you have in your ancestry. Yeti half-
breeds recognize each other (often unconsciously) by smell. That's why some
people can get programming jobs hella easily while others just can't even
after strenuous training. Check your feet. If your second toe isn't longer
than your big toe you're screwed. Give it up. You might as well go get an MBA
or something.

~~~
juped
How do the Yetis get onsites to smell one another?

~~~
carapace
It's a psychic stench, detected through the third nostril, that infuses the
bits of their email electrohomeopathically when they send their resumes.

------
sxp
The section in that article about 'Defining “Intelligence”' is similar to a
previous discussion on HN about whether a FAANG interview is just "an IQ test
which is disguised as a relevant skills test for legal reasons". [1] This
article does a good job of supporting that claim. Theoretically, both IQ tests
& FAANG interviews test for whatever "innate intelligence", but in practice,
both of them can be gamed by grinding brainteasers & leetcode respectively.

[1]
[https://news.ycombinator.com/item?id=22705057](https://news.ycombinator.com/item?id=22705057)

~~~
chrisweekly
The tech interview process is just so badly messed up. Even if the process
were a reasonable proxy for IQ (it's not), or correlated somewhat with use of
actual required technical skills (it doesn't), it still almost entirely
ignores the EQ (emotional intelligence) and CQ (cultural intelligence) factors
which comprise the other 2 legs of the "good hire" stool.

~~~
twomoretime
>Even if the process were a reasonable proxy for IQ (it's not), or correlated
somewhat with use of actual required technical skills (it doesn't)

I wouldn't be so quick to presume that FAANG IQs aren't above average.

>the EQ (emotional intelligence) and CQ (cultural intelligence) factors which
comprise the other 2 legs of the "good hire" stool

EQ may be difficult to measure but the spoken part of the interview should
generally take care of 'CQ', if that's a thing.

IMO the only surefire way to hire is to bring people on temporarily and
evaluate their performance in 1-3 months. I don't know why this isn't popular.

~~~
T-hawk
One answer to your last: people aren't going to leave their permanent job for
one that has a risk of being temporary.

~~~
twomoretime
If you make it as far as internship to hire, the company is signaling more of
a commitment than just temp work. It's basically like a probationary period.

Also this would be especially good for graduates with little work experience.

~~~
djannzjkzxn
Sure, that’s exactly what an internship is and it’s why these companies offer
it. If you gave a similar opportunity to people who are already in the
industry, you would have a major adverse selection problem where the better
candidates would never pick a “probationary” job with second-class status over
a normal job.

~~~
twomoretime
>Sure, that’s exactly what an internship is and it’s why these companies

I don't think so, to me an internship is temporary by nature and does not have
a "guaranteed" job at the end based on good performance.

>you would have a major adverse selection problem where the better candidates
would never pick a “probationary” job with second-class status over a normal
job

The selection process is so competitive right now that I think plenty of
people would be happy for such a change if it meant a more reasonable
interview process. Plenty of strong candidates are being thrown away over
arbitrary metrics right now anyway.

Personally I'd take a non-leetcode non-white board interview with a
probationary period over the typical grueling 2-5 round FAANG process, and I'm
sure I'm not the only competent developer who expects to have trouble with the
typical FAANG process.

~~~
djannzjkzxn
>I don't think so, to me an internship is temporary by nature and does not
have a "guaranteed" job at the end based on good performance.

If you do a great job in a FAANG internship then you will get a full time
offer at the end. Does the probationary period you propose have a lower
performance bar than is applied post-internship? If so then it seems it
wouldn’t achieve FAANG’s standards.

> The selection process is so competitive right now that I think plenty of
> people would be happy for such a change if it meant a more reasonable
> interview process. Plenty of strong candidates are being thrown away over
> arbitrary metrics right now anyway.

FAANG doesn’t need to attract more weaker candidates who can’t pass the
interview, they are more concerned about getting strong candidates who have
multiple offers to pick them. For less competitive candidates there are
contract positions.

------
thaniri
I applied to a new grad production engineering job at Facebook recently.

I probably did about 80 leetcode puzzles, let's just assume that is 1 hour per
puzzle. So 80 hours of leetcode puzzles.

In addition, 10 hours were spent reviewing my networking trivia (focused on
layer 2/3/4 and HTTP).

The PE recruiter at the company also provided a study guide packet. I elected
to sink about 10-20 hours into studying the Linux troubleshooting and finding
some common questions off of Glassdoor to understand the type of things they
will be asking.

Finally I tried to review some system design stuff (but as a juniour in this
industry didn't really know how) Just followed some study guides from the
system-design-primer on Github. Probably 5 hours dedicated to this.

Let's just round it to about 100 hours of prep in about a month and a half.
While juggling a full time job as a devops engineer.

Afterwards I was rejected :)

Ultimately I wasn't surprised I was rejected. I was under the impression that
I needed to pass all 7 of the interviews in order to get an offer (2 phone
screens, 5 on site.) I know for sure I failed the system design interview
question HARD. Like irredeemably hard. Regardless of my performances in my
other interviews, I know I definitely did a good job in my network and OS
interviews but it doesn't matter.

I do wish that companies would provide a feedback system. I would love to know
where they thought I was weak so that I can improve upon that later. But there
is nothing beyond "we decided to pursue other candidates."

Here's the crazy thing, though. It isn't even a question in my mind that I
should try again if another FAANG recruiter reaches out to me. I will sink
another 200 hours if necessary to pass their interviews because of what it
represents to achieve getting hired at such a firm. There's prestige, salary,
and quality of life that just can't be matched by any other tech companies.

~~~
nojvek
> There's prestige, salary, and quality of life that just can't be matched by
> any other tech companies.

Not sure about prestige and quality of life. Salary, yes!. I happily quit my
Microsoft for a slightly lower pay and way better quality of life.

Right now AAMFGN are hiring tons of engineers. So their quality really varies
and different teams have different bars. You can't say they worked at Google
so they must be good. We are humans and we have our biases. Like it or not,
hiring is biased (mostly towards white/asian males from prestigious
universities). To counteract, there's also diversity hires (with various
degrees of definition what it exactly is).

For some people, money is much higher priority, for others it's not. Just be
sure what you really want from life. Remember, it's not a race.

~~~
mav3rick
For many Google does carry that weight. And unlike Msft, the hiring bar is
common across the company and is not decided by teams. Something that I feel,
always results in more consistent hires.

------
nimbius
this is fine, so long as you're looking to get hired by a megacorp
(fine,faang.) but for most people theres a point of diminishing returns. Do
you want to spend six months to a year out of your life drilling for a $10k
raise working for a company that works you like a rented mule anyhow, or do
you settle with your present quality of life and conclude 70k is enough to do
whatever you wanted to reasonably do anyway.

Then theres the variable of google et. al. and their random eleven-round
interviews. Are you patient enough to sit through questions like "how many
kegs of beer on a schoolbus" and "how to build a datacenter on the moon" from
some grinning techbro only to be told youre re-invited to another round of
interviews?

Finally, age. You can cram and cram but if youre over 50 your chances of
building that moon datacenter are better than getting hired.

~~~
jasondclinton
I agree with a few things you said but you're also wrong about a few things.

FAANG compensation is much higher than you think. $200k/year (including stock)
in the Bay Area for new grads is common. Yes, the prep for these interviews is
insane but what has effectively happened (and this is supported by the
article) is that companies have offloaded the selection work to the
interviewee: they will only be able to pass if they are willing to do the
ridiculous prep work. And yes, the interview questions have nothing to do with
the job; that's not the point. Sadly, the process is often selecting for
intelligent, compliant worker bees and not, what I would prefer, more
creatively-inclined people. I agree with you: depending on what team you end
up on, you could be asked to clock-in, crank out code, and clock-out without
much creativity or input into anything.

BTW, Google doesn't use brain teasers since 15+ years ago. But, there is the
occasional interviewer who asks questions about trivia that only they know
about. This is supposed to be banned but there's no consequences for
interviewers who do this. Hiring committees (who make the decision) usually
throw out these questions when they see them in the list of interview feedback
that they are using to make a decision.

Re: age. I worked on a team at FAANG that has tried very hard to hire folks
with industry experience and we haven't found any resistance from interviewers
to that. However, when talking to potential interviewees, we have found that
very few are willing to subject themselves to the interviewing process for the
reasons that you've outlined above. I don't blame them.

~~~
mpeg
Only in the Bay Area, FAANG in the UK pays at or under average market rate.

------
ng12
I can usually spot the candidates who are leetcode junkies. This is why I
direct our interviews to be as pragmatic as possible. Most of our question
bank comes from actual code one of our devs had to implement.

I'm fairly confident that if you've studied hard enough to solve these
problems easier the studying just paid off by making you a better developer.

~~~
southphillyman
People will just game this as well. If you already know the answer to a
question coming in because you leetcode all day you could easily ask a lot of
clarifying questions, identify edge cases, and give brunt force/alternative
approaches before solving the question. A smart person will use that
opportunity to highlight their communication skills and get an even higher
grade on the interview

~~~
dominotw
exactly. pretending to have not seen the question before is one of the
"skills" that ppl practise on leetcode forums.

[https://www.teamblind.com/post/Should-you-tell-your-
intervie...](https://www.teamblind.com/post/Should-you-tell-your-interviewer-
you-have-seen-the-question-before-aEd4kiYC)

only ppl GP is catching is ppl who havent' practiced that skill. Leetcode
junkies are simply outsmarting him.

~~~
ng12
Our questions aren't on leetcode and we aggressively monitor for leaks
(including on Blind). You're also missing the point: we're intentionally
avoiding the questions which boil down to a binary question of "do you know
this algorithm or not?". Most of our questions are open-form, asking the
candidate to implement a widget or interface with an API. They usually don't
involve big-O or any data structure tricks. Unless you've seen the exact
problem before leetcode won't help aside from general programming practice.

Also I will say that the few candidates who've tried lying about seeing a
question before are not as good at acting as they think they are. Not only do
you have to pretend that you've never seen the question before but if you
don't stumble, second-guess yourself, refactor parts of it, etc. it's usually
pretty obvious.

Now, if someone's a great actor and they've seen all four problems before and
manage to impress the hiring manager -- well, what can you do. But I don't
think there are very many of those.

------
overgard
I feel like giving people a decent coding project is, at the moment anyway,
the best approach. If I'm interviewing someone I really just want to see these
things: what their code is like, what their final result looks like (if
there's room for creativity -and there should be), how they got there
(revision history). And then in the interview portion I just want to get a
sense of their personality and their decision making process on the project.
It's not perfect but it gives a sense of if they can finish a likely task, and
if they would be easy or hard to work with.

Btw, none of that involves puzzles or trying to guess their IQ. If your
company is like google in 1998 maybe you care about that, but chances are you
need someone to build something relatively straightforward, not invent
PageRank. Honestly having a super genius on board might be bad if you're not
solving a truly hard problem - they might get bored and check out.

It's a valid complaint that these projects can take time, but job searching is
pretty time consuming anyway, and joining the wrong company or hiring the
wrong person is way more so.

------
Scea91
So I got contacted by Facebook London about 2 weeks ago. The job description
sounded quite interesting, but when the recruiter described the interview
process and actually sent me a deck with resources for preparation for coding
interview he lost me.

The reason is that I am absolutely satisfied with my current job and decided
that I don't want to bother at this time with preparation for an interview.
Maybe I would pass it without prep, but I would not feel comfortable showing
up without putting any time in.

I get a feeling that process as this somehow does not select for top
performers that are already working on exciting stuff.

~~~
Diederich
Over the past 27 years, I've worked for 8 different organizations, including
two FAANGs, and I've never technically prepared for any interview. This is not
some kind of indirect boasting about how smart I am. Far from it. I feel
positively _dumb_ compared to my peers.

I rarely fully nail the most difficult algorithmic interviews, and I don't
think that's the point. I think I get most of my 'points' by taking a very
direct, easy going and open approach to things. The phrases "I don't know" and
"I'm not sure" will get practically worn out at the end of my interviews.

I don't think it's what one knows as much as it is about how one approaches
and thinks about problems.

Second item: do the interviews anyway, even if you don't necessarily intend on
leaving.

I'll tell recruiters that I'm pretty happy where I'm at, and that it would
take some kind of enormous comp package to entice me to move. But we'll still
do the whole process, and I'll often end up turning down a pretty solid offer.

For many/most companies, turning down an offer 'locks' you out for a year or
so; no big deal.

I really enjoy interviewing at the top tier companies, because, in the end, I
always learn a great deal.

Like most things, interviewing is something you can get good at with practice.
What's nice is that you have the opportunity to get several hours of face to
face time with really smart people at no out of pocket cost, except for a day
of PTO from your current job if you live local.

~~~
kyralis
On the flip side, as an interviewer, this _all_ incredibly true.

In particular, I frequently end up asking algorithmic questions during
interviews. For all the hate that they seem to get, I find them to actually be
quite predictive; in my experience, the people who are extended offers despite
just barely getting by in that portion of the interview are also the ones that
struggle when those types of issues come up during actual development- and
yes, despite claims to the contrary, basic fundamental algorithmic knowledge
really does turn out to be useful in a surprising number of circumstances.

However, I will say that the utility is entirely based on how the interviewer
handles things. I've passed many candidates who have _failed to complete the
problem at hand_ because throughout their attempt they demonstrated an ability
to communicate, an ability to reason about a problem, and an ability to
respond to feedback during the course of trying to arrive at a solution. In
particular, one of my favorite questions has a tendency to make candidates try
an approach that ultimately ends up being a dead-end as their first attempt.
That's fine! It's completely natural! The really interesting bit is how they
they respond when I produce counterexamples that start showing the limitations
of that approach (and, ultimately, its infeasibility.) Do they keep digging
the whole? Do they rethink their approach? Do they say "Yep, that makes sense,
but let's see if we can get this done for the easy case and then we can
approach the more general problem?" Those sorts of questions are the ones that
ultimately end up being the most valuable.

------
jariel
The solution: dump (popular) algorithms!

All whiteboard problems should be fairly novel and 'not possible to practice'
or else you are testing their preparation, not their ability.

(Admittedly, preparation is a measure of something, and 'conquering all
algorithms' is a measure of something.)

But neither are the measure you're looking for.

And 'General IQ' is not only it either.

The ability to decipher problems, understand requirements, grasp tradeoffs,
translate that into reasonably clean code, keep possibly complex systems in
your head, work with others and maintain a positive disposition.

Finally, the elephant in the room is 'perceived confidence'. It took me 30
years at least to be able to understand how well a problem was communicated,
and how good the solution actually is.

Someone who is confident, who 'looks the part', who can communicate the issue
clearly ... may still have a mediocre problem.

The weird, lacking in self-awareness, a shy-but-blunt nerd who may be totally
unsure of themselves, sweaty palms ... may possibly have just as great as a
solution.

We are hard-wired to see 'patterns' and our intuition misguides is
significantly on this issue.

It's a lot of hard work to try to ignore 'the bad parts' of one's own
intuition while keeping the 'good parts'.

One of the solutions to this literally is data. Instead of 'feeling' how they
did, a checklist of things might help us structure in our minds how truly well
something was accomplished.

And of course, we can't ignore the fact that communicating matters, it just
matters differently in different contexts.

------
xenihn
The spread is insane. I have interviewed at one FAANG three times within the
same year (this one does not have cooldowns). On-site DS&A question difficulty
capped at two-sum with no twist for the most recent one (extremely easy if you
have seen it before, still doable for most people if they haven't), binary
tree LCA (impossible within 30 minutes if you haven't studied binary trees,
moderate if you have but have never attempted/seen LCA, easy if you have) for
the first one, and a keypad DP problem (hard for anyone who hasn't practiced
DP imo) for the middle one.

There are people who are extremely good at DS&A interviews and can reliably
pass almost any loop at any FAANG company that sticks to conventions. But I
think most people don't fall into that group, and it generally comes down to
luck and not getting a single question that stumps you.

~~~
chrisseaton
I think most people should dis-regard what FAANG do. The hiring bar there is
so astronomically high that they're only hiring people at the very top of
their field. I wouldn't try to take any lessons from FAANG and apply them to
the rest of the industry.

~~~
dominotw
I've gotten same interview that GP described from mid tiered tech shops in
salt lake city.

~~~
no_flags
I think some places think "we're just as good as FAANG so we should have the
same bar."

------
dmoy
My hiring bar (for coding) has gotten easier the more I interview (as the
interviewer). I don't ask any kind of super tricky algo questions, because the
signal you get from those tends to be closer to "is the candidate familiar
with this specific area of algorithms" than anything else. I don't ask any
questions that take a really good candidate more than 20-30 minutes to solve,
because then I can't scale the question down. You can always scale a question
up.

I used to ask questions that were fairly close to what you find on leetcode
now, but the signal isn't great anymore. It used to be good at identifying
candidates who can quickly figure out the right tools to solve a given
problem, but now it ends up identifying candidates who spent a lot of time on
leetcode.

Now I mostly ask questions that involve

* transforming some data using a less than stellar API (using a REALLY simple transformation)

* holding a bit of state to accomplish the above transformation

* throwing a few edge case wrenches at the candidate

And the last part is technically baked into the question - a candidate who can
fully grok the state could determine all of the edge cases on their own. But
even if they don't I'll explain them and see how the candidate handles. 'cus
in the real world we have unit tests, and I don't expect TC to really figure
out all the edge cases in 30 minutes. A couple of them, sure. And they better
be able to handle them once pointed out.

Candidate forgets that a java collection can have null because you can't have
a List of primitives? That literally doesn't go into my feedback at all (and
depending on how recently I've written java, I might have forgotten myself).
Candidate writes a function that doesn't compile because there's no return
statement? I'll point it out, maybe make a note, but don't really hold it
against them because we write code in IDEs. Candidate spends 10 minutes trying
to figure out how to force a single variable to do the job of three different
variables, despite increasingly desperate hints to just store more local data?
Yea that might go poorly in feedback.

But yes, I expect a candidate to be able to write 10 lines of code to answer a
data transformation in 30-45 minutes. And yes, when either they figure out or
I point out a couple of edge cases, I expect that 10 lines to not morph into a
congealed mass of horror that cause their original solution to break.

~~~
meestaahjoshee
id love to interview with you

------
DeathArrow
I don't get it why people try very hard to get a job at FAANGs. Could it be
because they would feel like they would become part of an elite, could it be
because that once they have a FAANG company in their resume, they won't have
to pass lengthy and stressful interviewing processes anymore and won't have to
job hunt.

But there are many other software engineering jobs with at least as
interesting problems to solve, at least as good payment, at least as good job
security while being less stressful.

For me, hunting specifically a job at FAANG doesn't pay off.

I'd accept any job that meets my criteria of what I have to do, payment and
stress level.

~~~
joshuamorton
I see this said sometimes, and frankly I doubt it. A mediocre performer at
Google or Facebook with 3 years of experience is pulling in 250K+. At Amazon
and Microsoft, that's a bit lower but still over 200K. And there's upside for
a higher performer.

The only places that match that kind of progression are bay area
startups/public unicorns and quant finance and hedge funds. And for a
competent person, that growth doesn't stop for another few years.

------
dudul
I don't have a study to back it up, just my empirical observations over the
past 12 years, but I'm kind of convinced that hiring engineers almost randomly
(let's say they can speak clearly and write a fizzbuzz) would have almost the
same outcome as designing and implementing these complicated and convoluted
hiring processes.

I have yet to work with the mythical "really really bad engineer that
completely screw up your project and does it in such a stealthy way that you
don't even fire them before it's too late".

~~~
Vadoff
I've definitely worked with engineers that are 10x slower or have extremely
poor engineering practices: copy-pasting chunks of code, 8+ nested ifs, all
code in one giant function, use of global variables throughout, clueless how
memory management works/tons of cyclic retains, etc.

I've seen plenty of purported "senior" engineers with 7+ yoe that code worse
than new grads.

Now that I'm in FAANG with a high hiring bar, these type of engineers are
completely absent. I'm sure that's not a coincidence.

~~~
ryandrake
I agree, this was the biggest striking difference I saw between the
engineering workforces at FAANG companies vs "everywhere else". You'll
encounter a similar percentage of geniuses and top performers at both types of
companies. You'll see plenty of regular 1X to 2X engineers, too. But somehow
the FAANGs have, for the most part, figured out how to filter out the
programmers who literally cannot program, whereas many other companies have
not. You'll never see The Brilliant Paula Bean [1] at FAANG, but you will
encounter them once in a while pretty much everywhere else.

1:
[https://thedailywtf.com/articles/The_Brillant_Paula_Bean](https://thedailywtf.com/articles/The_Brillant_Paula_Bean)

~~~
fg6hr
I think there are actually a lot of Paula Beans in FANGs, they just perform at
an entirely different level. In short, in order to be called out an
incompetent liar, someone needs to make an assessment, but if the domain is
too complex, if the knowledge is spread across 100 people, nobody will ever be
able to assess or even notice the incompetent do-nothing types. Senior
management don't understand the technicalities, middle managers see only their
own area, very technical architects are very technical only in their domain
and so on.

------
deeblering4
> 7:00pm – 7:30pm Hang out with wife

Sorry, you lost me immediately. As a married person this is not a realistic
typical schedule if you wish to stay married.

------
frozenlettuce
Recently I had two different online testes where a good chunk of the questions
were about Javascript generators - a feature that is very hard to see in the
wild. Thankfully I'm already employed, but this was not the case I would lose
a good amount of time studying this subject in depth (only to not use it
later)

------
juped
The conceit that it's a "bar" of any kind is what allows it to continue.

------
faanginginthere
After 9 years at the same company, I left my job at the beginning of January
2020 to dedicate myself to leetcoding and interview practicing in the hope of
getting hired at a FAANG, more specifically Google.

I really started dedicating all my time to interviewing January 1st.

It is now March 31st and I am now abandoning the idea of getting hired at a
FAANG, or any larger-sized startup and will target early startups with lower
entry bar.

Yesterday I had my “virtual on-site” interview with Google and it went poorly.

The 1st interview was behavioral and I think it went fine, but I’m not sure
the interviewer was thrilled.

The 2nd interview was horrible. First, the interviewer had a bad internet
connection which made it hard to understand her (I asked her to turn off her
video to help, which she did), 2nd she jumped immediately to the problem
without introducing herself or anything which made it feel like she was in a
rush, 3rd she simply started reciting her problem statement, which was hard to
make sense of because of her bad internet connection. I asked her if we could
write it down in the shared google doc, so she proceeded to copy/paste a blob
of text that seemed to be taken from the _middle of a problem statement_. It
had no context and no actual instruction like “write a function that will
calculate x and y”. My NDA unfortunately prevents me from sharing the actual
thing. Because of this, I did not know what I was supposed to do. I asked her
multiple times “so, should I write a function to do this and this?” and she
kept reciting the ambiguous problem statement over and over in an impatient
and dismissive manner. I felt completely out of place. Then when I finally
started making a little bit of progress on guessing what she actually wanted
me to do, I started hearing background noise of someone chopping vegetables,
and moving things around: extremely distracting. I would ask her specific
questions and from her lag in answering and her short 2 words answers I just
know she wasn’t paying attention. It took all the strength in me to not tell
her how disrespectful it felt to be interviewing with someone that clearly did
not want to be here and wasn’t paying attention. At the end of the interview I
thanked her a lot, smiled big and swallowed my pride.

I left for our 1 hour break and took a walk to reset my emotions and tell
myself that the interview could still go well and that I still had my chances.

The 3rd interview went well. The interviewer had a good connection, a good
mic, was understandable, introduced himself and even said “before we start, I
want to remind you that if one of your interviews went bad, don’t sweat it,
it’s all fine. We’re here to have a conversation. I’m not looking for a right
or wrong answer, I just want to see your thought process”. It took him
literally 2 minutes to set me up for success. He then proceeded to give me a
problem statement, with some context around it, and we started proceeding to
_have a real conversation_. I wrote code that, according to my interviewer,
compiled correctly and was close to the actual code it was based off of. I
left this interview feeling good

4th interview went bad. Interviewer was 10 minutes late and had a bad
connection, but aside from that introduced himself correctly, gave me a clear
problem statement and although did not talked much at all during the
interview, he did give me a few hints here and there. The reason I failed is
that I couldn’t solve a simple algorithm and started panicking internally. All
on me. I left the interview hoping the next one would go better.

5th (and last) interview went meh. It was a system design interview. I was
hoping to be having a conversation with the interviewer but he just was
speaking much at all.

I hung up and cried a little. It’s really hard emotionally to accept this.

Before my Google interviewed I got rejected by AirBnB, Twitter told me they
don’t think a senior role is adequate and will see if they have “mid-level”
roles (which is totally fine, but I’m left wondering if that’s not just a way
of rejecting my candidacy), and I cancelled Facebook because what Airbnb
taught me is that I’m just not ready. That’s not a lot of interviews you’ll
tell me, but I spent _months_ preparing.

Because I know my algorithm and problem solving skills are lesser, I spent
hours studying on leetcode, reading an operating systems book, reviewed
“cracking the coding interview”, reviewed “introduction to algorithms”, re-
read some chapters of “TCP/IP illustrated”, spent hours watching system design
videos, hours watching algorithm videos. I spent $5000 on an
interviewing/algorithm bootcamp.

I know that I am not a bad engineer. I started programming at 10 years old
(I’m 33), taught myself VB, C and C++ (though I haven’t coded in these for
many years now). Computers have been my life’s passion. I designed my former’s
company infrastructure and made it scalable and resilient. I was a major
influencer in my team and my coworkers trusted me. I know I’m a good system
administrator; I might be less good a developer but I know how to code well; I
know how to influence my coworker into following best practices,
reading/writing documentation, being security conscious; I stay informed on
the latest trends, I try new technologies, learn new languages, not even out
of necessity but because that’s what I love.

But none of this seems to be enough.

And maybe it really isn’t for a company like Google. And maybe I wouldn’t be
successful at Google if they hired me.

What I know is that these past 3 months have left me with little confidence
about my skills and just wondering if I’m cut out for this. I’m trying hard to
not feel defeated, but damn, that hiring bar in FAANG interviews can really
make you feel like crap.

~~~
fourmyle
You are a fine engineer and there are many people that are working at FANG
that are worse than you. Just keep grinding and don't give up. You have built
a solid foundation the past few months. All of these companies let you
interview again. Just keep practicing, albeit at a slower pace, and try again
next year. You will eventually break through. I succumbed to depression after
getting rejected after a lot of work my last cycle. I wish I wouldn't have and
just kept grinding. There is a lot of luck involved in this game between
getting questions you know or are good at or getting a good interviewer.

~~~
ryandrake
Definitely hang in there and keep practicing. I've worked at two FAANG
companies, and for both of them I was rejected many times before finally
passing. There seems to be quite a bit of random chance at play. They all
allow re-applying, and some recruiters will tell you the minimum interval
between applications, so just set your calendar and re-apply again and again.

------
drewcoo
Actual professional engineers don't have strange, gamified interviews to guess
someone's skill level.

Is all of this modelling the problem of the hiring bar or training to beat it
really solving the right problem? Do any of the solutions to this constructed
problem actually work reliably or are they just elevator close buttons, frobs
that may not really function but provide a sense of control?

~~~
starky
I work in tech in a non-coding discipline. I was reading this article
thinking, "Are there really that many people out there that you need to
separate the good hires from the average hires?" Every time I've interviewed
it is hard enough finding a single competent hire at all, never mind trying to
grade hires to separate multiple seemingly good candidates.

------
bdcravens
The best kind of practice is the kind you get paid for. Freelance work (if
your current contract permits it) always has opportunities to stretch your
legs. Also, I think _most_ companies would prefer breadth of skills over
someone who knows the answer to a gee whiz algorithm. Put a different way,
companies prefer someone who is valuable over someone who is "smart".

------
solidist
The word "experience" only appears twice in the 26-minute read.

------
christiansakai
Holy cow, is Recursive Cactus me? Lol I can totally relate. And I believe a
lot of people on cscareerquestions subreddit and people at Leetcode forum can
relate. 100%? Accurate.

Also, just to give a context of the hiring bar these days. The FAANG companies
coding question is no longer on Easy even on phone interview. Expect at
minimum 2 Medium difficulty questions in a phone interview that need to be
able to be solved in optimal space time complexity in under 45 mins (or more
precisely, under 20 mins each because if the first question is not solvable
under 20 mins then they will skip that and you already failed).

So for those FAANG engineers that were able to get in early, whether by
acquihire, by diversity hire, by luck, by normal hire. Stay there as long as
you can especially in today’s times. Because once you quit you’ll experience a
rude awakening for getting right back in, unless those companies waive you in
because you’ve been in before.

And yea, I’m talking for both fresh graduates as well. There are instances
where a fresh graduate get 4 out of 5 hard leetcode questions in an onsite.
Yea, its that crazy.

I'm strictly speaking from personal experience and by reading subreddit
cscareerquestions and Leetcode forum on people's experiences.

So at this point, a lot of people (including me) already solved hundreds of
Leetcode questions, and still got rejected. So this is now a luck of the draw
game, apply to those companies every year (because once you get rejected then
you are not allowed to apply within a year), one day you will get your lucky
strike.

One way to maximize your luck if you really want to get in, assuming that you
are not lucky, not part of diversity hire, not part of acquihire: \-
internship \- contract work

Damn I have to EDIT so many times lol. But due to this Leetcode style training
that a lot of us are going through, we literally have less time to learn
anything else, for example, learning new libraries, new frameworks. I
personally think learning new frameworks or libraries are kinda dumb because
it is easy to pick up on the job anyway, but nevertheless when you want to
look for a job you need these on your resume. Say you only know REST but now
companies want gRPC and Protobuf then you gotta learn those on the side.
Assuming that you are a normal working person with hobbies, families,
responsibilities, activities on the side you need to pick your choices
carefully.

So this has an interesting result. The more you prepare for FAANG and doing
Leetcode style questions, the less time you prepare for mid-tier companies and
the lesser the chance you will get a better offer from them. So you have to go
ALL IN one way, can't go half ass one way or the other.

~~~
jasondclinton
I was agreeing with you until you used the phrase "diversity hire" in your
comment. I think that you could have made the same point without inferring
that the hiring bar has been lowered for employees in underrepresented groups.
That's a pretty terrible thing to say to anyone who is in one of those groups.

~~~
christiansakai
It is my anecdata, and take it as what it is. I've seen it myself a few times.

Take it as what it is, downvote it all you want. A freedom of speech for
everyone.

~~~
akoumis
"I've seen it myself" \- So you've sat on FAANG hiring panels that made
decisions specifically based on candidates' underrepresented demographics? Or
you're just inferring based on people you met while employed at a FAANG?
Or...?

~~~
manfredo
I've sat at company hiring panels, and have taken part in discriminatory
policies first hand. At career fairs, Dropbox recruiters had us mark candidate
resumes with a star for diverse candidates, two starts for "double diverse"
candidates (female + URM), and "ND" for Asian male candidates. It turns out
"ND" stands for "negative diversity". Literally the first thing we did was
bucket candidates by the desirability of their demographics. Recruiters also
got higher bonuses for recruiting diverse candidates, along with bonuses for
more experienced candidates. The diverse bonus was equal to the difference
between hiring an entry level IC1 and an IC6 (senior staff engineer).

Usually discrimination doesn't take place in the hiring panels. Rather it's
done by the people given incentives to discriminate, usually recruiters.
Recruiters can infer candidates' race and gender with census data on names,
and advance diverse candidates to phone screens more often than non-diverse
candidates.

I can also detail the company's "opportunistic hiring" plans if you want to
hear more.

~~~
christiansakai
I would like to hear more, but maybe HN doesn't want to. If you don't care
about the risk of downvoting and this being on HN, please write so. But if
not, it is ok.

~~~
manfredo
This is the part of the document that described the motivation:

> The Problem Statement

> Based on 177 like tech companies in Silicon Valley (market research and
> EOO-1 Diversity Statistics data), the percentage of diverse engineering
> talent is sparse. In short, 4.7% are latino, 2.1% are African American, and
> 19.2% are female. These candidates are being targeted with all of our top
> competitors with white gloves tactics, strategic outreach, and engagement
> strategies, while Dropbox has yet to systematically establish any of these
> practices to compete for this top talent and showcase our uniquely
> inclusive, dynamic, and thoughtful culture.

> Opportunity to market DBX [Dropbox] more broadly:

> Moreover, diverse engineers are the most sought after group of individuals
> on the market today. While the average response rate to engage is high (37%)
> the rate at which they are interested in moving forwards is quite low (11%).
> We interpret this in two ways: > First, due to the small pool and scarcity
> of diverse talent, companies are motivated to keep their diverse talent
> happy, well-compensated, and engaged; prospects are rarely on the market,
> and when they are, it is a highly calculated and careful search based on
> existing relationships. > Second, traditional sourcing engagement methods
> (email, LinkedIn) do not adequately showcase what makes Dropbox special, and
> because these candidates are so highly sought-after, it would serve us to
> highlight our culture early on, and to take a more long term approach to
> courting them.

And here's the proposed solution

> Opportunistic Hiring

> As the business needs shift and open roles become more narrow, it will
> become difficult to find a home for diverse candidates that we're able to
> engage and who pass our bar. Wee feel like it would be a disservice to use
> in the long-term if we miss out on hiring critical talent for Dropbox
> because of current headcount constraints. To this end, we propose that Eng
> VP's withhold 20 heads to hire opportunistically. > When a diverse/URM
> candidate is interested in interviewing, regardless of headcount, we will
> put them through the process. If they pass the TPS [technical phone screen]
> we will bring them onsite and evaluate based on their skillset. * If the
> candidate goes to HC [hiring committee], we will proactively find a
> sponsor/team home for the candidate, and that team would receive a
> preciously withheld headcount for that hire.

This was announced April of 2019. I've transcribed parts of the document that
announced this policy above. I can't speak as to whether or not this is still
in place as I have since left Dropbox.

Interestingly, Dropbox already 23% women in tech roles[1] at the time that
this was announced - larger than the figure of 19% shown above.

1\. [https://blog.dropbox.com/topics/company/an-update-on-
diversi...](https://blog.dropbox.com/topics/company/an-update-on-diversity-
for-2018)

~~~
christiansakai
Thanks for the update. It is an interesting read.

I used to think naively that checking these boxes does nothing: \- "I prefer
not to disclose my sexual preference" \- "I prefer not to disclose my
race/ethnicity" \- "I prefer not to disclose whether I'm a veteran or not"

Anyway, it is a sad read for people like me who don't get preferential
treatment. It seems like I'm being salty, but it is just the reality. People
like me studied hours and hours doing Leetcode and sacrificing other things,
even sacrificing things that should have helped our career better, such as
learning relevant skills like techniques, libraries, etc. It is what it is.
Naively think about meritocracies.

If I can just write a huge *sigh here, it is what I'm currently doing right
now. I don't care about downvotes. I just need to rant.

Anyway thank you for the replies! I really appreciate it.

~~~
electroqueen
"preferential treatment"????? your baseline is privileged. diversity hiring is
attempting to negate reduced or lack of privilege.

your competition is not women or minorities. it's other majority groups,
because more of them are interviewed and hired.

~~~
christiansakai
Well that's generalizing isn't it? Not every Asian male sounding name person
actually have a good track record in their family, free of abuse, loving both
dad and mom, good education, know how to do math to the point of memorizing
the entire Pi numbers.

There are people who are outside of the normal as well. Why not give them
privilege by hearing their stories as well?

Or better, why not discard the preferential treatment and do it based on
meritocracy? I know this can't be done in today's world, just hoping.

~~~
electroqueen
Not every white person comes from a rich, educated family either. I'm very
familiar with this being a white, uneducated, disabled female from the Midwest
US with an uneducated, abusive, lower-middle class family.

Meritocracy does literally nothing to aid less privileged people to get ahead.
It primarily helps those who started with privilege in the first place which
is mostly limited to select groups.

------
president
I have always thought maybe there should be a path for people who are terrible
at coding interviews but are confident in their abilities? Perhaps maybe a
pass on the interview but then you work provisionally for little to no pay at
first until after a discretionary period where they can decide whether they
want to keep you or not.

------
tomgp
> 4:00pm – 7:00pm Dinner with wife & friends

Do people really eat dinner at this time on the weekend? What about on
weekdays; you have 30 mins to 'hang out with wife' then it's meditation and
algorithm practice till bed time? A little depressing.

------
introvert0
Apologies in advance for being harsh, but are you a member in order of your
state association of engineers, did you pass the FE exam?, was your school
accredited to grant engineering diplomas?

If the answer is not, please do not call yourself engineer

~~~
ardit33
That’s not how software engineering works....

I am glad we don’t have to have “certifications” by some bureaucratic local
agency to work.

~~~
introvert0
You do realize you make a disservice to those who studied and worked hard to
obtain a proper engineering degree, right?

~~~
username90
Firstly software engineer is not a protected title in most of the world.

Secondly the major way to properly learn proper software engineering is to
join a top company and learn on the job. I don't see software engineering
degrees containing anything useful at all compared to computer science
degrees, they just contain some ancient practices which most of the industry
moved past ages ago. So I don't really see how someone who studied software
engineering at school is more of a software engineer than a person who designs
and builds distributed systems at Google.

