Tags: sydney |
Posted by
Admin on
7/31/2008 2:54 PM |
Comments (0)
Read previous part I and part II.
The reception area was, predictably, decorated in Google’s funky
decor: from the multicoloured chairs you weren’t exactly sure how to
sit on, to the lava lamps churning away in Google’s colours. Behind the
receptionist on the wall was a giant Google logo and projected over the
top was a real time scrolling list of searches (apparently unfiltered).
It was an awkward silent moment or two for the receptionist as she
tried to attract my attention by waving her hands in the air and
shouting loudly.
No, not really, but when I was finally able to tear my eyes from the
screen I talked to her and I signed in using the computer which
electronically accepted my signature and printed a little label for me.
Google is an extremely closed company: later my interviewers would
unanimously agree that the worst part about it was not being able to
tell people about the cool things you were working on.
But understandably, the company has a lot to protect. Google don’t
develop new products as much as get people thinking about new ways in
which to use them. Before Gmail a free email provider with 6 Gigs of
capacity was unheard of, now 250 meg is the minimum you can expect
anywhere. Before Google in fact, search was a solved problem…
The Googleplex is less of an office and more of an idea’s factory.
Technology isn’t limited in what you can do: given enough time, money
and creativity you can get there. The real question is where is “there”.
I never got the chance to visit Disneyland as a child, but as a
nerd, visiting Google was close enough. At the time of my interview I
couldn’t even imagine working there - the reputation Google has in the
recruitment department is very intimidating. By the time I was escorted
in through the big glass doors and saw Lars Rasmussen programming away
I’d written of the trip as a holiday, won in a resume raffle of sorts.
At first there was very little to discern that Google was different
from any other office, but then I saw the hammock suspended next to the
windows overlooking Darling Harbour. And the cubicle covered by
camouflage netting. And the free sweets and drinks.
I’d started this quest looking for perks, but had found so much more.
The invisible perk, the one I was most looking forward to - 20%
time, was everywhere. I tried, desperately to grab a glimpse of what
was going on on those workstations. Did I see anything?
No.
I was lead into a meeting room … I can’t remember if it was called
“Denial” or if that was the room next to mine, or if it was simply
something else and I had just imagined that that was it. Regardless,
the room reflected none of the decor visible in the rest of the office.
It was essentially perk free, plain and unimpressive. It did have, to
my dismay, an awful number of whiteboards.
Paint the walls, hang streamers from the ceiling… c’mon Google at least light the area with a lava lamp.
While I spent time waiting there I looked out the gaps in the
frosted windows. People were just working, like they would anywhere
else, they didn’t look happier. The just looked like employees.
Spending 3 weeks reading and watching everything you can about Google
inadvertently sets your mind racing with ideas as to how fantastical
the whole place is. Had the ceiling opened and a giant candy cane
holding Larry or Sergey (or both) descended into my cubicle the place
would have aligned with my expectations. Never-the-less I knew that,
like most Disney classics, the magic was in the air.
I was deep in contemplation about the object oriented loop like
nature of most Loony toons when my interviews actually began. It was a
5 interviews, 45 minutes each back to back.
The structure was simply:
Interviewer introduces them-self
Interviewer asks you questions relating to projects and experience
Interviewer asks you technical questions
You get to ask interviewer questions
While I can’t tell you exactly what was asked, lest I set off
Google’s very smart lawyers (I signed an NDA) I can tell you the gist.
The gist was:
Interview introduces themselves
Me recognises interviewer from video/website/article/research paper
Interviewer asks questions about my previous work
Me feels woefully inadequate as I reply about how I stitched simple things together to something really simple on a small scale.
Interviewer asks technical question
Me racks brain for similar questions, approaches question step by
step, writes gibberish on whiteboard while planning, erase gibberish,
fill newly erased gaps with more gibberish, restart on new section of
while board something that essentially represents my answer.
Interrupted by lack of time
Quickly ask questions while wracking interviewers face for the slightest inkling of how I did.
Write down notes on interview answers.
Interviewer leaves, quickly.
The topics covered were pretty much what I studied, in my five interview they were:
Working with strings and chars, minimal reliance on API, operator overloading, Big O
Sorting, more sorting, sorting under input constraints, Big O
Algorithm puzzle, Big O
Class design and graph theory
problem design, hashtables, XML-RPC (interviewer taught me the basics), interfaces, concurrency, semaphores
I was rejected by a phone call a week later (yesterday), with no
feedback given. But I already knew what I did wrong. My mistakes
included:
Not being able to evaluate (1< 1) - read “is 1 less than 1″.
It’s a surprising result to get “true” when you’re jet lagged and your
brain is running on awestruck and you have someone working from Google
looking over your shoulder at your code.
On one occasion, not listening to the question asked. I was
intimidated by the size of what he had asked me to design (something
robust) and I instead wrote only what was minimal to get the job done
(and grew it as I went).
Not asking for any breaks.
Not eating lunch in any of the breaks that I didnt ask for.
On one occasion even thought I explicitly knew what was going on,
didn’t articulate it correctly - partly because I knew what I was
doing, but didn’t know what I was saying.
Always jumping to the complex efficient solution first and not
knowing how to do it, instead of starting at the naive obvious solution
and working from there.
Not getting to sleep early enough the night before / not practising questions the morning of.
Do these things.
The whole experience was fun. I got a lot out of it, the most
important was: How to remain grounded. I’ve been told by everyone what
a great achievement it is to get that far - all I can do is wish I
could add it to my resume. Maybe I will.
To this day, with no feedback I’m still guessing if I’m just wasting
Google’s time. They urged me to reapply, but then again, they tell that
to everyone. There is a shortage of CS students. Google does
have a high false positive rate. Maybe they just want to see if I will
- a sort of test, you know - to see how committed I am to working with
them.
It was disapppointing but I have a solution.
That solution is: Finish my degree. Go on a holiday. When I get back, I’ll reapply.
Original story
Tags: sydney |
Posted by
Admin on
7/27/2008 2:50 PM |
Comments (0)
Find previous part here.
In my holidays I’d gotten to see some of the fruits of my 35
graduate applications made earlier in the year. The demand is high,
yes, but for skilled labour, not us university grads.
Especially not those who are travelling to Europe for a month, or 8.
Employers love well rounded graduates, as long as they get well rounded
in their own time.
Some graduates, the really well loved ones, actually get an
upfront bonus, free plane tickets and a pat on the ass in return for a
signature on a 2 year contract. Not me though.
When Google emailed regarding a visit to their Sydney headquarters I
was quite pleased with myself. It was like winning a raffle where your
resume is the winning ticket. I estimate that Google Sydney interviews
between 150 - 300 people every year, but the figure could be as high as
1000 after hearing that some employees can interview up to five people
a day. Considering Google (as a whole) gets around 1,000,000 applications a year a reported 99.5% of which are rejected, I wasn’t doing badly at all.
Google have been complaining about the lack of quality computer
science professionals for some time now, especially in Australia where
CS departments are slowly getting absorbed into commerce in the face of
rising costs and lower enrolment figures. Face it, IT is nerdy.
Combine this with growth that has seen the Sydney office double in
size for the last few years and the smile on my silly face just kept
growing and growing. You see: by my mathematics Google must hire at
least 25% of it site interview candidates to grow at the rate it does.
A one in four chance to work for Google isn’t something you should pass
up easily. So I began to study again.
Putting aside the work I’d done so far, I started again. The HR lady actually directed me to the following links:
I highly recommend that you take a look at a very
helpful text book to help you prepare for the in depth questioning as
part of the Tech Phone Screen -
‘The Practice of Programming’ by Brian W. Kernighan (Author), Rob Pike (Author)
Want to know what some sample sets of problems there might be? Check out:
http://steve.yegge.googlepages.com/five-essential-phone-screen-questions
http://steve.yegge.googlepages.com/what-you-need-to-know
http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
You can check out some of our recent projects beyond Google search by
visiting http://labs.google.com and review some of our research publications: http://labs.google.com/papers.html
Visit www.youtube.com/google for more information on the Google recruiting
and hiring process. The video is titled - “Interviewing at Google”
http://au.youtube.com/watch?v=ZxZOpNUN3Ww&feature=PlayList&p=2299EEC65662D7F5&index=0
And one last helpful tool, visit http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index
Please let me know if you have any questions. Good luck preparing!
Good luck indeed. I started by reading the resources and associated
links and kind of parsing the topics to study. The fall into the
following topics:
Programming (Java / C++) - A good understanding plus how to implement the following:
Big O Analysis - How to do it, the order of badness, should be able to look at functions and say order.
Sorting Algorithms - Bubble, Sequential, Insertion, Merge, Quicksort
Data Structures - Arrays, Trees, Hashtables, Vectors, Linked Lists, Queues / Stacks, Maps
Object Oriented Programming - Basic concepts and how they should be implemented in your language
Graph Analysis - Adjacency Matrix, Adjacency List, Dijkstra, A, Bredth First / Depth First Traversal
Operating Systems / Concurrency - Concurrency, Locks, Mutexes, Semaphores, Deadlock and Livelock, Scheduling, Threads
Scripting - Regular Expressions, Grep and other UNIX commands
Probability - N choose K, Independent and dependant events
Problems - Common / Famous problems: Travelling Salesman, Knapsack
Problem, NP Complete problems and their variants. For this The
Algorithm Design Manual recommended by Steve was invaluable, and you
don’t have to buy the book, its online here.
I worked by making a list of these ten topics with sub concepts in
sub lists. I went back to my CS notes from uni where I could, in the
event that I couldn’t find them (or the more probable: they were
destroyed) I used a lot of online resources. A lot of uni’s provide
their material online but as a Java student and applying for a Java
based role I found these lecture notes and these practice questions invaluable because they covered the implementation aspect of the above topics.
Then I read. You name it - if Google was a keyword, I read it. Whenever I got tired of studying the concepts I read about peoples experiences and various tips, I read (and worked) practice questions, more practice questions and what not to do and more practice questions.
In my breaks (breakfast, lunch, dinner) I watched video’s from the
Google channel. After revising for the Google Interview I found this particularly interesting viewing.
Then I began everything again, this time programming on a piece of
paper. You’d be surprised at how different programming is without a
compiler. Things like “for loops” just dont look the same written on
paper as typed on a computer screen. The IDE no longer helps you out,
there’s no bracket matching or syntax highlighting to cover your ass.
It’s strange - believe me, the last place you want to be learning this
is in the interview.
I flew into Sydney the day before the interview, the 5 hour flight
was useful to revise things. Remember to bring more than just material
to revise though, after the interview, on the flight back the last
thing you want to be doing is reading through that stuff. Take off and
landing (when electrical items have to be switched off and stowed) are
great times to read through those research articles.
A word of advice. A particularly obvious interview question leapt
out at me from one of the research papers I was reading. “How does
Google work?”. It’s probably a good idea to have at least a vague
understanding of this, you know, before you apply to work there.
The taxi driver was a software engineer, or at least studying to
become one. He said he’d applied for Google as well. As nice as the guy
was the whole experience didn’t instil me with confidence.
It was shortly after this the paranoia began to set in. I don’t know
exactly how much it had to do with the taxi driver being a programmer
but it occurred to me that if Google could afford to spend around a
grand flying me here and putting me up for the night, that the could
sure as hell afford to pay some security consultant / HR psychological
profiler $50 an hour to watch my every move for the time I was in
Sydney.
The improvement in my behaviour was remarkable, from that point
onward I became the model child my parents always wanted me to be.
Turning off lights when I left the room, cleaning behind my ears,
watching the news, being outwardly curious - even outdoorsy. Elements
that, to some degree, follow me to this day (6 days after the
interview).
I checked into my hotel, fantastic views but not overly extravagant,
functional. Had dinner in darling harbour and went through a final
checklist before bed:
1. Have questions to ask, don’t be afraid to write them down - it
shows you’ve thought ahead. I prepared a fair few. I tried to ration
these out among my five interviewers.
2. Have a list of possible projects you’d like to work on. In
addition to this tell them your ideas for Google. Tell them what annoys
you about Google, but do some research into why its done that way (in
case they have a valid and important reason that you’ve overlooked). If
you’re not sure, you can kill birds 1 and 2 by posing this as a
question.
Wasn’t sure what to do with a King size bed. Seriously, are there people who need this much freedom while unconscious?
.gallery {
margin: auto;
}
.gallery-item {
float: left;
margin-top: 10px;
text-align: center;
width: 33%; }
.gallery img {
border: 2px solid #cfcfcf;
}
.gallery-caption {
margin-left: 0;
}
In the morning I decided to take a look around Sydney. I visited the
Harbour Bridge and the Opera House on a morning run through the city. I
wanted to think that if this interview went to shit, I would still be
able to say I got a free trip to visit the Google offices in Sydney,
which is still a pretty good consolation prize.
I watched the news to ensure I was up to date with current affairs.
Ate breakfast at the hotel restaurant while reading Larry and Sergey’s
paper on Google. At 10.00 I checked out and began the walk next door to
the Google Offices.
Original story
I’ve been making an attempt to be
environmentally-friendly/green/eco-responsible recently, whatever you
call it. I’ve been driving better, exercising and studying in my free
time. The self improvement isn’t due to increased social
responsibility, self esteem or motivation. Its not peer opinion and
isn’t even financially driven.
It’s because Google is watching me.
Don’t get me wrong, I’m not a big polluter - quite the opposite
really. But when you try to evaluate whether its worth flushing a
urinal that’s already leaking, or if watching the tv or using the
computer is a bigger expenditure of electricity, especially when your
laptop was charged on the other side of the country where electricity
is produced through fossil fuels. Similarly, is driving safer on the
left, behind another car or on the empty right lane, despite signs that
say “Keep left when not overtaking”.
It all started, ironically, when I applied for a job at Chevron. I
got through the extensive screening process down to the round where
they show you where they work and put you through those psychological
screeners and in a room with 10 other potential candidates in a “group
discussion” where they look for leadership abilities. This later
evaluation, if you ask me, is purely designed to initiate confrontation
- a “Jerry Springer” of the recruitment world. Never-the-less I
persisted and was very positive about the prospects for my new job as
an IT Analyst in Chevron. Why wouldn’t I be? Of the other candidates I
was the only one with any significant experience, a double degree and I
was locally based. I don’t even think I interviewed that badly - quite
the opposite, I saw some raised eyebrows and smiles at my answers.
So it was a big surprise when I got rejected. Huge. I was distraught
actually, I kept racking my brain as to why - eventually it dawned on
me: the perks. Talk about naive graduate, but the though of a company
that evaluates your workstation (I’m talking about computer, hardware,
software, desk, chair, footrest, couch and any other office furniture)
on a quarterly basis for ergonomics, aesthetics, fit and just
plain if you liked it or not. This was in addition to the massages,
bonuses and safety bonuses. Having never worked in a big company
before, it was evident that economies of scale are very beneficial when
it comes to employee perks.
What then? I promptly applied to Google. It was my personal “up yours” at Chevron.
That’s not a perk, mate….. This is a perk.
- Crocodile Dundee (or something like that).
At first it was a joke. No, really, I’ve heard how difficult it is to get into Google. Just look here.
They hire the best (?) and they hire quickly. The company is 9 years
old and doubling in size on a yearly basis. If ever there was proof that
There no such thing as a free lunch.
its Google.
I was contacted a few days later by the Google Australia HR lady by
email to organise a time for a phone interview. I didn’t really give it
much thought, but had I known the statistics, I probably would’ve
thought about preparing for a bit more. I’m no people person, but I
know how to talk about myself well, so usually when I get talking to
someone I’m not surprised when things proceed from there. In the first
phone interview I felt everything going according to that old
recruiting rhythm. Its easy to be positive about your degree and your
experience when everything you’ve done is stuff you really enjoy and
are passionate about. It was allllll good.
Right up until she told me that we were about to arrive at the
technical component of the phone screen. I panicked. It’s been a long
time since I did Java, C++ is not my strongest suit. I was asked
questions such as:
“What’s the order of a function that iterates through an array?” and
“Whats the difference between a class and object?” and “What’s the
difference between final and finally?” and “What does the static
keyword do?” - and few others. I answered in plain gibberish. One of my
own responses I struggled to gauge. She only corrected me twice, which
I interpreted to mean that she was only telling me the answers which
weren’t blatantly wrong. Her opinion of me must have been positive
enough to warrant scheduling the actual technical interview though.
I asked her to delay it to the following week. After exams finished,
I hit the books like crazy - I prep-ed for the Google technical phone
interview like another exam. I started googling for interview questions
and I hit a pack of brainteasers.
Which ever moron put the title Google Interview questions on those
brainteasers wasted me a lot of time, cause I never, ever, came across
any of those in the whole interview process. I’m quite certain that the
whole “Google Interview Questions” title was just appended to some
computery type puzzles in an attempt to make light how difficult the
process was going to be. They were pretty fun though.
I studied for 2 weeks on the concepts that were fuzzy to me, using
Steve Yegges posts as a guide. The HR lady had kindly sent these to me
and they did nothing to boost my initial opinion that if I got to that
stage that I would just “wing it”.
The fact of the matter was that Google was the cheese, I was the
mouse and the interview process was a maze, no - a gauntlet. Ok start
again, Google was the virgin princess, I was the black knight -
I figured out what my answers to the initial phone screen’s
interview questions ment in real world terms (gibberish) and calculated
how lucky I must have been to get by that day. Then I figured out what
the answers should have actually been, what hash tables were and when I
learned what they do, I went back and relearned Java.
I studied data structures and Java to kingdom come. I roughly
figured out Big-O analysis and I even took a quick peak at regular
expressions, graph theory. My old lecture notes would’ve come in handy
if they weren’t in ashes due to my annual note-burning festival. I
found copies of my lectures online, read through them all.
Then I started coding again. And had to relearn all the concepts
again of-course. I started from the basics. Everything came back
quickly enough, I love that I had paid enough attention in lectures to
understand what was going on. I’d have been screwed otherwise.By the
day of the big phone interview I’d gotten to a level where I could
comfortably code things. Probably the level I should have gotten up to
before my initial phone screen - or the level I should’ve started
studying at.
I imagined the recruiter writing notes to the interviewer: “Just
scraped in… show no mercy.” or “He’s funny when he talks about Big-O,
ask him those questions - it’ll make your day.” or “We had to include
him to show you exactly how low the base line goes”.
The interview started - he was a different guy from who the
recruiter told me I should expect. I told him so. Then I backtracked
thinking that he might think that I didn’t want to talk to him, or
worse, that the other guy and I conspired to get me into Google by
asking me easy questions. After that was resolved I noticed he has a
heavy Scottish accent, thankfully he was aware of it too -told me to
ask him to repeat things if I didn’t understand.
I have a feeling that a lot of Google employees in Sydney work on
Google Maps. He was initially from Mountain View and a very interesting
guy - I asked him a fair few questions, not because I had to but I was
just genuinely interested in what he did. He asked me what ideas I had
for Google. I told him about an interesting idea I had and it really
seemed to capture him. Then he asked me how I’d go about implementing
it. This particular problem involved figuring out if an author of a
particular article was male or female. This was my answer - I kid you
not:
We’d just search thought the text, building
probabilities as we go. We’d look for authors name, look it up in a
table or male female names, we’d look at gender identifying
establishments (eg. a private boys school) and occupations (eg oil rig
worker) multiplied by the gender distribution in these occupations, we
could look at the colour usage on the text (pinks and lighter colours
for females), we’d look for references to partners and multiply it by
the probability that someone was heterosexual or homosexual.
At this point I stopped. I had said the word homosexual in a
technical phone interview. There was a silence, but not too long - I
mean, there really wasn’t anything to worry about, I knew that, did he,
of course he did, didn’t he? - were both professionals, it was a
professional answer… For the record
I don’t swing that way, neither did he.
Google is an equal opportunity employer.
Of course he did.
The interview continued. We went through an implementation algorithm
for a picture collage maker - top level design. Hashtable usage (where
pictures were indexed by the predominant colour on them) was important
to achieve the speed constraints. Short answer: Hashtables. We covered
a similar question to the gender identification regarding fraud
detection. Top level design again, used hash tables and probabilities.
Then it was over, he thanked me I thanked him, I said I thought it
would be harder. He laughed and said he could forward on the message to
my next interview. I told him that I really didn’t think that would be
necessary. We said goodbyes. I was not really sure what to take away
from that interview - he was obviously positive enough about it to
suggest that I would get a second. Was this for real?
Two days later, I got an email requesting a suitable time to go to Sydney. This had really gone too far.
Original story
Continue Part II