Noogler Week 1 in New York City

10005919_10104677586780474_3780354682023431956_o

The Boulder office doesn’t provide training, so my first week at Google was spent in New York City where the other half of the Drive team is located. My wife and I decided to go up a few days earlier and see the sights since neither of us had ever been to NY. We saw all of the requisite touristy things and most importantly– we ate at some amazing restaurants: Momafuku Saam Bar, The Spotted Pig, Scarpetta, and Bar Americain. There really is no end to great places to eat in NYC. Here are some of the things I learned while in NY:

  • New Yorkers are generally very nice
  • Walk signals are just a suggestion
  • Every day is trash day
  • Central Park is really awesome
  • If there is a subway car that is conspicuously empty, there is a reason– don’t go in it
  • I hate tourists :-P

We also saw a Broadway show– “Once“. I highly recommend it. Jenny got a couple of the last tickets on sale and she was a little sad because our seats were in the very back. Well, it turned out that we just read it backwards. We were actually in the very front!!!! Amazing!

And then Monday Came…

Jenny left to go home, and I walked the couple of blocks to Google for orientation— or maybe I should say “disorientation”.

Accurate map of the NYC office

Google’s offices encompass several floors of the old NY port authority building– but only parts of the floors. You can only reach certain parts of Google from certain stairs and elevators. Its easy to get turned around and lose orientation. I got lost… a lot.

Orientation was generally pretty standard. We listened to several presentations a day on various topics: from your standard HR topics, to more interesting technical talks on just how various things at Google work– most of which are confidential. I learned a few things that really stuck out.

First, I was surprised by how transparent Google is. Most companies keep things very secret but Google seems to be very open. All developers have access to all source code– well– 99% of it at least. The search ranking algorithms are secret for obvious reasons. Every week there is a company wide meeting where Larry and Sergey present new happenings and accomplishments.

Another thing I learned that I didn’t expect, was just how important user trust and privacy are to Google . They are extremely important pillars. The “Don’t be evil” mantra is taken very seriously. The driving force is to make the world a better place through information and technology.

Last but not least, the most surprising thing: the word “Googley” is used all the time in casual conversation.

The Best Part of Google

If you ask any Googler what the best part of working at Google is… I think they would all say: “The food”. Its absolutely true. The food is amazing. And free of course. The NY office serves breakfast, lunch, and dinner. There are probably a hundred different choices of things to eat and it changes every day. It not like school lunch fare– its pretty damn good food. For lunch one day I had cornish game hen, mixed roasted carrot salad, polenta, and cookies for dessert. Of course, I could have chosen several dozen other things… from freshly made sushi, hamburgers, burritos, etc etc etc. In addition to the cafeterias there are also many micro-kitchens spread out. Each micro-kitchen contains an espresso machine, coffee machine, various snacks, and just about any kind of drink you can imagine. I hear Boulder has an ice cream refrigerator, and the drink fridges are filled with beer.

….I am going to get soooo fat….

Developing at Google

Forget everything you know about writing software in Java. Forget everything you know about version control. Forget all the libraries you love and use.

Google operates at a scale that no other company does. Most of the time it can’t use standard tools or standard libraries because of the insane scale that has to be considered. It has a library or tool for nearly everything. Google does make extensive use of its own open source libraries: Protocol Buffers, Guice, and Guava. One thing I hear from Googlers quite a bit is that they can’t imagine living without the tools, libraries, and platform Google has. I can definitely see how this is true. Things just work.

Drinking from the Firehose

There is so much information, documentation, source code, and tools to pour through– it can be quite overwhelming. There is no way you can know it all. At some point you just have to rely on the magic that’s inside the black box. Everyone I have met at Google has been very helpful and encouraging. Everyone remembers what it was like when they first joined and how overwhelming it can be.

I have learned more in the past week than I have in the past year. Even if a little overwhelmed, its a great feeling. One manager commented on Nooglers: “Most Nooglers come to Google having been used to being the smartest person in the room” to which I replied: “I like being the dumbest person in the room. It drives me to do better.”

Interviewing at Google – Part 2

If you hadn’t read part 1, check it out here: Interviewing at Google – Part 1

It took a couple of weeks for the hiring committee to make its decision, but my recruiter informed me that they were extending an offer. Offer in hand, I had a hard decision in front of me… and my wife. Accepting it would mean leaving Denver and moving to California. My wife and I looked into what it would be like to live there. Housing is insane–we knew it would be expensive. For our money we were expecting “nice but small” not “small and also a shit-hole.”

Looking at photos of houses on Zillow, there was a house with 2 bedrooms, trash strewn about on the floor, dirty bathrooms, stains everywhere on the carpet. I think this house was inhabited by feral children or a lady that owned 600 cats. It was disgusting. It was also— over half a million dollars. Anything that didn’t look like a complete dump was at least an hour away from Google.

I mulled it over for 2 weeks. Each day, I would change my mind on what I wanted to do. On one hand, working at Google represents the symbolic pinnacle of achievement in my industry. On the other hand… working at Qualys is comfortable and relatively easy. Eventually, with the help of my wife, we made the decision. 

I told Google “no”.

Continue reading

Interviewing at Google – Part 1

First Contact

I was contacted by a Google recruiter on my birthday, June 24th, and asked to interview with Google for an opportunity on the SRE team. A few days later I had a phone screen.

The interviewer asked me to rate myself in various languages, linux concepts, and a few other technical aspects between 1-10. A “10” being you wrote a book on the subject… or actually invented the technology. Needless to say, I actually didn’t rate myself higher than a 6 on anything. I honestly didn’t know quite how to rate myself in “Java”. I know a lot about parts of Java, and little about other parts.

The self-rating was to guide the interviewer on what questions to ask next– which I honestly didn’t do that well on. She asked a question— something like how to count the number of 1’s in a binary number— which is a problem straight out of the must-read book I will mention later on. I fumbled my way through it, but it was far from optimal. Also, I should have memorized my powers of 2.

Somehow, I managed to move on to the technical phone interview (wait, this wasn’t technical???). Google has a reputation for having a very difficult interview process. After this slightly shaky phone screen, I was worried about what I was getting into.

Continue reading

Hazeltask is born

I’d like to introduce an open source library I wrote by detailing its genesis: Hazeltask. I will post a more concise technically focused Hazeltask article later, but I would like to document why Hazeltask was created— because I like to hear about the behind the scenes story on things like that :-)

Hazeltask is a general purpose work distribution library. It runs on top of the Hazelcast in-memory data grid. Hazeltask has actually been in use at Qualys for over a year now. It handles running several million tasks a day. There are lots of task execution libraries out there. Even Hazelcast itself implements a distributed ExecutorService. So, why another one? Good Question! Continue reading