Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

Interview question: Tell me about your mother

The Hillbilly turns 36 today and for my birthday, each and every one of you is going to give me a present by listenin’ to a little story of when I was but a wee developer fresh out of codin’ skool. (Unless you’re on the ASP.NET MVC team, in which case you could offer me a job since one of the criteria for working on the team seems to be having Garnet as your birthstone).

Eight years ago, I was hired for what was essentially my first full-time development job. I had dabbled with Visual Basic on and off for a year or so and  Y2K tested Delphi for a company that didn’t trust Borland’s public statements (no, seriously) but that’s it. This was a job with a small company that sold an ASP-based learning management system with a twenty-year-old C component and some Word VBA templates. And when I say small, I mean that when I came on board, I doubled the sizetimemachine of the development team. At that point, I had never laid eyes on a single line of ASP code.

Now, before the interview, I had actually lost the ad (it was posted in the newspaper) so I had no idea what it was about or even what the company was named (it was run out of an office in a local technical college). Note the foreshadowing…

Interviewer: Did you look up anything about the company?
Coding Hillbilly: Oh yes, of course
Interviewer (pleasantly surprised): Really? What did you find?
Coding Hillbilly: That you’re…ummm…based out of…<school name>…and you build…stuff?

Interviewer: So I don’t see any ASP in your resume. Do you know much about it?
CH: Oh yeah, I’ve been studying it in my free time
Interviewer: What can you tell me about it?
CH: …err….that it stands for Active….Server….Programming? And you can…build….stuff?

Interviewer: There was another website in the job ad. Did you get a chance to take a look at it?
CH: For sure, dude!
Interviewer (clearly skeptical by this point): What colours are in the logo?
CH: …. fuchsia and mauve?
Interviewer: Lucky guess. What do they do?
CH: They…build…stuff?

Interviewer: It’s very clear to me that you have not done any research on this company or this position. Can you tell me why I should bother to take this any further and consider you?

At this point, I came clean, admitted I lost the advertisement, had no idea who they were or what they did, and that I had no practical coding experience. I politely grovelled at his feet and promised to kick my own ass out of the building.

The offer came a couple of days later. No, seriously. They called me back and offered me the position. And that’s not even the point of this story. But give me a minute, I do have a point.

By that time, I had decided to stay where I was. The missus was pregnant with what we later determined was my child and moving from a big oil company with banked holidays to a near-startup that could go under at anytime didn’t seem prudent. So after a prolonged stunned silence at even being offered, I politely declined.

Two days later, he calls back. What will it take for me to join them? At that point, I had had feelings of regret at turning it down and my wife and I agreed that I would have taken it if they upped the offer by another $5k a year plus a week of holidays. I told him that and he says “Done”. (Later, I learned that the only reason my wife agreed to those terms was because she thought there was no hope in purgatory that they would have called back.)

By this time, curiosity gets the better of me and I ask the burning question: “Dude! I totally blew chunks at the interview. Why you trippin’ to get me?”

My eventual boss for whom I gained a tremendous respect replied: To be honest, you weren’t the strongest technical candidate by a long shot. But out of all the people we interviewed, you have the best attitude and would fit in with our team. And I’ve been an educator for many years and have a hunch you’re a quick one.

Back to the present wherein you probably see where this is going.

This fellow took a tremendous risk on me. At the time, I didn’t recognize how big a chance it was. The chance was that I had the team skills and the personality fit for the company and that the technical skills would come. Bless him for being able to recognize that and for placing such a high priority on them but my experience is that he’s the exception rather than the rule.

There have been a number of discussions on interview questions of late in blogs and discussion groups. I’ll single out Jeff Atwood’s list because…I dunno… it was probably the last blog I read on the topic. I don’t have a lot of pride so I don’t mind admitting I’d probably flunk his test. And I write code for a living. Worst-case insertion performance of a hashtable? No idea. How do you test if the high-order bit is set? My answer would probably be eleventeen. Even the one on reading integers from a text file I’d probably falter on if I didn’t have an IDE with IntelliSense.

On a side note, this is probably a dangerous line of thinking coming on the heels of Ray Lewallen questioning the money being spent on mediocrity. But in Ray’s post, Dave Laribee comments that the winning attitude and the winning skillz should be rewarded. I.E. Not just the talent and not just the attitude.

And even then, what’s the definition of “talent”? The ability to recite from a computer science manual? Or someone who knows how to transform business requirements into reasonably designed software and who can figure out the technical problems as they arise.gemd_02_img0090

Ideally, you’d want someone that lies somewhere along that spectrum that makes sense to your organization. (Not to imply the two are mutually exclusive, either.) For a research position, business requirements may not be so ambiguous and you need someone who is acutely aware of how to unroll a for loop into assembly. For your average business application, maybe someone nearer the other end.

Now, let’s not get all crazy and start assumin’ I don’t care if you are capable of finding all the prime numbers between 1 and 4. You do need to have some base level of knowledge in whatever technology is required. Nor am I suggesting you break out a Rorschach test during the interview. But there needs to be at least some emphasis on the candidate’s personality. And maybe I’m overly optimistic/naive, but I have a feeling that if you gear your interview toward determining those less objective traits, you’ll be able to determine their level of expertise anyway.

