Commit 5f5a3e18 authored by Kirk Lange's avatar Kirk Lange

Posted 'From Zero to Google'

parent 8f42b8dc
Pipeline #45824714 passed with stage
in 1 minute and 22 seconds
---
published: true
layout: post
title: From Zero to Google
date: 2019-01-31 17:00
author: Kirk Lange
summary: How I went from zero internships to a full-time job offer from Google.
categories: essays
thumbnail: fas fa-briefcase
redditurl:
twitterurl:
tags:
- google
- career
- resume
- leetcode
- reddit
- amazon
---
My biggest takeaway from what has happened to me this past year-and-a-half is
that <a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a>-style
technical interviews are not something one can be naturally good at. Regardless
of how impressive your GPA is and how many years of hobbyist coding experience
you have under your belt, you’re going to need to grind at least a little bit of
<a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a>
and read through
<a target="_blank" href="https://www.amazon.com/dp/0984782850/">CTCI</a>
in order to ace that next interview. If you remember only one thing from this
essay I want it to be this, that technical interviewing is its own distinct
skill.
# Internship Attempt
I had no idea what I was doing while applying for summer 2018 internships during
the 2017-2018 academic year. My summer 2017 on-campus research and at the time
eight years of hobbyist video game programming experience made me overconfident.
As a result, I applied to too few places, less than ten, in fact, of which I
only heard back from two: Exact Sciences and Amazon. I did just fine in the
Exact Science non-technical phone interview, but overconfidence overcame me yet
again; I sent the usual thank you email right after the phone interview was
over, but I never emailed them back asking for an update because I decided to
take my chances and wait until after my phone interview with Amazon which was
set to take place the following month. And what did I do to prepare for my
Amazon technical phone interview? Nothing more than skim through
<a target="_blank" href="https://www.amazon.com/dp/0984782850/">CTCI</a>
just days before the call.
At the end of the interview my interviewer asked if I had any questions. I asked
something along the lines of what are some good ways for undergrad students like
me to prepare for internships at these big companies. He said that I should gain
some experience by doing coding projects outside the classroom. I was
self-taught from 5th to 12th grade. Programming *is* my out-of-class hobby...
In desperation, I emailed my Exact Sciences recruiter to see if I could still
move forward with them. The position had been filled. I continued to send my
resume out to a few places here and there, but as May emerged over the horizon,
the prospect of being “self-employed” became evermore certain.
# "Self-Employment"
As much as I would have liked to have an internship and as crushing as my Amazon
interviewer’s comment was earlier that year, I must admit that up to that point
those summer months of 2018 were some of the best of my life. I had three full
months all to myself. I could read whatever books I wanted and work on whatever
projects I wanted. I confess to not having had the greatest discipline, I wasn’t
clocking in full 40+ hours of coding per week until August, but as the title of
this essay gives away, that was just enough for me to make the grade.
I had the crucial choice at the beginning of my summer to either expand the
breadth or depth of my skill set. I could either learn new technologies like
ReactJS, Node.js, Unity Game Engine, etc., or I could dive deeper into C, C++,
OOP, and scripting. I ended up choosing the latter because I figured that would
give me the best chance of creating an impressive, resume-worthy project by the
end of the summer since I already knew a fair amount about those topics. This
ended up being the best decision I have ever made since I was able to create the
<a target="_blank" href="http://ezaf.io">EzAF</a>
suite of projects that went on to impress my Google and Synopsys interviewers.
Of all the programming books I read over that summer, the one I owe the most to
is
<a target="_blank" href="https://www.amazon.com/dp/0123850037/">*API Design for C++*</a>
by Martin Reddy. Read through that book and my code for
<a target="_blank" href="http://ezgl.ezaf.io">EzGL</a>
and you’ll see the correlation!
# Round Two
In preparing for my full-time 2019 applications, I have
<a target="_blank" href="https://www.reddit.com/r/cscareerquestions/">r/cscareerquestions</a>
to thank. Although reading too much of that subreddit leads one to self-doubt,
what I did learn was worth it at the end. The weekly resume threads were
especially helpful. It was very enlightening seeing how others similar or more
advanced than me were writing their resumes, and to my surprise, when I posted
my own resume drafts, I got a good amount of constructive feedback. This is
where I was introduced to the
<a target="_blank" href="https://github.com/deedy/Deedy-Resume">Deedy Resume</a>,
a resume template tailored to undergraduate computer science majors. Also in
this subreddit was where I was introduced to the infamous
<a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a>
grind”. While I never did anymore than about fifty-or-so problems over the
course of a couple months, I felt like I did do enough such that I got a handle
on the most common “idioms” as I like to call them, that is, categories of
solution such as sliding window, tree traversal, 1D dynamic programming, 2D
dynamic programming, sorting, etc. The way I see it, the less
<a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a> or
other interview practice you do, the more you are relying on chance to get an
interview question that you are comfortable with. The more interview practice
you do, the wider of a range of questions you will be more comfortable with and
thus be more likely to ace whatever the interviewer throws at you. I must also
say that doing mock whiteboard interview practices with another person is
invaluable. Getting to test your code on
<a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a>
is one thing, but having to write syntactically correct, error-free C++ code on
a whiteboard is a whole other game. For this, I would recommend asking a CS
friend or professor to pretend to be your interviewer giving you
<a target="_blank" href="https://leetcode.com/problemset/all/">LeetCode</a>-style
questions.
Now more knowledgeable and better prepared than last year, it was time for me to
solicit my resume. I applied to about twenty companies across a wider range of
fields and locations than last year. Yes, I should have applied to more, but I
received responses from a few companies relatively quickly and was busying
myself preparing for their interviews rather than applying to even more places.
I heard back from ten of them, five of which said no to my resume (including
Booz Allen and King Digital Entertainment), the other five of which moved me
forward through the application process. Of those five, I didn’t pass two of
their technical phone interviews and/or online coding tests (Stevens Capital
Management and Amazon), and the remaining three I went on to do on-site
interviews and receive offers (Epic Systems, Google, and Synopsys).
# Closing Thoughts
This essay is not a guide on how to get into Google. Do neither as I say nor as
I do. There are definitely better and less risky paths towards receiving an
offer from a Big-N than what I have taken. This is just my account of how I
miraculously went from having zero internships to a full-time job offer from
Google.
Lastly, don’t forget what I told you at the top of this essay: technical
interviewing is its own distinct skill.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment