and welcome back with your host 2x
Google X Facebook tech lead and today
we're going to be talking about what
nobody tells you about the software
engineering interviews and this is
coming from me someone who has conducted
over 100 interviews over at Google so I
see a lot of misinformation out there
and people making so many mistakes some
people think that all you need is leaked
code and you just do a whole bunch of
leak code questions and I'll get you
going well that's not quite true I have
a colleague actually who did like 400
lead code questions he was very good at
these white boarding questions but his
communication skills were total garbage
and I knew from the outset he would not
land any job offers given his current
attitude which was very arrogant his
communication style and you know sure
enough you were now interviewed it
didn't land a single offer out there
even though I'm sure he aced all of
those leaked code questions so this is
the first thing to know a lot of junior
engineers think that that white boarding
coding practice is all that they need to
ace the interviews just do 400 Leto's
questions and you're good if you know
breadth-first search that first search
recursion your data structures hash
tables stacks and queues then they'll
get you going and that's just not how it
works because usually within the first
one to two minutes of midian candidate I
already know whether I would be giving
the candidate a recommendation to move
forward or a rejection because the fact
is the interview process is very humid
it is not objective and you can either
have me on your site or against you I
could be giving you all sorts of hints
giving the benefit of the doubt giving
you the easier questions and just
rooting for you through the whole
process
or I could be against you trying to make
you fail give you very difficult
questions not giving you a single hint
making the question intentionally as
ambiguous as possible so in fact here's
how it works you know how they say
within the first 5 10 seconds of meeting
someone you already know whether you
like somebody or not well that does not
change for interviews as well so you
need to make yourself presentable and I
already have an idea in my head after I
talk to you for say 10 15 minutes and
hear about your backstory I already know
with say 90% certainty whether I'm going
to move you for it or not and while I
have not even asked you your little leet
code coding question the decisions
already pretty much been made now at
this point I just want to get rid of you
I have like 30 more minutes to burn so
what I really do is I just try and
preoccupy you with a coding question I
just throw something your way and the
real purpose of this is
I can just go and check my phone and
read read it or check my email because
I'm pretty much done talking with you
and I just don't know how to burn the
rest of the time meanwhile the candidate
thinks that at this point the interview
has actually begun this is when the real
work starts
they ace the coding question and still
they get completely rejected because of
entirely other reasons
life's tough isn't it but you need to
know that when people are evaluating you
they're evaluating your ability to
become a senior engineer what does it
take to become a senior engineer well
coding ability alone gets you to say l4
which is not senior that's like standard
software engineer in order to become a
senior engineer or at least to show that
potential you need to show leadership
qualities ability to tackle complexity
and bagheera the teamwork skills
collaboration skills communication
skills friendliness charm enthusiasm
passion for learning and in fact passion
for learning is a big one actually
because when you think about it when I
give you a coding question I'm not
interested in hearing you regurgitate or
memorize solution actually what I want
to know is your process for reaching a
solution because oftentimes in actual
software engineering there's no
predefined solution you have to work
towards that and that processing
reaching that solution often requires a
lot of analysis balancing trade-offs
discussing alternatives teamwork
collaboration accepting feedback and I
want to see that process occur as you're
coming up with the solution so if I give
you a question
I want to know how you reach the answer
not if you can reach the answer if you
reach the answer you just answer a
single question yes or no yes you've got
the answer if you tell me how you
reached it the way you trade off time
and space how you present alternative
solutions thoughtfully discuss the
algorithm and come up with an actual
solution that entire process is actually
what is far more interesting and by the
way this is what we teach over in our
program detect interview procom where we
will fast-track you into a top-tier tech
company so we've got this whole
interview training program with a
private Facebook community group
students are helping each other out
I do bi-weekly live Q&A so answer
questions if you're interested check it
out a Tech interview procom now speaking
of that another ticket
there was a posted intergroup where
somebody went to an Amazon interview and
then the interviewer was late for like
20 minutes
they finally show up and then they
do the interview with half the time
allotted and the person fails because
they just don't have enough time to
finish the problem and this actually
happens and then you know they're trying
to work with the recruiter and the
recruiter is not really responding so
I've seen mishaps like this where
through NOFA of the candidate their
chances of passing are just dramatically
reduced for example there's no
whiteboard markers and then people spend
like 10 minutes looking for good markers
the wrong resume could be printed or
perhaps somebody just forgot to print it
all together and then people are going
through the interview just winging it
without really knowing the candidates
background or school or education and
then they're wasting a bunch of time
going over just these basic details like
which school did you go to where did you
work previously so for me if I go into
an interview I will actually bring my
own backpack my own markers my own
eraser backup resumes that aren't the
most up-to-date such that everything
goes as smoothly as possible and we
waste as little time as we can on all
the other random stuff that could get
into the way because at the end of the
day you are going to be the one being
held accountable the interviewers they
don't care nobody cares about your
performance as much as you do now if
you're an American you may not be aware
but American schools are actually
terrible and if you were to take a look
at the international candidates coming
out of say India China their whiteboard
coding performance is stellar like they
are really good and they can blow out so
many other people so a lot of the
international candidates they're just
willing to work harder and longer to
attain that American dream they will do
a thousand Li to code questions for
example and yet as an interviewer I come
across these people and many still do
not pass for other reasons besides just
coding ability
perhaps one of the top reasons is
ambiguity so if all you know is test
taking ability and you can just answer a
whole bunch of questions about data
structures and algorithms and yet you
don't really know how to apply them
given a ambiguous question where I don't
even give you the method signature I
don't tell you what the inputs and
outputs are what the data format is
going to look like and I've heard this
from colleagues interviewers will
sometimes intentionally give you a very
vague ambiguous question just to see how
you can tackle that just to try to throw
you off like that so the ability to
tackle ambiguity is actually one of the
performance actually that you are being
graded on another one is time efficiency
and it's not even that it is actually
about practicality so I remember
over our Facebook there's this question
about quickselect
and you can approach this problem in the
number of ways you could do brute force
you go to create a heap or you can even
implement the partitioning algorithm now
the problem is that this partitioning
algorithm it is the most optimal format
but it is quite difficult to write it
takes way too much time and actually
what will happen is if you try to solve
it in this most optimal manner you may
not be able to solve it within the time
given what interviewers really want is
for you to use the less optimal approach
and say using a heap and then to just
quickly mention like hey yeah there's
also this other more optimal algorithm
quick select with partitioning but we're
not gonna do that that just seems a
little bit way too complicated let's
just do the simpler heap algorithm that
can be written much quicker so it's this
ability to recognize practicality and
simplicity over say always coming up
with the most optimal time efficient
algorithm and it could be the simplest
algorithm that you can actually write
given your deadlines of about 30 minutes
now most interviewers will actually know
the answers to the questions that
they're asking but occasionally there
will be interviewers who they just ask
some random question each time and they
like to work through the problem with
the candidate so you can see that it
becomes extremely annoying when the
candidate begins asking questions like
is this the right answer how about this
how does this sound is this good what do
you think about this do you think that's
the most optimal I think that the most
optimal is dynamic programming but I'm
not sure if I should do that yet should
I approach with this should I proceed is
this okay and the problem here is this
is not how co-workers work together it
is more about being collaborative and
having that teamwork ability not really
asking for permission to move forward
with something but to discuss the
alternatives and solutions and reach a
consensus together and by the way
sometimes the interviewer may not even
want to collaborate with you they just
want to see you approach the problem as
if you were on your own that's kind of
the approach I would do especially if it
seems like the candidate is quite strong
and it seems like they can pretty much
do it on their own that I rather just
see what they can do and the fact
sometimes candidates surprise me with a
completely new and the interesting
answer or a different way of approaching
a problem and then they get bonus points
for that because they actually surprised
me and one-up me in my own head and one
more tip here too many people especially
junior engineers they think they're
being evaluated for their past
experiences whereas actually they're
being evaluated for their four
potential especially to be able to learn
and execute on the project so it's not
really about coming up with a laundry
list of all of your prior
accomplishments in some other technology
that simply cannot be applied through
the current role so it's not about the
what it's more about the how because
whatever you accomplished was probably
not very important anyway but I want to
know how you were able to accomplish
that were you able to teach yourself new
languages bringing your passion explore
new technologies work with other people
share your teamwork and collaboration
skills and just bring that enthusiasm to
learn technical curiosity and teamwork
skills in order to accomplish a project
if you can show that that I think you
will be golden before even the
whiteboarding portion starts you will
have me on your side I would be rooting
for you giving you as many hints as I
can to make sure that this whole
whiteboard encoding question goes as
smoothly as possible that's it you still
need to be good at that menu Jr attended
this will fair at this portion you still
have to get that right because if you
fail at that then even I can't help you
so still make sure that you're doing
other preparation and grinding on delete
code questions just know that there's
much more to it than that so they'll do
for me but let me know what some of your
uncommon interview tips may be if you
like the video give it a like and
subscribe and I'll see you next time
thanks