Archive for December, 2009

Dear Prospective Employer,

Tuesday, December 1st, 2009

workerBased on the job description, I am a perfect candidate for this position...

As I've previously discussed, my company was sold this past summer. Since then they announced that our operation will be moved to Seattle by the end of the year. SonoSite has been very professional and generous, but I have decided to stay in San Diego.

I made this decision several months ago, but since I will be employed until the end of the year, I have not been very active in my job search. Until now.

So, if you're reading this you may very well be an employer looking to hire someone like me. You might have gotten here from my Stack Overflow Careers CV or even directly from my resume.

There is one question that I can answer up-front:

Q: What are your long-term career goals? More specifically, do you want to do development or do you want to be a software project manager?

A:  This is the fork in the career road that most software engineers eventually get to. I've done both and my preference is in-the-trenches software design and development. I get the most enjoyment from building solutions in a collaborative team environment.

Thank you for your consideration.

Sincerely,

Bob

If you're also looking for a job, I wanted to share a little.

About a month ago I came across a "Principal Software Engineer" position that I thought fit my skills and interests pretty well. I submitted my resume and got a full day interview a couple of weeks later. I hadn't done an interview in over four years. Here are some of the highlights:

  1. I was asked the usual technical programming questions. Mostly about .NET/C#, e.g. see Dot Net Interview Questions. Since I've asked the same questions to prospective employees a number of times, I think I did pretty well on these.
  2. The software design problem was also pretty typical. How would you design a 4-way stop light control system?  Hint: Ask about requirements. Even though you have assumptions about how something this familiar works, others may have a very different perspective.
  3. The dreaded logic question. I got The 8 ball problem. I hate these things.  I eventually got to the 3-try solution, but the 2-try was beyond my cognitive powers. Oh well.

Even though I was not offered the job, the overall experience was generally good (the rejection part sucked).  I think their definition of "Principal" was different than mine.

Every company has different interviewing techniques and practices.  It seems that large companies have developed the most rigorous (and onerous) methods. Google is known for its over-the-top questions: 15 Google Interview Questions That Will Make You Feel Stupid. A more pragmatic approach, e.g. How I Hire Programmers, makes sense: "Are they smart? Can they get stuff done? Can you work with them?". I'm not sure many companies can afford to invest that much in interviewees though.

Speaking of "Are they smart?", Jonah Lehrer's article Vince Young talks about the relationship between an IQ test and the performance of NFL quarterbacks.  I think the same basic concept applies to developing software products. As important as writing good code is, each engineer must also be able to understand the business needs and really listen to marketing/sales and of course the customer ("emotional intelligence").  There is no IQ test for that.  "Genius is one percent inspiration and 99 percent perspiration" (Thomas Edison) also applies.

Interviewing is a two-way street so I would be remiss if I didn't mention The Joel Test: 12 Steps to Better Code. Don't forget to ask good questions.

Anyway...

Just like the rest of the job market these days, the competition for all types of developer positions is also pretty intense. The trick will be finding that perfect match between my skills and the employer needs and environment. We'll see how it goes. Wish me luck!

UPDATE (12/3/09):  The Codypo Test, aka 8 Questions To Identify A Lame Programming Job