See Joel Program

June 1, 2009

Tell Me Everything You Know…

Filed under: Technology — Tags: , , — Joel Rumerman @ 7:05 pm

Recently at work I got asked a couple questions at work about some hiring techniques that we might be implementing. I guess my company is defining and implementing a new hiring practice around the idioms presented in Who: The A Method for Hiring and they wanted my input on a couple of the steps they were batting around. I can’t say I’m for or against such an intensive, well defined hiring pattern yet, because it hasn’t been used yet and I haven’t really been that involved, but it did spark my interest in how I would hire a new developer today if given the chance.

What popped into my head is the “Tell Me Everything You Know…” methodology. My goal when I would interview somebody is to, in the shortest amount of time, figure out everything this person knows about technical things that indicate if the person is a standout developer or not.

Here’s the basic interview structure:

I’d tell them we were going to have a series of 5 minute conversations and in those 5 minute conversations they were supposed to tell me everything they know about whatever I asked them. Rather than taking notes, the conversation is recorded because this is going to happen way too fast for me to write anything down. Plus, I’ve found out over the years that notes I’ve written about most things are incomplete and tend to stall conversations.

What I’m going to be able to tell during this conversation is if they can communicate effectively, context switch quickly, respond to a bit of pressure, and if they have the technological chops I’m looking for. I’d say that the last one is the most important, but in my company if you can’t write a good email or switch your focus quickly, you’re kind of useless. This is the extend of how I would hire a developer. It sounds simplistic, but in my head it works.

Here’s my list of topics that I’d ask about. Everyone’s will be different, but these are ones that are important to me.

Tell Me Everything You Know About …

  • Websites
    • HTTP
    • HTML
    • Standards
    • CSS
    • DIV vs. Table Layout
    • JavaScript
    • AJAX
    • JSON
    • Content Delivery Networks (CDN)
    • Verbs: POST, PUT, GET, etc.
      • SEO
    • Sessions
    • Page Design
  • Network Communication
    • TCP
    • HTTP
    • Stateful vs. Stateless
  • Portable Data Structures
    • XML
    • XSL/XSLT
    • JSON
  • Object Oriented Programming
    • Interfaces
    • Classes
    • Polymorphism
    • Inheritance
    • Is-A vs. Has-A
    • Data Structures
  • Development Patterns
    • Factory
    • Strategy
    • Observer
    • Command
    • Assembler
    • Facade / Adapter
    • Builder
  • The .NET Framework
    • Major improvements between versions
    • ASP.NET
    • ASP.NET Control Lifecycle
    • ASP.NET AJAX
    • Debugging
    • Compilation
    • Runtime
    • IL
    • Garbage Collection (Disposal, Finalization)
    • WCF
    • Win Form
    • WPF
    • SilverLight
    • WF
    • Generics
    • Linq
    • Object Initializers
    • Delegation
    • Anonymous Types
    • Visual Studio
  • Software Engineering Lifecycle
    • Discovery
    • Task Estimation
    • Requirements Gathering
    • Rapid Application Development
    • Iteration Development
    • Software Maintenance
    • Software Deployment
    • Short term vs. long term wins
  • Databases
    • SQL
    • SQL Server Data Types
    • Indexes
    • Query Performance
    • Storage (trees)
  • Storage Technologies
    • SANs
    • NAS
  • Testing
    • Unit Tests
    • Black Box vs. White Box
    • Load
    • Requests / Second
  • Cloud Computing
  • ProgrammingTools
    • Visual Studio
    • Fiddler
    • Firebug
    • Web Developer Toolbar
    • Yslow
    • IE Developer Toolbar / IE8 Integrated
  • Website Performance
    • No. HTTP Requests
    • Compression
    • Images / Sprites
    • Tables
    • Content size
    • JavaScript Execution Engines
    • CDN

2 Comments »

  1. I had an interesting interview question where I had to explain everything that I understood that happened between when someone hit enter on a web browser and when the webpage loaded. I quite enjoyed it. Gave me a chance to show off a bit since it’s something I know pretty well.🙂

    The good thing that the interviewer did was he kept drilling me for more information. I don’t think I would have come up with nearly so much detail if he hadn’t. You’ve got to remember that an interviewer won’t know exactly what you want.

    The tricky thing about that is with a general question is where to start. It would be a bit daunting to do something like CSS because I wouldn’t know exactly what you were looking for. I’d be worried about telling you a whole lot of things that you didn’t think were too relevant.

    The tricky thing about using a really specific question is that it’s possible that the person just won’t have worked with whatever it is. They might be a great programmer who just doesn’t know about object literals in javascript.

    Comment by Helen — June 3, 2009 @ 6:09 am

    • I really like the interview question you were asked. I’ll add that to my list🙂.

      As for asking too general of a question, I guess that’s in the eye of the beholder. If I asked someone tell me everything about CSS, and they had good knowledge on the topic, I’d expect them to get around to most points. There’s a checklist in my head for most of these topics and you need to hit a good portion of them to get a good score. But at the same time, I’d probably prompt them for info on selectors or specificity if they failed to mention it, but mentioned most everything else.

      Also, it’s probably too narrow of a topic for them to talk at length, without mentioning what I’m not interested in. Even if they jumped to HTML or JavaScript and its relationship to CSS, I’d still count that as talking about CSS.

      I would say that asking someone about OO programming would be a good example of too general of a question. I’m not even really sure where I’d start answering that. As an aside, I think that my interview questions in the past have focused way too much on generalized programming concepts like OO and not enough on specific task specific things such as “why do web pages come up slowly” or what’s the purpose of delegates.

      I’ll add to my list above… tools. Tell me everything you know about programming tools.

      Comment by Joel Rumerman — June 3, 2009 @ 7:44 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: