
Ask HN: Senior Positions Interview Prep Resources? - scalar-moose
Hello,<p>Context:
- Dev with 10+ years of experience
- Last 2 years in an architect role with technical leadership responsibilities
- Planning to apply for senior roles at FAANMG<p>Question: 
I am fairly good at solving system design and scenario based questions, but I am  confused about what resources to use to prepare for whiteboard&#x2F;programming questions (not 100% sure if these are relevant at senior level?). Below is the list of resources I was suggested:<p>1. Cracking the Coding Interview
2. Elements of Programming Interviews
3. Online Judge - LeetCode, HackerRank etc.<p>I have used cracking the coding interview for my interviews right out of school, but I was told that it is not relevant anymore and I should focus on Elements of Programing Interviews.<p>Same with Online Judge, I was told to use an online judge (LeetCode, HackerRank) over books.
======
JMTQp8lwXL
There are companies that will pay near FANG levels (maybe 10-15% haircut)
without subjecting yourself to onerous completion of hundreds of LeetCode
problems. There are other options, and we should be aware of them. You'll
still need to prove you can code, but the questions we ask have practical
application to our codebases: we use recursion and trees, for example, so we
ask questions about those.

Other companies will treat you as more of a human, and less as a cog. In my
current job, I asked to see production code when interviewing. I flipped over
every stone I could, to know what I was getting into. I saw the good and the
bad. FANGs? You must prove yourself to gatekeepers before even knowing if
there are teams with personalities you will agree with. You have no guarantee
there's something on the other side of the gatekeepers, that you're even
remotely interested in.

Money is important, but for a small haircut you can have better WLB, less
competitive peers (though still be growing in your career: you can challenge
yourself, without being surrounded by hyper-competitive personality types),
amazing culture, and a greater level of transparency.

~~~
bradleyjg
levels.fyi is currently showing $466k median offer total comp for L6 (staff
SWE) at google. Who is paying $395k-$420k to IC hires without FAANG style
interviews? The only other companies paying that to IC hires that I know of
are in the financial industry and that interview process is even worse.

~~~
C1sc0cat
What is a L6 in real world terms? where would they fit on the GS scale (I may
or may not) be applying for a GS15 equivalent in the UK Grade 7 or maybe 6

It would be interesting to see where that fits in a FANG context

~~~
username90
Salary wise GS-15 would be around L3 (junior).

Responsibility wise GS-15 looks to be around L5 based on how many engineers
have achieved it (I assume those earning $140k+ are GS-15):

