4

I'm looking for your best "quick answer" technical interview questions. We are a 100% Microsoft shop and do the majority of our development on the ASP.NET web stack in C# and have a custom SOA framework also written in C#. We use a combination of Web Forms, MVC, Web Services, WCF, Entity Framework, SQL Server, TSQL, jQuery, LINQ, and TFS in a SCRUM environment. We are currently on .NET 3.5 with a very near transition to .NET 4.0.

Our interviewing process includes a 55 minute interview with two technical people (usually an architect and a senior developer). The two interviewers have to share the time for questions.

That isn't enough time for very many true programming problems so I'm looking for more good questions that have quick, yet meaningful, answers.

We are mainly interviewing for Senior Dev positions right now but may interview for some Juniors in the future.

Please help?

EDITED FOR CLARIFICATION: The should not necessarily be specific to the MS stack. I just don't want questions that are specific to OTHER technology stacks like Ruby or Java.

7
  • 3
    I didn't downvote, but it seems like a strange requirement that a question has to be "quick". Wouldn't it make more sense to make the interview longer? You're deciding if you want to hire someone with an annual salary way above 50k$, does 20 minutes extra time sound like such a bad investment here?
    – nikie
    Commented Mar 2, 2011 at 7:52
  • The interview process is actually much longer. This is only the time that I personally have to work with :)
    – Dubmun
    Commented Mar 2, 2011 at 8:16
  • Do you care if they can write code, or do you only care if they "know the MSFT stack?"
    – rreeverb
    Commented Mar 2, 2011 at 17:01
  • @rreeverb It is very important that they can write code.
    – Dubmun
    Commented Mar 2, 2011 at 21:57
  • 1
    And you ask the question here to be certain that nobody has a chance for looking it up ahead of an interview?
    – user1249
    Commented Jun 3, 2011 at 11:20

9 Answers 9

4

Scott Hanselman's tips are getting a little old but many are still relevant.

In addition:

  • Composition versus inheritance - when and why?
  • Repository pattern - pros/cons/alternatives
  • Does C# have Monads?
  • What goes across the wire - a full business object (think CSLA) or DTO?
  • Clever applications of IEnumerable and yield?
  • Other than SQL injection and XSS, what are five security mistakes?
  • MVC versus MVVM
  • When is Haskell the best alternative?
2
  • I actually just asked MVC versus MVVM in an interview earlier today. The response was enlightening and really highlighted some of the interviewee's strengths and weaknesses. Thanks for the list and the link. Add some brief answers to your questions and maybe I'll hire you...
    – Dubmun
    Commented Mar 2, 2011 at 6:26
  • So what would be the answer to the last question?
    – kizzx2
    Commented Nov 22, 2012 at 0:11
4

What is DI and what is IoC?

Which IoC frameworks do you use? Which ones do you like? Why?

4
  • 1
    +1-I believe being able to go over DI and IoC frameworks speaks volumes about a developer's understanding of architecture. Commented Mar 1, 2011 at 21:41
  • 1
    @Downvoter - care to comment?
    – Oded
    Commented Mar 1, 2011 at 22:09
  • 1
    I didn't downvote, but the former question isn't bad, but even then it still is somewhat niche knowledge (I can't think of any dev shops that use an IoC framework). The latter is a tools question... Might as well ask "nunit vs mstest". Tooling can be learned easily in the ramp up period. Commented Mar 2, 2011 at 19:43
  • Agree with SnOrfus. You can easily do LOTs of coding without needing IoC. It is just a method for delaying binding decisions to runtime.
    – user1249
    Commented Jun 3, 2011 at 23:52
2

If you haven't already weeded via phone then some 'classic' fizzbuzz questions here might be appropriate. If a fizzbuzz takes up enough time to eat into interview questions, it's done its job already, and you don't need waste time extending the interview. This is probably more true for Junior dev positions than for Senior dev positions.

Aside from that. I'd ask what they've done with the various elements/tools that you're expecting them to know (I'm assuming that being an MS shop is important, since you seem to stress it). So questions like:

  • Give me an example of some of the WCF services (wcf is just an example, use anything important to the position) you've personally written or maintained. If you were mentoring a junior dev, what tips might you pass on to them?

