Why Working at Google Is Not My Dream Job (Anymore)
I had to sign several NDAs with Google and I am honestly too lazy to check what I can and cannot disclose. In light of that, I'll keep this vague and hopefully avoid getting sued (fingers-crossed).
I still remember being in high school and reading about how amazing it was to work at Google. About how amazing their free cafeterias were, their company gyms, massage chairs, and on-site laundry machines. Not to mention the brightly colored walls and hip decorations, which were a stark contrast to Intel where I interned. Conan O’Brien once compared Intel's offices to a parking garage, and complimented them on their excellent design choice to match the grey trim with the grey walls. When I was in university, and I learned more about the ground breaking projects Google had, the brilliant people they employed, and the amazing resources they provided their engineers, I knew that Google was a company I wanted to work for. What computer science undergraduate didn't dream of working at Google? To work at the same company with brilliant minds like Guido van Rossum, Leonard Kleinrock, and Ken Thompson? But in college, after two phone interviews I was rejected from a summer internship, and turned down for a full time position after another three phone interviews.
But not too long ago I interviewed with Google again. The entire experience, from first e-mail to final phone call stretched from the end of November to the beginning of April. I passed the phone interviews and the on-site interviews, all of which were arduous but not unmanageable.
After finding out I passed the interviews, and Google finished doing my background check, I spent the next two months on an emotional roller-coaster. I spoke to a couple hiring mangers, exchanged many confused and angry emails with friends and colleagues at Google, and had numerous phone calls with my recruiter, whose tone ranged from apologetic to congratulatory. At various times, I was not entirely sure if I was fully rejected, or if the only thing standing between me and a formal job offer was some paper work. Many phone calls with the recruiter (who was very kind and helpful) were required for clarification, but did little to assuage my annoyance as she was not allowed to explain any of the inner workings of the hiring process. As the weeks dragged on I received job offers from two other companies, so I gave the Google recruiter a deadline and the inscrutable bureaucracy missed it with all the grace of a three-legged elephant.
I am not overly found of interviews. They can be difficult and uncomfortable and require me taking time off from my current job, and getting my chain jerked around does nothing to help improve the situation. I was contacted by another Google recruiter two months back, who asked me if I was interested in the exciting new job opportunity she had (I wasn't, my current job is more interesting). The caveat was that I would have to do some more interviews. I was surprised to discover that although working at Google has been my dream job for many years, I turned down this opportunity with no difficulty whatsoever. The time and the trouble involved just didn't seem worth it anymore. While I still believe Google is doing great things, there are also other companies in the industry doing groundbreaking work, many of whom can reach a decision over an applicant in three months or less.
The problem is not the fault of the excellent people that Google employs, but rather the creaking, rambling structure of their hiring process. Why is the whole process so obfuscated? Why are they doing background checks and calling references before they are even close to being ready to make an offer? Why is some arbitrary committee rejecting a candidate at the eleventh hour after everything else has been approved? Why does the rain fall from up-above? How many licks does it take to get to the center of a tootsie pop?
These are questions that us non-Googlers (non-ooglers? nono-oglers?) may never know the answer to. But we can take solace in the fact that the Silicon Valley is a big place with many wonderful opportunities. And hey, I hear Facebook is hiring
(EDIT: see hackernews discussion)
Why I Hate Remote Working
(Because titles with broad, sweeping statements (that may not actually totally reflect the author's opinion) are wonderful at garnering attention... So maybe read all the way through before deciding to lambaste me?)
I work in the Silicon Valley and my team works with people scattered across America, Singapore, Israel, and India. A terrific feat, that without technologies like desktop sharing, VoIP, and IM would be virtually impossible. Many tech companies support and even encourage remote workers these days. And why shouldn't they? It allows the company to hire the best engineers around the world without having to worry about providing a physical space for the engineers to work out of.
But communicating with people that are 12 hours ahead of you is hard. At 9 PM in California, it's 9:30 AM in India. So by the time that 9 PM meeting is done, it's 10 PM (or 1 AM(!) on the east coast), just enough time to talk "off-line" to individual people, wrap up loose ends, and go to sleep. You'll try to share the pain, alternating who has to take the late night meeting, so that everyone only loses one night a week. But things don't always work out according to plan. People are busy or sick, so meetings get moved, and then the management bureaucracy rears it's head and suddenly you're spending two or three nights a week in meetings.
Do you need some help from your co-workers that are abroad? Well I hope you enjoy working till 2 AM to accommodate their schedule. Do make sure to load up on coffee before tomorrow's 9 AM meeting.
And you'll especially love dragging yourself to work for your early morning meeting only to find it's been rescheduled (Hey, it was your fault. Maybe you should have checked your e-mails before you drove to work).
Social life? What's that? Maybe you'll make the mistake of going out with friends and accidentally miss your 8 PM meeting, much to the displeasure of your manager(s).
So now that I've raised your ire and piqued your interest, I can afford to be a little more reasonable. I do in fact work quite a lot, but it is not a 24/7 lifeless schedule. I have no trouble working with people in the midwest or the east coast; the time difference is not so substantial to be a burden. I've on occasion worked from home, or some other remote location and found it to be fairly easy and enjoyable.
This is not my attempt to publicly flame my company or deride my co-workers or managers. I actually like my company and enjoy the people I work with, but like all relationships it often needs work. The idea of remote workers working closely together as a team is relatively new to this world and difficult to pull off. They are plenty of success stories (just look at the open source community), but also many stories more like mine. I do not believe we created this globally distributed team without fully considering it's implication or the strain it would place on the engineers, and now that we're knee deep into it, happiness and normalcy is a long slog away.
TLDR: Long distance relationships are hard work. Make sure you've considered the challenges and set guidelines before you jump feet first into it.
College Career Fairs for Engineers
We all know the career fair drill, you push your way through a mass of humanity to stand in line for a company that you hope will offer you a job. After five or ten minutes of waiting, you finally get to yell at an engineer over the din of hundreds for a few minutes, barely enough time to introduce yourself, get asked a few questions, and maybe even ask a few questions yourself. Hardly enough time to make a lasting impression. I attended a few college career fairs earlier this year while recruiting for my company, and throughout the process I realized that a vast number of students were completely misusing their oppertunities at the fairs.
Now, college career fairs present a fantastic opportunity for students. Whereas applying to a job online simply places your name into a bucket with dozens, if not hundreds, or even thousands of faceless applicants, a career fair allows students to cut through the HR and automated resume screener bullsh*t and immediately talk directly with a real life engineer, thereby allowing the student to show off their skills and express their interests. The importance of this opportunity cannot be overstated.
When I was a student, I had a few companies start scheduling me for interviews on the spot when I impressed their engineers at the fair. Now this isn't my company's style, but for a few people, I've scribbled on the back of their resumes phrases such as, "AWESOME, HIRE HIM NOW," and "AMAZING!!." I can assure you those resumes went to the top of the list.
The World’s Most Interesting Intern
And just like that, we return from an incredibly long four month hiatus, something this blog has never seen before...
Guess I'm a little late to the party, but I figure that its still worth talking about. Throughout the summer, Cisco Systems intern Greg Justice has been releasing a bunch of videos where he claims to be the world's most interesting intern, and surprisingly, he's managed to gain a remarkable amount of popularity and even inspired numerous video responses. I don't know Greg personally, but like him, I too am a Cisco summer intern at the San Jose campus (along with a few hundred others). Here's a few of his videos:
- http://blogs.cisco.com/news/comments/i_am_the_worlds_most_interesting_intern/ (this was the first one)
- http://www.youtube.com/watch?v=TphCCh5iuTU
- http://www.youtube.com/watch?v=MKZk7Xlhvsk&feature=channel
- http://www.youtube.com/watch?v=-87j7xWJUdw&feature=channel
Quite frankly, I'm amazed that he's managed to garner so much attention, since his videos aren't exactly gut-busting hilarious, but rather, just simply amusing. But of course, lamer things have somehow managed to gain more popularity on the inter-webs (I'm looking at you double-rainbow-man). I'm not going to make a case that I'm the world's most interesting intern (I know I'm not) but as my internship at Cisco draws to a close, I figure it might be worthwhile to at least mention some of my experiences this summer.
The work has been intellectually interesting, which is more then I can say for some of my previous internship experiences, and I'm happy to say that I was not relegated to the post of code monkey, although I did pump out a fair bit of code. Whether or not I made a positive contribution to the company as a whole, I cannot truly say, since some of the aspects of the product I'm working on are not set in stone and if product specs change again my make may have to be discarded. Overall the work environment is fairly nice, the other engineers highly intelligent and helpful, and the management friendly and unobtrusive, so I cannot complain about this summer. My greatest fear, as a software engineer, is to be left in an uninspiring occupation, banging out unoriginal code for rarely used and uninteresting programs. I fear that I may become an out-source-able code monkey. It is often felt that large companies, like Cisco, that have literally buildings filled with engineers, are often prone to relegate their engineers to excruciatingly boring and tedious code-monkey-like tasks, and treating them like cheap, interchangeable workers in a factory. But I'm happy to say that this was not the case for me. So high-fives all around...
Also, might I just say, that the laptops they gave us interns (not to keep of course), are insanely powerful. Which is a little odd considering that we do almost all our development work on the servers, which are even more powerful.
One Last Try
I hate comparing other blogs to mine, because the conclusion I'm bound to reach is almost inevitably the same almost-painful answer. The problem is twofold: firstly, I'm not a very good writer and I never was, and secondly, I have almost nothing to write about.
Now the first problem I can live with, I will never be an amazing writer and it is not my goal to become one; I can live with being passably decent (being mediocre is something that college has introduced me to). But the second issue bothers me. And I wonder sometimes if its because my life is so monumentally boring that I have absolutely nothing exciting to write about, or if its merely that I'm incapable of turning mundane events into something that others might find interesting (like some bloggers are able to do). (I do so hope that it is the latter, because that would seem to imply that I'm not a total loser.) I tried over the summer, to keep a brief daily log of what was going on in my life, and it didn't take me long to realize that the only thing duller then my daily logs is a grocery list. But what the hey, I'm going to try again to write about my life, and see what happens again. So here goes:
About two weeks ago, one of my suitemates discovered the amazingness that is Heroes, and so after he finished with his midterms, he sat down with another of my suitemates and watched all of the first season of Heroes in one day, all twenty-three episodes (each one about 45 minutes long). Now if only our study habits were that good... But of course my roommate and I couldn't ignore the television extravaganza that was going on in our living room, and so by the next day we had watched two episodes and were hooked. My roommate and I finished the last episode of season one two days ago (and what a terrible and unsatisfying conclusion it was; they should have just shot Peter in the head, he would have healed anyways) and we've vowed not to start on season two until finals for this quarter are over. It remains to be seen of course, whether or not we'll be able to hold to our vows.
I managed to get an internship earlier this quarter, and though I enjoy it, its only another testament to my loser-ness. No other engineer that I know of, besides myself of course, has an unpaid internship, (companies are always looking to hire good engineers and engineers tend to be in short supply, so most companies are willing to fork over large sums of money to hire undergraduate engineers). But of course, I managed to find myself an internship at an internet startup that doesn't have the money to pay its interns, and I took the position because it seems that at the rate things are progressing, no other company is bound to hire me. On the plus side, I actually enjoy my internship position (as compared to some of my previous positions), I only have to go to the office once a week at the very most, and I get to polish up on my Ruby skills. With some luck, I may be able to turn this into a paying gig, although I think that would first require that the startup start making some money first. I spent a good chunk of time this weekend putting some work into knocking together some Ruby code, and was able to produce a new class for fetching and performing operations on e-mails using POP3. Since our web application will occasionally send a user a new e-mail (for forgotten passwords, registration confirmations, etc), I had to have a way to test if the e-mails were coming through OK. So I wrote a class that would grab an e-mail from some arbitrary e-mail account, find the newest e-mail matching a subject line, scan it to check its OK, and then extract the pertinent URL from the message body and follow it. It wasn't a very long class, but the regular expressions took me absolutely forever since I've never been much of a regex expert. I've also been writing a class that will extract data from a CSV file and then return the values from each line as an array.
We're using Selenium RC at work to do our unit testing of the web application, and although I think Selenium is pretty awesome, I've found it to be pretty freakin' slow. One very simple test cases, with only a few button clicks, assertions, and wait-for-page-to-loads, took about eleven seconds to run. Considering that we're going to be dumping over a hundred different sets of data into the CSV files for the test scenarios, running a whole series of test cases is going to be my new favorite excuse for slacking off. The biggest bottlenecks right now, appear to be the setup and tear-down times since Selenium has to start and stop Firefox for every new test case, the amount of time it takes to fetch a new e-mail using POP3, and the page refresh-times.
One of my friends is on the school's triathlon team, and recently proposed that I should join. I thought at first that our triathlon team does the full-out "Ironman" triathlon with a 26ish mile run, 113 mile bike-ride, and similarly long swim, and I immediately threw the idea out as ridiculous. But as it turns out, our school does a ridiculously short version of the triathlon that is more of an all-out sprint then anything else (seriously, their run is what I do every other night for my brief work-out). Its something that I could imagine myself being able to complete without too much of a problem, but I doubt that I'd be able to sprint that long. Of course I'd need a real racing bike first, something that isn't a twenty year-old chromoly steel mountain bike with friction shifters and a knocking headset.
Oh, and I've just checked my enrollment times for classes and have found that my second-pass is today at 4:30, and I have no idea what classes I should take. Woot.
(I guess this wasn't too bad of a write-up, certainly it couldn't be called an instant sleep-inducer for every living person.)