Archive for the ‘Interviews’ Category

Blizzcon 08

Thursday, November 6th, 2008

I kept this on the down low for a while because of my job situation, but better late than never. I went to Blizzcon with my brother-in-law, and we got the VIP treatment: front-of-line skips to play the games, free swag (and how!) from the store without waiting in the literally 4-5 hour lines, chatting to the developers all day, and seeing the finale show from the VIP area above the crowd. So here’s a small flickr set at the request of Skye.

Costume contest winner

That’s a pic of the costume contest winner. Nobody else really stood a chance against the turtle!

Some interview questions I’m thinking about

Thursday, February 28th, 2008

I’m thinking about the following questions. They are to be completed using pencil and paper (or marker & whiteboard) only (and for questions 1 and 2, I’d accept the method and not worry about the actual calculated answer). At the moment, only one of them is a question I’ve actually given at interview. And I only use these questions for new graduates, as a way of gauging mental horsepower. If I’m interviewing someone with a few titles under their belt, for the best use of time I usually hit other areas.

Question 1. What is the sum of the multiples of 3 less than 1000? What is the sum of multiples of 3 or 5 less than 1000? [This is Project Euler problem 1]

Question 2. What is the smallest integer that is evenly divisible by the numbers 1 through 20? [This is Project Euler problem 5]

Question 3. How many trailing zeroes are there in the (decimal!) number 100 factorial when it’s fully written out?

“Smart and Gets Things Done”?

Tuesday, January 29th, 2008

I work for a big games company as a senior programmer, and I’m a regular on the interview loop. While I’d love to hire candidates who are smart and get things done, the reality of the situation is that more often than not I also have to hire candidates with experience. They have to be smart, they have to get things done, and they also have to be effective within a week of their start date when they get thrown into a big C++ game codebase. Perhaps one could argue that for sufficient values of “smart and gets things done” this is already covered. All I know is that I’d love to walk into an interview and meet a candidate who:

  • Can whizz through a simple coding question like “remove spaces from this string”.
  • Can equally whizz through a simple high school applied maths problem.
  • Can clearly and concisely explain what virtual functions are and how they work, the mechanics of constructors and destructors, or the compile and link process.
  • Knows linear algebra such that they can explain dot and cross products, how to construct a camera matrix, or how to compute a vector reflection off a plane.
  • Has a working knowledge of lists, trees and hash tables, and can explain why certain algorithms are O(1), O(log n), O(n), O(n log n) etc.

It’s amazing how many interviewees stumble over this stuff. It’s pretty fundamental to game programming. I would love to see a candidate who breezed through this so we could get to the interesting interview questions. All too often, just three or four of these simple questions take the whole hour.

Google's NDA: not evil, eh?

Thursday, May 3rd, 2007

ValleyWag: This NDA never existed.

Google's NDA:

  • Forbids the interviewee from disclosing that they interviewed or signed the NDA, and anything about the offer. It even forbids mentioning Google anywhere ever again!

  • Forbids any kind of reverse engineering, etc. of Google technology. No exception for reverse engineering for the purposes of interoperability, expressly allowed under the DMCA.
  • Stipulates that Google must be notified when “confidential information” is required to be disclosed by judicial order, with no allowance for the fact that such notification may itself be illegal.
  • Remains in effect (practically speaking) for ever.

IMO, interviewees should feel free to alter NDAs and employment contracts to ensure they are fair for both parties. It takes two to agree a contract.

IME, altering or querying the contract is not really detrimental to your chance of employment at a tech company: chances are that the person making the hiring decision is far removed from the person who actually wrote the contract. And in practice, most companies don't have a process for dealing with amendments – so changes are either accepted on the spot, or swept under the carpet with a “we'll get back to you” – and neither way does it hinder the hiring process. If the person actually doing the hiring wants your skills, they are going to be pragmatic about it and probably have little respect for the contract. I know several people who actually ended up never having an employment contract because “we'll get back to you” never happened. But they still get a paycheck.

My CV, dateline 1995

Thursday, August 17th, 2006

Dug this up from an old CD archive. As strange as it looks these days, this document, a short cover letter and an hour's interview with Peter Molyneux (we talked about Isaac Asimov and Edward de Bono, ISTR) got me into the games industry. And yet my old CV is a little familiar: I still get CVs like this on my desk today from student hopefuls who think, as I once did, that a course in lambda calculus is worth mentioning in a CV. Well I suppose you have to fill the space somehow…

Computing Skills:

