My motivation over the Christmas break was short lived... I managed to get a few days of half-starting a whole bunch of projects, which is pretty much how I work: result!

But after the first week, the need to take a break hit me. 2009 for me has been very stressful and with things sorting themselves out I'm finally starting to feel human again. I'm keen to start work on new projects, but I want to spend a heckuva lot more time with my fabulous partner, Pia! Seriously, she's been awesome putting up with more than the usual level of shit this year and I couldn't have made it without her!

And there may be a bit of a spanner in the works. I've mentioned on my twitter feed that I've been going through the interview process at a fairly prominent search company. In the last few days before Christmas I flew over to Sydney and had the final round of interviews.

If I get a job offer and it ticks all my boxes, it might mean a move to Sydney is in order - which will put the kibosh on some of those projects. There are some personal, financial and family considerations for sure - but I'm trying not to get ahead of myself or even excited (fingers crossed).

Which is a pretty good start to the new year, I think. With perhaps an exception on the financial side of things, I'm definately feeling the most human I have in probably two years - and I'm keen to have a kick-arse 2010.

Interview with Google

By: will

16 Oct 2009

Recently a friend of mine at Google put a shout out for positions at Google over in Sydney for Software Engineers (SEs) and Site Reliability Engineers (SREs). Not exactly sure what to expect, I sent in my resume for an SRE position - knowing that if I didn't make the cut, that would rule out applying for Google for the next 18 months.

Much to my suprise, I got an email back from Google the next week asking for a brief pre-screen interview. After a bit of back and forth with the guy over email we scheduled a short phone interview.

By this point, I was getting a bit anxious about what kind of questions they'd be asking. I've conducted a fair few interviews from, and whilst I understand the basis for behavioural questions during an interview - looking online at other people's Google interview experience makes it seem like the type of interview that could only be thought up by a crazy Japanese game show director.

It also doesn't help that the majority of technical positions at Google are in Software Engineering, not Systems Engineering (or Site Reliability Engineering, should I say). This rules some (but in no way all) questions about algorithms and complexity.

Anyway, on to the good stuff - on the day and hour of my interview I headed down to a cafe around the corner from work and took the call from one of the HR folks over in Sydney.


Skills self-assessment

The first thing they cover is a self-evaluation of your skills in a number of areas, mostly programming languages and linuxy stuff. Ones I can remember are: Linux Kernel; Java; Perl; Python. (PHP definately wasn't in there folks, in case anyone was wondering).

Rating yourself between 1 and 10 sounds easy right? Not so. In a Google interview, 10 means you invented the technology, 7 means you've written a book on it and 5 means you consider yourself competent in it. So you'd hope most of your answers lie between 5.0 and 6.0. The upside to this evil scale of doom is that it really makes you think about where you fit on the number line, and I guess that at the end of they day they must get much more realistic figures because of it.

So after answering those questions the interviewer confirmed that I do have some industry-relevant skills (I know what a computer is, and I don't wait tables) and that my skillset leans strongly towards systems administration/engineering - which is even more reassuring as that's what I do for a living. Affirmation is good.

Now onto the hard stuff! Following are a bunch of questions that pretty much reflect what you see on other Google interview sites. I didn't make notes so these are written down as best as I can recall them.


Question: Of the following protocols (TCP, UDP, ICMP), which would most commonly used for the following uses: HTTP, Ping, and Video Streaming.

My answer: HTTP uses TCP, Ping uses ICMP, and streaming video would use UDP.

In retrospect: I should have mentioned that DNS supports TCP, and if the request exceeds the UDP packet size, it will force over to TCP.


Question: Order the following operations in order of speed (fastest to slowest): disk seek; access cpu register; read from memory; context switch.

My answer: Access CPU register, read from memory, context switch, disk seek.

In retrospect: I'm not actually 100% certain that the read from memory would be faster, it depends whether or not the program code is already in the L1/L2 cache. More thought required.


Question: What is the linux system call to retrieve most of the metadata associated with a file?

My answer: Pass (it's been ages since I've done anything this direct).

In retrospect: The guy doing the interview half prompted me asking if "stat" sounded familiar. It surely does and is the correct answer, so I said yes - not sure what the marking for that would be like though.


Question: What are the three datatypes in PERL?

My answer: Array, Hash, Reference and... Scalar.

In retrospect: This one tripped me up a little bit, because PERL is really an untyped language... I listed the primitives but had a mental blank when it came to the name of the scalar. I explained my thought process through this however, so I think I still did favourably.


Question: You have an array of 10,000 16-bit integers, and you want to count the number of set bits on each one. Available memory is unlimited, how would you proceed to perform this task.

My answer: I'd just do a single pass.

In retrospect: Okay this question is a bit complicated. First off, I asked what the data would be used for - as in, whether we'd be doing lookups on it or just wanted to process the data. The interviewer told me it was only needed once. For a straightforward operation like this, on a relatively small number of objects - I can't see any application specific reasons you'd need to get fancy (unless I've missed something obvious in the question), however I didn't convey this justification to the interviewe - so I'm not sure how I faired on this question.


Those are all the questions I can remember, though I seem to recall something about optical media coming up. I'll have to refresh my memory with a friend of mine who took the interview the day before (interestingly he had the exact same set of questions with one exception).

Anyway, the interviewer seemed to think I did okay, and he seemed to think I'd be getting a second interview (though he couldn't make any promises obviously). In either case, I'll hear from them within two weeks from the initial interview and find out what the go is.

