Hacker News new | ask | show | jobs
by Youden 1459 days ago
I think what most people miss is that a FAANG doesn't recruit for a specialized role. When you interview, you're not interviewing to be a full-stack developer for some web application, you're interviewing to be a generalist who might work on anything from embedded code in some smart home device to datacenter resource provisioning.

The FAANGs give you these weird tests because they're not really checking your programming ability so much as your general problem-solving ability, because problem-solving is the biggest part of what you're being hired for, code is just how you write down your solutions.

6 comments

> I think what most people miss is that a FAANG doesn't recruit for a specialized role.

I know this is false of Apple, for example.

> a generalist who might work on anything from embedded code in some smart home device to datacenter resource provisioning

Is this a real occurrence from your experience or just a hypothetical figment of your imagination?

> Is this a real occurrence from your experience or just a hypothetical figment of your imagination?

I have worked as an SRE bringing up and down services in data centers, as a SWE I've designed an instruction set for a VM and implemented an interpreter, written browser attestation code in JavaScript, did some consulting about 3D rendering with OpenGL for an internal prototype, and I'm currently writing web components for YouTube, all of this at Google. Hopefully that's close enough?

I don't have knowledge of Apple.

> Is this a real occurrence from your experience or just a hypothetical figment of your imagination?

I don't know of anybody executing this specific change but I do have first-hand knowledge of it being possible, it's not just a contrived imagining pulled from my arse.

> I do have first-hand knowledge of it being possible

What do you mean by possible?

The difference between possible and actual is actually what determines whether it's a contrived imagining.

Are you looking for examples of people who have made such substantial transitions within a single span of employment, or are you skeptical that people can have such a span of experience at all?
I am skeptical that a BigCo employer, who has thousands of engineers to choose from and countless more who could be hired, would move an engineer from embedded code in some smart home device to datacenter resource provisioning. It feels like the management equivalent of roulette.
The perspective at Google was that people would interview for Google as a whole. You weren't interviewing for any particular job, any specific group, or any specific technology; you were interviewing to become a Googler. From there you would be assigned to whatever available job seemed most suitable.

It was not an expectation that you would transfer between such dissimilar areas, but that you could - that a successful hire could be given any problem, in any part of the company, and find a way to get useful work done there. Thus there was no point wasting interview time on questions about specific tools or frameworks: what's relevant is your ability to solve engineering problems.

I did in fact know someone at Google who went from some kind of big-data map-reduce oriented thing to an embedded device project. (Long time ago, details are hazy.) It wasn't "management roulette", he just wanted to work on something different, so he did.

I myself had been doing bare-metal embedded systems firmware before I went to work at Google, but the project I got assigned to work on was Millwheel, a large-scale streaming data processor framework. shrug

I don't know if you're being deliberately obtuse or argumentative.

It's not about transitioning between skillsets now, it's about future proofing.

I went from doing corporate enterprise applications on Windows NT to embedded systems when the PocketPC came out. Mobile computers didn't exist when I interviewed but because I was a generalist they had confidence that I could pick up the manuals and figure it out.

Note - I didn't work for FAANG because F and N didn't exist and A was a bookstore and G was a search engine :)

The problem is many of these leetcode tests can be practiced - whether it’s spotting repeated problem structures or simply recycling questions. As a result they don’t really test problem solving ability but how much effort went into prep work. This makes it a really poor signal.
I actually see a worse problem than that. The idea of the leetcode interview is that you give someone an extremely hard problem and hope they solve it in 30 minutes. But the problem is much too difficult for any nontrivial number of candidates to solve it themselves in 30 minutes, so the intent of the process is that the candidate draws the answer out of the interviewer, who has prepared it in advance.

Then they're graded on how much help they appeared to need. But this grading is hopelessly contaminated by candidates' varying levels of charm and ability in cold reading. Cold reading isn't the skill companies want to test for, but it's the skill they actually are testing for. If you want to evaluate the candidates objectively, the goal would be to minimize interaction with the interviewer, not emphasize it.

TIL:[0]

> Cold reading is a set of techniques used by mentalists, psychics, fortune-tellers, and mediums. Without prior knowledge, a practiced cold-reader can quickly obtain a great deal of information by analyzing the person's body language, age, clothing or fashion, hairstyle, gender, sexual orientation, religion, ethnicity, level of education, manner of speech, place of origin, etc. during a line of questioning. Cold readings commonly employ high-probability guesses, quickly picking up on signals as to whether their guesses are in the right direction or not, then emphasizing and reinforcing chance connections and quickly moving on from missed guesses. Psychologists believe that this appears to work because of the Forer effect[1] and due to confirmation biases within people.

[0]: https://en.wikipedia.org/wiki/Cold_reading

[1]: https://en.wikipedia.org/wiki/Barnum_effect

> many of these leetcode tests can be practiced (...) This makes it a really poor signal

It signals dedication/motivation at the very least.

It seems the people complaining are people who can't leetcode and, for some reason, won't practice. But why?

You either can leetcode, and it's all good, or you can't, and you should simply practice.

People who can't be bothered to practice leetcode for a couple of weeks to get past the tech interview, probably don't want the job enough.

I’m actually quite good at leetcode (or so I like to think). The reason people are annoyed is that they must jump through hoops for something that is a poor signal of job performance so it feels like a waste of time.
Two weeks is not enough even to read something like https://www.amazon.com/Dynamic-Programming-Coding-Interviews... unless you are already unemployed. Also, some of us have practiced actually writing software for the last 20 years. And in my limited spare time I'd rather study something useful.

The world is full of people who have passed leetcode puzzles. But to this day somehow I see more JSON over HTTP than gRPC in the wild. Or developers (or is it their managers?) saying that Scala is too complicated. Comments in the code? Meaningful README files? Even descriptive commit messages are less common than HN would make you believe.

Can you give an example of a leetcode test that can be "practiced"? I assume you actually mean "memorized" since leetcode tests are meant to be used for practice.
Meta hires for a specific profile like ML specialist, ML generalist, SRE, backend engineer, mobile developer, ... Apple hires for specific teams with often a specialized role as well.
Amazon and AWS both hire for specific roles and teams. Additionally. so does Microsoft. I was contacted by them in the last few weeks.
Everyone knows why the companies think they need to do it this way.

“False negatives better than false positives”

“Need general set of skills”

That has nothing to do with their implementation being wrong and batshit crazy.

How about they go back to the whiteboard and think of something else.

>>“False negatives better than false positives”

Nice idea, but doesn't work with underlying constraints. Nobody has infinite time and resources to interview and hire people. What that means is the more 'False Negatives' you do, less resources you have to hire 'True Positives'. Not just this, at this point you are inevitably likely to hire more 'False Positives' than 'True Positives'.

In fact the stated strategy seems to work, if and only if you are hiring 1 - 2 candidates for some very special positions. Otherwise its a bad strategy.

Netflix interview process was not like this at all. They don’t hire generalists (at least in the past)
That's incorrect. You interview for a specific role, and if you fail the interview you're done. No matter the promise they'll "look for other roles for you".
It depends on the FAANG. In my experience:

Amazon hires for a specific team lead.

Google hires for a specific manager (one level higher than lead).

Facebook hires for a specific office. Boot camp is for team placement.

I don’t know about Apple or Netflix.

Of course, if you have very specific skills, you might get hired to a specific project, etc.