By the way, if you’re looking for closure on the story, I stayed with them for a year, learned ASP, XSL, DHTML, and VB, then bolted to a consulting company. It sounds rather mercenary and when I think back on it, it was, even if I didn’t mean it to be. It was a good move for me career-wise but has always left a bad taste in my mouth. Damn conscience…

Kyle the Aged

This entry was posted in Career, Featured. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://blog.vuscode.com Nikola Malovic

    I am signing in this blog post in its fullness. I had experiences in the past applying for ASP NET position where I was refused because I had a small flaw in my own implementation of C itoa function (converting between number systems without any help functions)
    I was really sad about it, but then after a while I have realized that if they treat candidates “as numbers” and not as people and give generic questions regardless of what you apply for, than they would probably treat me as a number once I would start to work for them.

    Life is to short for being a number :)

    Thanks for the great post!

  • http://codebetter.com/blogs/david_laribee/ Dave Laribee

    happy birthday!

    working as a team in close proximity makes attitude indispensable. who wants to work with a douche bag know-it-all? there should be a free exchange of ideas and when you leave your mind open to learning new stuff it’s amazing how well that works.

    all that said, i think you do need a few people with top talent, but without people skill top talent is only maybe a quarter of the battle.

    anyway, my thoughts/opinions on the matter, FWIW, IMHO, disclaim, disclaim…

  • http://robzyc.blogspot.com Rbo

    @Tim B, Thanks for the words of support, I really appreciate it.
    This got me thinking so much I thought I would blog it myself!

  • http://www.e-Crescendo.com jdn

    I completely agree with this. I think those interview question lists are almost completely stupid, to be honest.

  • http://www.peterritchie.com/blog Peter Ritchie

    I’d hazard a guess and say that many talented programmers and designers have a similar story of someone “having faith” in them. Even after all the technically-based questions and tests you can pose on a candidate, in the end you have to make a Human judgement. If you ignore your “gut feeling” you’ll likely be disappointed.

    I’ve hired people who didn’t come across well because I felt then didn’t interview well (and some people don’t). I haven’t been disappointed yet… And it works both ways, I’ve chosen less technically qualified people over people who have aced interviews because of various “gut feelings”. I purposely pick a few questions from the online pool of questions (like from Scott Hanselman’s list) and ask those. If they’re really quick or really text-book with those and slower with the ones I “hand-craft” I know they’ve just memorized them. That doesn’t mean I won’t hire them; it just means I’ll take that into account. If all the other blow chunks, the one that memorizes is better than the ones that didn’t bother memorizing.

    Now, if I only listened to my guy when I accept clients…

  • http://bigtunatim.wordpress.com/ Tim B

    @Rob: if you constantly worry that you are way behind the times, you’ll do just fine. It’s the ones that feel like they’ve got it all covered that you have to watch out for IMO.

  • http://www.wynapse.com Dave

    You’re preaching to MY choir, man…

    I’ve been writing software since 1967, and have done one of pretty much anything you can do on a pc including the BIOS. I’m productive 12 hours a day doing web database software in .NET and I have yet to see one of those silly assed lists that I could pass. Here’s a blog post about just that from December:


    I have a set of 8 questions of my own, all taken from live code. All 8 have obvious answers and all 8 answers are incorrect unless you’ve been elbow deep in win32 and MFC.

    Next time I interview, that list goes with me, and after I fail to answer the questions they had on their hour exam last week, I’ll haul out my list.

    What they don’t remember is interviewing is 2-way. They want to know if I’m as anal-retentive as they are, independent of my ability to be productive, and I want to know if I can picture myself working with these guys.

  • http://robzyc.blogspot.com Rob

    Great read, something quite close to my heart also.
    I am a young developer, still getting my head round it all, with the constant worry that I am way behind the times. Im 23, working towards MCAD in C#. I have to use .NET 1.1, I want to be using 2.0, I want to be learning 3.0+ but I can’t…

    I have just landed a new job, funnily enough, working with ASP.NET, which I have never worked with.

    They are taking a risk with me, I know they could have found someone else. I asked why they took me, they responded, “your attitude won it for you, we know you don’t have all the technical skills at the moment, but we know you will pick it all up quickly and have a great attitude to work.”

    Quite frankly (sorry if egotistical sounding), I agree. I don’t want to be a complete nerd that can recite every known algorithm to man both in alphabetical order as well as chronological from publication. I want to be damn good at what I do. I will throw myself to the wolves and bust my balls to get it right. I’ll also make sure I’ll have fun doing it. I like people (contrary to belief) THEY make computers work. I can punch code and make the computer do things, maybe not the best way, but it does what people want it to do, and I get code changes done as quickly as possible. Do I need to do more?

    I would have also failed Jeff’s interview.. Yet I was offered my new job on the same day, and they wanted me in ASAP.