The Google Chronicles: Life of a Google Intern (Part 1) March 12, 2011
Posted by adastra271 in Personal, Professional / Academic, Aerospace Engineering, Astronomy, Computer Science, Google Chronicles.trackback
Well, first thing’s first. I know that I have not kept this blog up to date very well (last post was over a year and a half ago!). Journals were never my forte, really. But today I’ve decided to renew this blog. While I do not want to bore the reader with an extensive update of everything that has happened since my last post, there are a certain number of things that deem themselves as somewhat significant in my opinion.
Firstly, starting in January of last year, I became an undergraduate teaching assistant for the computer science department. The CS department at Virginia Tech has a UTA program where undergraduate students can take on the responsibilities of helping students with their course work, including holding office hours, supervising programming labs, and grading homework. Taking my first CS course at VT as a freshman, I was fortunate to have an awesome UTA whom I have since looked up to as sort of a role model. He was kind, humble, and always happy to help. I knew then that I wanted to become a UTA, too. The following semester, I applied and, after waiting a month or so, received the email that I was being offered the position as the UTA for that same course, which is the first course that CS majors must take. Frankly, I was ecstatic; I knew that becoming a TA would be something that was perfect for me. I would go on to TA that course for two semesters, another intro course for non-CS majors during the summer, and have now become the TA for the next course in the sequence for CS majors, which puts emphasis on data structures (my particular interest).
During this time, I have come to realize how passionate I am for teaching. Others have told me many times that I would make a great professor, and I have given it serious consideration. In high school, I would tutor students in math and physics. Now, aside from helping with CS, I am helping others with all the different topics covered in engineering, particularly the engineering science courses — Statics, Dynamics, and Mechanics of Materials. While I have hours of my own work to get done, I always find myself wanting more to help everyone else with their own work. Perhaps this might come back to bite me, but I just can’t help it. But with all that said, there’s still one thing that hinders me from choosing to be a professor — the research. While I love learning and love theory, I just can’t see myself wanting to do research. Perhaps I have the wrong impression, though. At any rate, the plan is currently to go into industry and, maybe, just maybe, I’ll one day decide academia is more my thing.
So onto the next big thing. Since I started as a TA, something inside me started to change in regards to where my passions lie. I originally started at Virginia Tech majoring in Aerospace Engineering and Ocean Engineering with minors in Computer Science, Astronomy, and Math. After a semester or so of back-and-forth debate with myself, I decided that my interest in programming was just too strong and that I should drop the Ocean Engineering major and instead upgrade my CS minor to a major. Then a semester later, I decided to add Engineering Science as a minor. I stuck with this combination for a good amount of time, thinking this was the perfect blend for all of my academic interests. But that’s where I was too right. As I head into my senior year, it has become more apparent that, while aerospace engineering is truly fascinating in theory, as a career, I am at a loss of interest. Over the past six semesters of aerospace classes, I have greatly enjoyed the theory and ended up having a strong aptitude for it, too, even ranking first in one of the hardest classes that aerospace majors have to take (thin-walled structures) and ranking second and fourth among all aerospace engineering majors ranked as academic juniors and seniors, respectively. Unfortunately, this semester I also had to take a three-hour lab. And I hated it. I quickly realized that, despite my love for the theory, I absolutely despised doing the hands-on work. I was soon to learn, too, that these labs were what constituted a majority of the curriculum senior year. I can’t believe I had not realized it sooner: A career in aerospace engineering wasn’t going to be sitting in a classroom; it was going to be sitting in a lab. While I think I knew this in the back of my mind from the start, I believe I was purposely ignoring it for the sake of not wanting to admit that everything I had thought was “me” — this belief that I was to explore the final frontier — was wrong, and that I was not meant to be an aerospace engineer after all. But I could neglect this no longer; I was miserable in that lab. And with only a week before the deadline for dropping classes, I had little time to make the most difficult decision, perhaps, of my life. It’s difficult to describe all that went through my head during that week, but I knew that dropping the aerospace major and upgrading math to a major was the right decision. It would be the decision with least regret, I reasoned. And aside from the reasons mentioned, there was actually one more reason for my somewhat-sudden change of heart, and that brings me to my biggest update.
I’m a Google intern! But let’s back up, first. Funny how all these seemingly separate things can end up forming a giant web of connections. So back when I started as a TA in the spring, I worked alongside one of the graduate TAs. Unknown to me, she was also interning for Google that summer. It was at some point during June as I was taking summer classes that she posted something on Facebook regarding her project at Google. Of course I had to comment and, in the process, jokingly ask that she put in a good word for me. Little to my expectations, I received a message from her later that day asking if I would like for her to give me an employee referral. It had never crossed my mind — working for Google, that is. All this time, I had seen myself as working in the aerospace field, never thinking that I could find myself working for a company such as Google, Microsoft, etc. But suddenly it was as if someone had removed the box that I had so haphazardly put myself in. And so began the process of becoming a Google intern, and consequently the process of me realizing that computer science was my true passion after all.
In early August, I began to make progress in the interview process. I first received an email informing me that I had been given an employee referral and, upon acknowledging my interest in being considered as a software engineering intern, received a phone call from the university programs staff in which to learn a little more about me. I was then requested to send my resume and transcripts and told that someone would be contacting me in the fall to follow up. Months went by before anything happened. During this time, I actually ended up interviewing with three other companies — NASA Wallops, Microsoft, and Optimal Satcom. I received offers from NASA and Optimal Satcom, though I ended up turning down the offer from NASA on account of them not being able to “officially” offer me the internship until Congress approved of the budget. It was a bit disconcerting holding out for Google knowing very well that my chances were slim. (Honestly, I thought of this as practice knowing that I was most likely not going to get an offer from a company that hires only the brightest of the bright.) But luckily I had that Microsoft interview, too, which I completely bombed. In my defense, insomnia hit the night before and I had two exam before the interview. My brain and mouth simply could not function. I do not doubt for a moment, however, that this experience was the biggest reason I did as well as I did when Google called me for my interviews, then no longer a programming interview virgin. And so that brings me to those. Finally, right before my finals in December, I received the email from Google that they would like to set up the interviews. And so I was to have two 45-minute phone interviews on January 10 from two of Google’s very own engineers. (Talk about pressure!) That gave me about twenty days to prepare, and prepare I did. At the recommendation of one of my good friends, I purchased Programming Interviews Exposed, which I highly recommend to anyone going into a programming interview. Along with some other resources, I conditioned myself for that fateful day, creating mock-interviews in my head over and over again, sometimes even at the penalty of my all-too-frequent insomnia nights.
And on that night before the interview, it’s not surprising insomnia would strike at its fiercest. Thankfully, though, I was able not to let that get in the way. I made myself a cup of coffee, looked over my books one last time, and waited until the hour arrived. I sat with the phone lying on the table before me, just waiting to jolt for it when that screen lit up. But strangely, it never happened. It was 1:00, time for the first interview, and, nothing. I began to get worried. At first I thought perhaps there was no signal. After quickly checking to make sure there was, I worried that perhaps I did my math incorrectly when adding the three hours from Pacific Time. After checking my math for the fifth time, I thought that perhaps they just forgot about me. It was already fifteen minutes past the hour and now I was really worried. But then it happened — the phone rang. I answered to hear the lady on the other end inform me that there had been some miscommunication on her end and that she would like to reschedule the interview for later that day. Whew. At least the problem wasn’t on my end. So we rescheduled the interview for a couple hours later, but I was still not off the hook for the second interview that was supposed to occur right after this first one. So the process repeated: phone on table, me staring, waiting. Unlike the first time, however, this guy was right on time. And so the true interviews began.
We started off with just the usual small talk. The first thing he mentioned was my double major in aerospace engineering. Turns out that he was a chemical engineer himself. (Score!) He then inquired as to what my hobbies and interests were, where I was in the CS curriculum, and other stuff like that. I told him that I was greatly interested in data structures, and that’s where he shifted to the technical questions. While I can’t give any further details due to the non-disclosure agreement, I must say I found his questions to be highly interesting and enjoyable. And each answer warranted an algorithmic analysis. After he was satisfied with my solutions, he asked me about what projects I’ve done, and I went on to talk about my geographic information system I had created in my Data Structures and Algorithms course that past summer. I made sure to emphasis the point-region quadtree, which was one of the fundamental data structures involved. I could tell that he was highly interested in this data structure as he, himself, had never heard of it. Thus, I was able to teach him a thing or two about it. (Score, again!) And in what seemed like a flash, time was up. After hanging up, I was highly satisfied with how I had done. But round two was just around the corner, and this time she was not late. Unlike the first guy, she spared no time for small talk and instead dove right in with her technical question. While the first guy was more interested in how I would design, this engineer was more interested in my problem solving abilities. Her question seemed more brain teaser-esque, but ended up boiling down to a core CS/math algorithm for which I had to code up the solution. And upon her satisfaction, the interview was complete. All that was left was waiting to get the result.
I thought I would have to wait for a week or so before I’d hear anything back from my recruiter (who I have to say seems more like a friend whom you are emailing back and forth than a recruiter), but I got the email the very next morning. “We would like to thank you for taking the time to interview with us for a Software Engineering Internship position. I have good news for you. Your phone interviews went well and we will be moving forward with the next step.” I was in absolute disbelief. Granted, I thought I had done pretty well, but just to see those words before me — amazing. I was told that my information would be shared with potential teams and that I would be notified if a strong match is found. Only ten days later, I received the news from my recruiter that a host matching interview had been scheduled. The project was front-end social, using Java, HTML/CSS, and JavaScript. While I did not have the leisure to focus on preparing like I had with the last two interviews, I was able to skim my books in between classes during the day of the interview.
And then it was time once again. I sat nervously in my room, this time with my roommate sitting just mere feet away, and picked up the phone as it first rang. This time I was first told all about the project for which I was being interviewed. Admittedly, I was so nervous about the whole thing that I didn’t really take it much that she was saying. I heard what I wanted to hear, though, and that was all that was needed. After finishing that up, it was technical question time. This time it was sort of a mix between the first two interviews. Since this was a host matching interview, it was only expected that I’d be asked a question relating to the project, and this time I had to use the entire interview time to discuss and code up a solution for just one design, successively adding more difficult additions to the scenario. I was able to quickly come up with a design for the initial problem. The solutions for the next part was not so readily at mind, though. I had to really think about all the data structures I’d come across and how appropriate they would be for the situation. Astonishingly, I remembered a data structure that I had only come across from brisk Wikipedia hopping this last summer. It would be perfect! Amazing how that one thing I remembered looking at for ten seconds would be of use in this very instant. Not apparent otherwise, she seemed quite satisfied with this solution. And that is true luck, I must say! I coded up the solution and that was that. (Usually this is done via Google Docs, but for some reason the session was not set up and I had to read my code over the phone.) Again with the part where I ask the questions and then it was done. While I was not feeling as good about this interview as I had with my last two, I still felt pretty confident in how I had done. I quickly Google’d (funny now when I use that in regular vocabulary) the question she had given me and, looking at several forum posts for such a problem, found out that the design I had suggested was the optimal solution. Looks like it’s not just the searching with Google that makes me “feel lucky”.
The host matching interview was over and now I waited once again. I thought that this was only to be the first of several interviews from the team, but I was pleasantly surprised to find out otherwise in the next couple of days. “Great news! Your host interview with Irene went well and we would like to move forward with the next steps. I’ll start preparing the offer paperwork for approval and should be able to get back to you in the next few days.” They were the words I never thought I’d see. Offer. Was this truly happening? Was I truly being offered a position as a Google intern? I can’t say I’ve ever felt more like I was flying.
So a month later, paperwork filled out and everything, I’m readying myself for an internship in Mountain View, CA, with Google. Crazy. And so I thought this would be as good a time as any to revive my blog and share the experiences yet to come with all who wish to follow me. I cannot begin to describe how excited I am to start, but I know there’s still plenty to get through ’til then. For one, I now have to start looking for a place to live and hopefully find a roommate as well. Honestly, this is a bit more stressful than I imagined. I’m guessing that my next post will most likely be involving that step in the process. But that’s for another day.
Well, it’s almost 5:00 am now and I should really be getting some sleep before the trip back to VT in the afternoon (it was spring break this week). I apologize for the extremely long post, but hopefully everyone is now caught up to speed on my life, for the most part anyway. I assure you that my posts in the future will hardly compare in length. Cheers!
I know this feeling quit well, I ve passed through the same story 1-month ago.. but I applied to this summer internship by April! I know it was late and I missed the deadline but I had another plan for summer and then changed suddenly !! so, I got the reply and interviews were scheduled in 12-days, and since it was our spring break, I had just 10-days to prepare!.. I am a master student,in Computer Science & Engineering- American University in cairo.. and as usual after breaks we return with alot of grading work added to my courses work and projects.. I was very stressed before the interviews but after the 1st one, I became much better.. I was very happy and excited after both interviews.. I felt I did well, especially that the 1st interviewer used to give me feedbacks.. like, that’s good or pretty good.. but a couple of days after interviews, I got the reply, telling me, that they unfortunately, can’t find a project I can work on this summer, and they would like to keep in contact and recommending fall instead.. fall is best! or alternatively, if I will be graduated( as I told them I may be graduated this summer ), they suggest me a full time position, but there will be another round of interviews in this case.. 1st, I got disapointed little.. and I thought it is a kind of nice rejection !.. so, I replied on them with some more questions around fall internship, and they replied me a couple of days later, that it supposed not to enter another interviews for fall internship but it may be, in case the recruiter decides.. I hope a great and successful summer intership for you :) enjoy :)