Monday, June 11, 2012

Google Interview

I've always read about Google's constant pursuit of hiring unique individuals, but it wasn't until my senior year that I decided to look into entry-level job opportunities in IT at their headquarters in Mountain View, California. I decided to do some research online and it wasn't long before I found out about the Internal Technology Residency Program, short ITRP, for recent college graduates. Responsibilities of Internal Technology Residents include end-user support, troubleshooting, network administration, system administration (across many different platforms, incl. Linux, Mac OS, and Windows), security engineering, software development, and a few others that I'm too lazy to list. What Google is looking for are IT generalists. Not only do applicants have to be well-rounded and know a little bit of everything. It seems like they have to know everything about everything. 


San Jose - View from plane
I applied to the ITRProgram in early April and immediately heard back from a recruiter asking me to provide more information about my course work. A week from that I received an email from a recruiter asking me about my availability for a phone interview. The phone interview involved a lot of technical questions and also a few questions regarding my resume. Anything you put on your resume is fair play so expect to elaborate on your work experience and academic achievements. Unfortunately, I'm not allowed to share the interview questions with others. However, I will tell you what some of the areas of interest were. The first portion of the phone interview dealt with network administration and malware, all in the area of end-user support and trouble shooting. Since there isn't always one right answer for the question, the interviewer wants you to think loud. He was more interested in my approach and the way I analyze the problem than a single sentence answer. When talking about malware you have to be able to go beyond the obvious. That is, if the interviewer describes the behavior of a particular process and if that process's behavior resembles that of malware, don't just say "I would solve the problem by running malware-bytes or ad-aware". He would want you to dig much deeper than that and the shorter of an answer you give him, the more of a reason he has to give you negative feedback. The second portion of the phone interview involved role play. In my case, the interviewer assumed the role of a Google employee that has some issues with his computer and I am to solve those issues. Again, I can only give you an idea of what was asked of me. In order to solve the role play problem I had to rely on my knowledge about DNS servers and the TCP/IP stack. I didn't know the answer to all questions. Out of 5 questions, I was able to answer 4. The one questions I wasn't able to answer dealt with WDS.

The Grand's free limo service
About two weeks after the phone interview I heard back from my recruiter and was invited to an onsite interview at Google in Mountain View, CA. Google will provide recruits with the plane ticket, a rental car, a hotel room, and reimbursement of expenses that have incurred during the trip. 
For those who don't feel like driving, the hotel provides a free limo service. What's so amazing about that is that you fly in the day before the interview and you don't have to leave until one day after the interview which gives you plenty of time to explore the SF Bay area. The onsite interview was exhausting to say the least, though I've been through much worse. I remember interviewing with a company that invited me to a total of 4 onsite interviews and 3 of them involved completing a programming task which took about 4 hours each (yea tell me about it... and I still didn't get hired...). 

One of the many Google signs
On the day of the onsite interview I was scheduled for three 45 minute interviews. During those interviews I was bombarded with technical questions. The first interview started off slow with a few general questions. However, during none of the interviews did the managers discuss my resume in much detail. I was thoroughly quizzed on the OSI model and the individual layers, the DoD model and how it compares to the OSI model, network and system administration including the TCP/IP protocol stack, how DNS and DHCP servers work and how they can be manipulated, and encapsulation. 

Korean BBQ a la Google
After the first two interviews I was granted a one hour lunch break before the third and last interview. I was escorted by a current ITR. The food was really good. I had Korean BBQ and freshly pressed grape fruit juice. There is no sweet tea in Cali. If you ask for sweet tea you're gonna have to settle for Nestle Raspberry juice at the best. After eating lavishly I was ready for another round of brain frying. My last interview was the hardest because I was quizzed on material directly from CompTIA Network+ study guides. I was asked three questions over the course of 45 minutes and by the end of each answer the interviewer gave me the impression that I merely scratched the surface of the problem. Some of the problems were so hard that the interviewer had to actually reference the study guide whenever he provided me with the correct/complete answer to the questions (not gonna lie here, I was a little disappointed in the interviewer). If you don't know the answer off the top of your head, maybe you shouldn't ask the question in the first place. Anyway, the areas of importance during the last interview were more encapsulation, even more TCP/IP, heuristics and hash functions, and more malware. 

AT&T Park
Overall, I had a good time. I got a chance to travel to Cali and visit SF when they were hosting the Rangers. I also realized that the evenings in Cali get super cold so pack accordingly.
I'm sure what most people want to know is how to prepare for the interview at Google. This advice that I am about to give concerns iIT students at the University of South Carolina, since I'm not familiar with other curricula.  This is what I did to prepare for the interview and I can't say that I wasn't well prepared, even though I haven't received any feedback yet.



Important technical areas:
  1. Network Administration
    1. Physical network topologies, backbones, and segments
    2. The OSI model (especially the bottom 4 layers)
      1. Know at what layers common network devices, such as routers, hubs, and switches operate and know the difference between each device
    3. Encapsulation
      1. The conversion process (i.e. user information -> data -> segments -> datagrams (w/ logical address in header -> frames -> bits (w/ digital encoding/clocking scheme)
    4. Wiring standards
      1. Ethernet categories (CATx)
      2. Half duplex vs. full duplex (with reference to twisted pair cables)
      3. Carrier Sense Multiple Access with Collision Detection (CSMA/CD)
        1. what devices are collision resistant? (e.g. switch vs. hub vs. router)
      4. Ethernet addressing using MAC addresses 
      5. Know the format" N<Signaling>X (e.g. 10BaseT where 10 tells us the transmission speed and T stands for twisted pair)
    5. Be familiar with all networking devices
    6. Internet Protocol
      1. TCP vs UDP (e.g. TCP is connection oriented communication while UDP is connection less, etc...)
      2. Know default ports (e.g. SMTP 25, HTTP 80, FTP 20 21,...)
    7. I can give you a 99% guarantee that you will be asked to explain the functions of:
      1. TCP
      2. UDP
      3. TCP/IP suite
      4. DHCP
      5. DNS
      6. HTTP/s
      7. And maybe also telnet, ARP, SSH, IMAP, POP3, SMTP, ...
    8. Troubleshooting!!! Know how to troubleshoot and recognize malware! This is crucial and requires experience. For example, know about hash functions, how to read the checksum or MD5 hashes of files and how to remove malware that recreates itself and uses a different checksum every time it spreads (which makes it virtually impossible for an anti-virus program to catch the virus based on the definition file)
    9. Linux system administration
    10. MAC OS system administration
    11. Windows system administration
    12. LDAP queries and scripting
Also, if you put any programming experience on your resume, expect to be quizzed on that as well. 


No comments:

Post a Comment