Two months ago I wrote about some of the struggles I faced looking for a job in tech as a coding bootcamp graduate. I was amazed by some of the responses. Some found it reassuring and inspiring. Others… well, let’s just say that some others were less than encouraging, to put it mildly.
In response to my statement that I was recruited by Google, one software engineer commented that Google must have spammed my inbox, and that there was no way that I would be invited to interview there in person. Even if I was, he argued, I wouldn’t have the first clue about how to solve the interview questions.
Anyone who knows me knows that I like a good challenge. So I contacted the recruiter from Google and scheduled a date to interview. They were willing to let me skip the technical phone interview and invited me to interview onsite in New York City at a date of my choice. Me, a bootcamp grad. Game on .
One of the criticisms of coding bootcamps is that they don’t place a strong emphasis on learning algorithms and data structures. This is where I must admit that, alas, my bootcamp education did not prepare me to solve graphing equations or to balance binary trees. What it did do was foster a love for coding and building projects. If you ask me to spin up a responsive website or mobile app, I can do it fairly well. But as for solving these types of problems, I was very inexperienced.
I set out to tackle this challenge head on. I compiled a list of books that would help me learn algorithms and coding interview questions — primarily Cracking the Coding Interview by Gayle Laakmann McDowell and Algorithms by Robert Sedgewick. However, all of the resources I found were written in Java, a programming language I did not use day-to-day and had not formally studied.
Finally, the day of the interview arrived. I felt good about the progress I had made, but still nervous. At Google’s Chelsea office I was greeted by my recruiter and escorted to a small room where the interviews would take place. In total, I was interviewed by five Google employees. In each one, I was given a technical problem and asked to whiteboard my solution. If I reached a satisfactory answer, I was often asked to improve the efficiency of my solution. Each interview was around 45 minutes long, with a few minutes at the end of each one to ask questions of the interviewer.
How did I do? Some of the interviews felt like a breeze, while others were a struggle. I was able to find a solution for all of the problems I was given, though some weren’t the most optimal. I also found that some interviewers made me feel relaxed while others had a more critical approach that made me close up a bit.
Was it a success? Well, if you’re wondering if I was offered a job, the answer is no. I received the news a week and a half later from my recruiter. After the usual explanation that it was a “close call”, I asked what I could have done better and was told that I needed to be more consistent.
Despite the final rejection, I still feel good about the progress I made and in my performance, given the short amount of training time. If I was able to do this well after a month or so of learning algorithms, think about how much more confident I will be after a year!
I also feel good about the impact of this experiment on my day-to-day work. I am able to reason more easily about runtime efficiency for both client-side and server-side code, and I am certain it has had a positive effect on my work. I am also able to feel more at home in team discussions focusing on our back-end services.
All in all, interviewing at Google was a great experience and an eye-opener. It showed me where I need to grow and what I’ve already achieved in this past year. And honestly, even if Google had extended an offer I’m not sure I would have accepted, since I work at an amazing company where every day is exciting.
Follow @tomgoldenberg on Twitter.
Author of mobile development tutorial www.buildreactnative.com