[https://www.federalpay.org/employees/occupations/computer-
sc...](https://www.federalpay.org/employees/occupations/computer-science)

[https://www.federalpay.org/employees/occupations/general-
eng...](https://www.federalpay.org/employees/occupations/general-engineering)

~~~
C1sc0cat
Interesting I was thinking in terms of responsibility / social status not
purely salary :-) GS 15 is a full colonel

------
rvz
You are on the right track in terms of preparing for a FAANMG-level interview.
But it pains me to say that this just only meets the bare-minimum that they
are looking for as in to prove that you can 'program' as the other thousands
more candidates will be applying too.

What you need to differentiate yourself is to learn the undocumented dark arts
for whiteboard interviews that the FAANMG are really looking for in a
technical interview.

Firstly, [0] explains where these data structures are used in Computer Science
and should be a start on implementing them and understanding their
complexities and use-cases. The rest from [1 - 4] goes straight into the
advanced details of areas like competitive-programming which will give you
explanations and clever solutions which are better than the typical DS and
algorithm answers that even the interviewers will suggest.

Some of these resources might even give a walkthrough of a proof of these
complexities if you really need to convince the interviewer who wants to
rigorously test your understanding.

[0] - [https://cstheory.stackexchange.com/questions/19759/core-
algo...](https://cstheory.stackexchange.com/questions/19759/core-algorithms-
deployed/19773#19773)

[1] -
[http://courses.csail.mit.edu/6.851/](http://courses.csail.mit.edu/6.851/)

[2] -
[http://jeffe.cs.illinois.edu/teaching/algorithms/](http://jeffe.cs.illinois.edu/teaching/algorithms/)

[3] - [http://cp-algorithms.com/](http://cp-algorithms.com/)

[4] -
[https://concatenative.org/wiki/view/Exotic%20Data%20Structur...](https://concatenative.org/wiki/view/Exotic%20Data%20Structures)

If you really don't know where to start, you can search and pick a specific
topic here to study it in depth: [https://github.com/jwasham/coding-interview-
university](https://github.com/jwasham/coding-interview-university)

Personally, If I were preparing for a FAANMG interview, I would contribute to
widely known open-source projects that utilise these concepts such as
compilers like LLVM, Rust or V8 and operating systems.

~~~
CaveTech
You can’t be serious. It’s not that hard.

~~~
peferron
Not sure why you're being downvoted. It's definitely not that hard, and
contributing to LLVM/Rust/V8 is not a requirement either (I would still
recommend it, but mostly because it sounds interesting and you would likely
learn a lot).

Source: interviewed with 3 FANGs a few months ago without any significant
open-source contributions, got L6 or equivalent offers from all 3. I also
don't have a CS degree, for anyone who would feel discouraged by that.

Edit: I don't want to minimize the effort involved, though—I did spend a lot
of time learning algorithms and data structures over the years, but I enjoy
learning this stuff and find it far more relevant in practice than most people
here appear to think.

~~~
chrisseaton
When I interviewed at Google they told me to come back when I had more open
source contributions. I already had hundreds of thousands of lines in a
prominent open source systems project at the time, so they must really want a
lot.

The hiring bar at these places is pretty astronomical. Realistically it’s
going to be well out of reach for a majority of even the very best programmers
in the world.

~~~
username90
In my experience the resume screen is a lot tougher if you want to work for
them outside the US due to very low supply per demand.

~~~
notacoward
It also depends on the level you're interviewing for. If you're shooting for a
mid-level or even semi-senior role, that's very different than if you're
shooting for a "has industry-wide impact" kind of role. In the latter case
claims of prior impact will be carefully scrutinized to weed out poseurs and
liars.

~~~
chrisseaton
Yeah, it was only a new-grad, entry-level position, and they still wanted a
huge volume of open source contributions. I don't know how most people would
achieve it - mine were from internships and they still weren't enough.

~~~
peferron
Sounds insane. Based on our two experiences it seems like the requirements can
change a lot. Hopefully if you apply again in a few years they won't require
that anymore, but it's hard to say without knowing what are the factors that
pushed them to require that in the first place.

------
jackraven
For background, I work currently at one of the FAANMGs and I have spent around
20 years in the industry. I actively interview candidates and I have had
offers from 4 of the FAANMGs not too long ago. My experience is that the
preparation required varies. It depends whether you are interviewing as a
general SWE or pre-slotted. If you are pre-slotted, one or more interviews
tend to be specific to your domain and skills. You do need to know Big-Oh
notation, trees, BFS/DFS and such standard stuff at most of the places; but
how much the interviewer go to basic CS theory tend to vary based on your
domain and years of experience.

For example, as an interviewer I often ask computer architecture/operating
system questions as that’s what someone coming in, slotted into my team,
needs.

In general, a lot of coding questions tend to be pattern matching and how fast
you recognize the algorithm/data structure required to solve it. Before going
in as a candidate, I did 50-60 leetcode puzzles and a bit of Elements of
Programming Interviews. I also interviewed at many places for FAANMG
readiness.

All said and done, the biggest factor in interviews is luck - from getting a
good interviewer to getting a problem that you can easily identify/enjoy
solving. All the preparation stuff is just to hone your skills. More you’ve
seen going in, the better.

Best of luck!

------
akoumis
Leetcode premium -> do all the problems for the company you are targeting,
sorted by most frequently seen in the last 6 months. Then, you will know what
your weak points are (mine were minimax and disjoint set problems), and you
can go through questions tagged with those topics. Aim to complete at least 60
problems, you should feel fairly comfortable with any Leetcode medium grades,
and DFS implementation. Leetcode hard questions are good challenges which
could expand the way you approach problems, but in my experience, did not show
up much during onsite interviews.

Also, "completing" one problem in the context of the above does not mean being
able to solve it the first time without checking the solution. It means
possibly struggling with the problem for 20 minutes, checking the answer, and
making sure you can do it the next day without looking at the answer. YMMV.

~~~
rabidrat
> Also, "completing" one problem in the context of the above does not mean
> being able to solve it the first time without checking the solution. It
> means possibly struggling with the problem for 20 minutes, checking the
> answer, and making sure you can do it the next day without looking at the
> answer.

Thanks for saying this. I tried leetcode last time I was looking for work and
was thoroughly discouraged. This approach makes a lot of sense for someone
who's been coding for a long time.

------
Ozzie_osman
I know you said you are good at system design, but I'd still recommend you
read Designing Data Intensive Applications book and read through
[https://github.com/donnemartin/system-design-
primer](https://github.com/donnemartin/system-design-primer).

If you do those and cracking the coding interview you should be good to go.

~~~
guiomie
Really cool link. It's satisfying to look at this diagram and it all looks
familiar to me.

------
chrisbentzel
You'd likely be geared for L5 (Senior Engineer) with your described
experience. At that level, there would be expectations that:

\- You have built and can continue to build real software. You should know how
to code fluidly in at least one language, as well as idioms and pitfalls. I
don't think this is something you can cram for - you build up from experience.

\- Able to describe performance or other tradeoffs. This can be in system
architecture down to data structures and small optimizations. If you are rusty
on algorithms, this can be studied for.

\- Be able to do large-scale systems design from a fairly ambiguous problem
statement. Sounds like you've had this experience.

\- Potentially do a deep dive in a technical specialty of yours (ML,
compilers, databases, etc.).

[Note: I haven't been at Google for over a year so this may be rusty, but did
interview lots of candidates while there.]

------
coldcode
As a lead engineer at a non-tech company as least as big as many of the FAANG
companies I am responsible for things that make 8 and 9 figures annually
(mobile), but I never had an interview anything like this here at all, because
I was hired based on personal reputation at a previous employer. I bet I would
fail miserably at these kinds of interviews because I would not prepare in any
way; I know what it takes to ship things in all sorts of ridiculous
circumstances, with too few people and enormous continuous changes under
challenges that you would never see in a big tech company. I am not sure there
is fair way to tell from an interview what I am capable of but my present org
knows what I can do and counts on me doing it every time.

I wonder how many people are missed in interviews who would make a big
contribution to an employer but are lost in the interview process. Often
skills needed for shipping quality applications are likely not visible if
people only focus on raw programming ability. Maybe it's simply too hard to
identify in interview form so everyone just looks at how you write code.

~~~
bump64
I am in the same boat. Got my current job just by reference by people that
know me and I didn't have an interview at all.

On regular basis I am faced with challenging technical problems related to
things that I haven't done before and then with careful research, planning and
execution I solve them and our product is going forward and the company is
growing so I assume we are doing the correct things most of the time.

And then when I hear from friends stories from their interviews I really get
scared that if I apply today I would fail...

------
Technophilis
In addition to the resources others have suggested here I recommend going
through this list of problems that I put together for the coding portion of
FAANG interviews: [https://theinterviewlist.com](https://theinterviewlist.com)

------
6ue7nNMEEbHcM
If I can suggest something - don't neglect physical training. You will need a
lot of endurance (both physical and mental) to go through some of those onsite
interviews. Also take breaks if possible.

As to resources - as many have said earlier - leetcode.com this is basically
the place to go for problems to practice and there is also really great
community. When practicing problems and analyzing answers in the beginning you
will find what kind of topics are important and from there you can find more
details in the textbooks (it's worth doing that). There is some good content
also on Youtube but not all of it is good (despite high number of views and
positive comments).

~~~
mindentropy
> You will need a lot of endurance (both physical and mental) to go through
> some of those onsite interviews.

I have gone through some interviews where it is really grueling and mentally
taxing. What do you suggest to improve endurance especially mental. It becomes
very hard to concentrate on coding after almost 4 hours of interviews.

------
all_usernames
Glassdoor often has good hints.

Whiteboard sessions focused on algorithms and data structures will probably
resemble CS20X college courses.

------
southphillyman
I'm interested in the opposite actually. There seems to be a ton of resources
online for algorithms but what are some good resources for System Design and
scenario based questions? I know of Grok the System Design interview and
that's pretty much it.

------
zerr
And what would be the prep resources for "system design and scenario based
questions"?

~~~
dsirola
Mostly experience

~~~
zerr
The same is declared for algo riddles but that's not the case, similarly.

------
practiceint
There are mock interview sites, like Pramp.com, Gianlo.co,
PracticeCodingInterview.com that all have staff+ FANG interviewers on
rotation. They aren’t cheap, but they’re there.

------
ummonk
Leetcode, interviewing.io