The latter part attempts to make sure that they weren't BS'ing you in the first half of the question and that they learned something.

1
  • All fizzbuzz really tests (in my mind) is if a dev knows what a modulus is. We do ask something similar in our fairly extensive phone screening process though. Asking for personal experience is nice particularly if you ask the to whiteboard an outline of the design. I really like the part about asking them what tips they would pass on to someone they were mentoring. That is great on several levels.
    – Dubmun
    Commented Mar 2, 2011 at 6:35
2

It depends of the required technical level and of the specificity.

Example of some general basic questions from the last questions I asked during interviews:

  • "How is used virtual keyword in C#?"

  • "Can you explain the difference between arrays, List<>, Collection<> and IEnumerable<> and how do you choose when to use what?"

  • "What is FIFO and how is it implemented in C#" (FIFO: First in, first out: Queue<>, while FILO is a Stack<>)

  • "Can you explain what is isolated storage and how is it implemented in .NET? What are the different types?" (i.e. IsolatedStorage.Get[Machine|User]StoreFor[Application|Assembly|Domain]())

Example of more specific questions:

  • "If you want to implement add-ins, will you, and if yes, why, choose MEF?"

  • "Is it possible to make synchronous web requests from a Silverlight application? If yes, how? If no, why?"

  • "Can you explain the difference between sequential and state machine workflows in WF?"

2
  • 2
    you have stack and queue backwards. Stack is FILO and queue is FIFO. Commented Mar 2, 2011 at 1:22
  • @qes - impressive eye :-)
    – Ramhound
    Commented Mar 3, 2011 at 18:11
1

If you hired any people, what were their programming challenges? Where did the junior devs trip up? The senior? The architect? Or don't you have any idea?

1

If the important thing is that you want to be certain they can actually code, then the only way you will know is by asking them to code something trivial using the technologies you need. It needs to be trivial because you want them to be able to complete within 15 minutes with time to spare.

For a web developer, you could give them a machine with Visual Studio up and running and ask them to write a web page that allow the user to enter their name and have a greeting page with the name and the current time of day shown. Time of day is special because it changes and you can immediately see if your page updates correctly.

Similar with other technologies. A trivial question but "make it happen" while you hang around will tell you lots of how this person works.

0

My personal favorite -- describe the difference between a HttpModule and a HttpHandler? Where would you use one or the other? How do web pages play in this game?

Weeds out anyone who hasn't been beyond the "right click, add page, profit" part of visual studio.

0

I realize this question is a bit old... but for future users who may stumble upon this, if you are looking to prescreen for TSQL skills (which saves TONS of time as you can prescreen hundreds of applicants before they even come in the door), then I would recommend you have them take the TSQL tests on Dev++

http://www.devplusplus.com/Tests/TSQL

-1

"What were the major additions between ASP.NET 2.0 and 3.5?"

4
  • 8
    I don't know how relevant this is anymore. 3.5 came out three and a half years ago..
    – Mike M.
    Commented Mar 1, 2011 at 21:27
  • Depends what job you're applying for - SharePoint 2010 still uses ASP.NET 3.5.
    – James Love
    Commented Mar 2, 2011 at 9:41
  • 1
    Also I answered before the edit which states what technologies they're using.
    – James Love
    Commented Mar 2, 2011 at 10:00
  • I think the point is that the version of the .NET Framework shouldn't be important. If you know C# 2.0 you know C# 4.0, it would take anyone worth keeping on the job, a month or two at best to learn the basics of the differences in each.
    – Ramhound
    Commented Mar 3, 2011 at 18:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.