I am familiar with MS-DOS, Windows, Unix (Linux, DEC Ultrix, Solaris (Posix)).
I am fluent in C, Modula-3, and BASIC (including Visual Basic), and have also written programs in C++, Pascal, Fortran 77, and 80×86 assembly language. My degree course additionally covers several non-imperative languages.


10 GCSE's at grade A:
English Language, Physics
English Literature, Chemistry
French, Maths (Pure & Applied)
Latin, Technology
German, Religious Studies

1 AS-level, at grade A: French

3 A-levels, at grade A:
Maths, Physics, Electronic Systems

Sixth Term Examination Papers:
(S-level equivalents)
Maths – grade 2
Physics – grade 3

Degree course results so far:
Part 1A & Part 1B: 2:2

Previous Employment:

I worked for 16 weeks as Technical Assistant for Datasure, a software house in London that produces financial advice software. I wrote manuals and tutorials for their two main products, and assisted in handling customer questions, complaints and orders. Cut-down versions of the tutorials were also released as demos, for which I also provided telephone support. I also assisted in tracing and fixing bugs in a product under development.

Degree Course Content:

C, Modula-3, ML, Prolog and Fortran, language semantics and compilation.
Computer and processor architecture, digital electronics and VLSI design.
Operating systems, distributed computing and concurrent systems.
Digital communication, information theory and coding.
Numerical analysis, graphics, databases, cryptology and security, user interface design.
Systems modelling, software engineering, hardware and software specification.
Computational neuroscience, artificial intelligence, natural language processing.
Concurrency, complexity and type theory, lambda calculus and computation theory.
Philosophy, historical computing, professional practice and ethics, running a business.

My second year group project (running under Unix/X and written in Modula-3) was a graphical city centre traffic simulator. My third year project (also running under Unix/X and being written in Modula-3) is a graphing and numerical analysis package.

In the first year of the course I also studied maths and physics.


I enjoy all types of music, reading science fiction and playing the piano, especially ragtime. In my spare time I also go ballroom dancing, play the harmonica, and play table-tennis and tennis when I can. I play tiddlywinks too: I have played for Cambridge against Oxford for three years running, and have been university singles champion.


Wednesday, November 30th, 2005

There is a (semi-)famous interview question of the Microsoft type that states “Design controls for a microwave oven.” Well, lately it crossed my mind and I came to a realisation. And therefore I have worked out my answer to this question (not that I will ever interview at MS) and my answer is as follows:

Microwaves only need one control! The one magic control that a microwave needs is: add on a minute and turn on at full power. Most microwaves have this control now, and I never use any other button on the machine. I, technophile that I am, disregard the whole microwave user interface, carefully crafted no doubt to allow me to defrost 3.2kg of lamb with maximal efficiency. These days when I meet a microwave without the magic button, I'm reduced to figuring out how to make it work: do I have to select power first? Time in minutes and 10-second increments? Then another button to start? How silly! I just want to press the magic button and have everything be OK.

Here's why it's so powerful:

1) I never cook anything at less than full power. What's the point? A microwave is supposed to cook stuff quickly – why would I want to do things with it that I could do in the same time in a conventional oven?

2) I never microwave anything that takes more than 10 minutes (and most things take considerably less – 10 mins is the baked potato spiking the end of the graph). If I want a fraction of a minute (e.g. for a mince pie), then it's such a short time that I'm waiting for it anyway, so I'm watching the timer.

A microwave does nothing else. I might concede a “Clear” button would be nice, so that's a grand total of two buttons. (No you don't need a button to open the door, just pull.) “But,” I hear the interviewer saying, “might you want it to tell the time? Or act as a general purpose timer?” Sure. Doesn't need a button to tell the time, any more than my computer, video, or atomic-time-signal clock does. Already has a timer control. Just hit the magic button when the door is open to start the timer but not the cook cycle. One button to rule them all!

The only remaining question is: why don't they make microwaves like this? They could save over half the electronics. I think it won't be long.

Another day…

Tuesday, September 13th, 2005

…another interview. And another “no hire” recommendation. Sigh.

Also today: a half hour power cut which affected the whole of LA's northwest side. A pity it didn't last longer – I could have had the afternoon off! I pretty much figured right away that someone down at the DWP had accidentally cut something they shouldn't have.

I also got my medical exam today for my green card application. Exam, 3 jabs, blood test and a chest X-ray. I think I'm pretty healthy. By my reckoning, I've taken 5 sick days in 10 years.