Recruitment Interview - I

Had a call with an engineer from a wannabe employer yesterday.

Didn’t expect to get into deep technical detail on the first call, but did anyway.

Didn’t went to smooth.
I guess the engineer was expecting to talk to a graduate student who did nothing but compare sorting algorithms and data structures.

They had a pretty specific problem and wanted me to write code … over the phone.

So I asked a few questions and calculated the magnitude of the problem (worst case: 4^7).
Got into a little “fight” with him over that, since I was sure that would average around 10K and he insisted it was more like 3billion.
Well, 4^7 = 2^7 * 2^7 = 2^14 … and I guess every programmer can tell you what 2^14 is … 16K.

Nevermind,
so I decided to do the dummy brute force implementation (telling him that you could always tune that later).
He didn’t believe that this would work.

Well, I took my notes today during my lunchbreak and had a working version about 10 minutes later.
(No googling for the answer … I had to prove it to myself !)

Took about 14 seconds … slow.
So I changed just a tiny bit of code … about 10 lines, replacing my brute force lookup with a simple hashtable.
And went down to 20ms :)

No black magic.

The problem through the whole call was:
The last few years I did (mostly) very high level design and architecture.
When I needed an implementation I used the simplest one I could think of.
Then I gave the simple (100% working) version to one of my interns and they applied all the nasty tricks.
In the end I only had to verify their results against my solution.

But I digress.
He was trying to make solve a problem that would be far to easy for 15 year old schoolkid.
(No problem here!)
But he expected me to explain my answer like a 15 year old schoolkid.

Imaging a car designer explaining to you how to clean out your fuel pump ;)

At the end he asked me for “the nastiest bug” I’ve ever seen.
I guess they expected to tell them about “the nastiest bug” I ever produced.
Problem:
I never produced a nasty bug.
Usually my “bugs” are something like “missing closing brackets” or “missing semicolons” which are usually caught by the compiler anyway.

Sometimes I create “off by ones”, but I believe in unit-testing so they are caught pretty early, usually within 5 minutes after I produce them.

Well, in the end I thought I was to stupid to solve an easy problem,
but 20 minutes after the call I had the perfect solution in my head :)

Communication problems.

I’d say his expectations were wrong.
And I assumed he would know what he’s doing … totally confusing me with some of his “hints”.
And I guess I was just a tiny little bit nervous.

You know I get calls from headhunters about once every other week,
but I always declined, since I love my job here.

But this job … I wanted.

Wait and see … they’ll give me a second chance!

Leave a Reply


anti’s blog is proudly powered by WordPress
Entries (RSS) and Comments (RSS).