If you progress past the pre-screen interview, there are another two telephone interviews between 30 and 60 minutes long each - and if you progress past those you get an on-site interview at your local Google HQ.

Cripes! I'll keep y'all posted on how I go :)

On projects and discovery

By: will

4 Aug 2009

It's been a while since I've posted, though on the whole I've been happy with the subject matter and quality of my posts recently - it seems I'm managing to be doing a lot more of the things that interest me, perhaps this is a good sign that things are well in my world, or maybe I've just reached a point of delusion where I'm too far detached from reality to notice. Either way, things are coming up Milhouse!

Since I last posted, I've moved from living in a fairly decrepit share house to sharing a lovely brand new villa with two reasonable people I can deal with on a daily basis - let's hope it stays that way, as I'm starting to feel at home for the first time in three years. It might have something to do with the fact that I have space to hang up my clothes properly and to unpack my bookshelf (yay). Not to mention that I've finally got space and the (kind of) right mental mindset to go through all my plastic tubs of hoarded junk and ditch it all (10 tubs down, 15 to go!)

Recently my out-of-work time and sanity has been wrapped up in a project I've come to realise was a really bad decision, and once I can clean my hands of it - I'll be able to start enjoying my evenings again, and will be able to pursue some more projects of interest. I'm reading into Operating System design theory in my spare time at work, and have even cobbled together the rough basics of my own bootable system that can write to the console. It's a bit on the sad side, but my brain definately feels engaged - which again, is a nice change.

In three weeks I'll be attending my first AusNOG Conference in Sydney, which should be a blast and pretty interesting. If I can knock off my failed project and sort out some outstanding issues, I should be able to use the extra time I've booked in Sydney to unwind and get rid of this stress-induced skin irritation - lovely. I've also decided that next year I'm going to plan to attend The Gathering, one of the most awesome demo parties around in Europe, as well as DEFCON, THE security conference.

On a completely unrelated note, I'd like to plug Adam Frisby's blog. I went to school with Adam and have kept somewhat in touch since, we have fairly similar interests - but he's always working on something interesting and his blog posts are a brilliant read.

I'm also hoping to sit down at some stage and finalise a layout for this site - it irks me that I'm using someone elses design, yet I'm never happy with anything I come up with. Oh well, happy days.

This is the personal website of Will Dowling, a Systems Engineer haliing from Perth, Western Australia.

The signal-to-noise of this site can vary wildly, so here's a few things I'm reasonably happy with that might be of interest to other people:

The Case FOR Apple
11/08/2009
On projects and discovery
04/08/2009
Naughty Tax
18/06/2009

User login