Design/Concept Interview Questions for Senior Developers

If you are a senior developer (> 10 years experience) then you should know almost all of the answers of these questions.
Everyone of these questions will be a blog entry during this year inshalla’

  • What is something substantive that you’ve done to improve as a developer in your career?
  • Would you call yourself a craftsman (craftsperson) and what does that word mean to you?
  • Implement a <basic data structure> using <some language> on <paper|whiteboard|notepad>.
  • What is SOLID?
  • Why is the Single Responsibility Principle important?
  • What is Inversion of Control? How does that relate to dependency injection?
  • How does a 3 tier application differ from a 2 tier one?
  • Why are interfaces important?
  • What is the Repository pattern? The Factory Pattern? Why are patterns important?
  • What are some examples of anti-patterns?
  • Who are the Gang of Four? Why should you care?
  • How do the MVP, MVC, and MVVM patterns relate? When are they appropriate?
  • Explain the concept of Separation of Concerns and it’s pros and cons.
  • Name three primary attributes of object-oriented design. Describe what they mean and why they’re important.
  • Describe a pattern that is NOT the Factory Pattern? How is it used and when?
  • You have just been put in charge of a legacy code project with maintainability problems. What kind of things would you look to improve to get the project on a stable footing?
  • Show me a portfolio of all the applications you worked on, and tell me how you contributed to design them.
  • What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?
  • Explain the concept of convention over configuration, and talk about an example of convention over configuration you have seen in the wild.
  • Explain the differences between stateless and stateful systems, and impacts of state on parallelism.
  • Discuss the differences between Mocks and Stubs/Fakes and where you might use them (answers aren’t that important here, just the discussion that would ensue).
  • Discuss the concept of YAGNI and explain something you did recently that adhered to this practice.
  • Explain what is meant by a sandbox, why you would use one, and identify examples of sandboxes in the wild.
  • Concurrency
    • What’s the difference between Locking and Lockless (Optimistic and Pessimistic) concurrency models?
    • What kinds of problems can you hit with locking model? And a lockless model?
    • What trade offs do you have for resource contention?
    • How might a task-based model differ from a threaded model?
    • What’s the difference between asynchrony and concurrency?
  • Are you still writing code? Do you love it?
  • You’ve just been assigned to a project in a new technology how would you get started?
  • How does the addition of Service Orientation change systems? When is it appropriate to use?
  • What do you do to stay abreast of the latest technologies and tools?
  • What is the difference between “set” logic, and “procedural” logic. When would you use each one and why?
  • What Source Control systems have you worked with?
  • What is Continuous Integration?  Have you used it and why is it important?
  • Describe a software development life cycle that you’ve managed.
  • How do you react to people criticizing your code/documents?
  • Whose blogs or podcasts do you follow? Do you blog or podcast?
  • Tell me about some of your hobby projects that you’ve written in your off time.
  • What is the last programming book you read?
  • Describe, in as much detail as you think is relevant, as deeply as you can, what happens when I type “cnn.com” into a browser and press “Go”.
  • Describe the structure and contents of a design document, or a set of design documents, for a multi-tiered web application.
  • What’s so great about <cool web technology of the day>?
  • How can you stop your DBA from making off with a list of your users’ passwords?
  • What do you do when you get stuck with a problem you can’t solve?
  • If your database was under a lot of strain, what are the first few things you might consider to speed it up?
  • What is SQL injection?
  • What’s the difference between unit test and integration test?
  • Tell me about 3 times you failed.
  • What is Refactoring ? Have you used it and it is important? Name three common refactorings.
  • You have two computers, and you want to get data from one to the other. How could you do it?
  • Left to your own devices, what would you create?
  • Given Time, Cost, Client satisfaction and Best Practices, how will you prioritize them for a project you are working on? Explain why.
  • What’s the difference between a web server, web farm and web garden? How would your web application need to change for each?
  • What value do daily builds, automated testing, and peer reviews add to a project? What disadvantages are there?
  • What elements of OO design are most prone to abuse? How would you mitigate that?
  • When do you know your code is ready for production?
  • What’s YAGNI? Is this list of questions an example?
  • Describe to me some bad code you’ve read or inherited lately.

Source: Scott Hanselman: New Interview Questions for Senior Software Engineers

Advertisements

About Ahmed

Software craftsman, programmer, developer, system/business analyst, DBA and PM.
This entry was posted in Concepts, Design, Interviews, Senior Developers and tagged , , . Bookmark the permalink.

11 Responses to Design/Concept Interview Questions for Senior Developers

  1. Good day! Do you use Twitter? I’d like to follow you if that would be okay.
    I’m undoubtedly enjoying your blog and look forward to new posts.

  2. great issues altogether, you just gained a emblem new reader.
    What could you suggest about your publish that you just made
    a few days ago? Any sure?

  3. hey there and thank you for your info – I’ve certainly picked
    up something new from right here. I did however expertise some technical issues using this web site,
    as I experienced to reload the website lots of times previous to I could get
    it to load properly. I had been wondering if your web host
    is OK? Not that I am complaining, but sluggish loading instances
    times will often affect your placement in google and can damage your quality score if advertising and marketing with Adwords.
    Anyway I’m adding this RSS to my email and could look out for much more
    of your respective interesting content. Ensure that you update this
    again very soon.

  4. My brother recommended I might like this web site.
    He was totally right. This post actually made my day.
    Youu cann’t imagine simply hhow much time I had spent foor this
    information! Thanks!

  5. I’m gonhe to convey my little brother, that hee should also
    go to seee this blog onn regular basis to take updated from hottest reports.

  6. This article presents clear idea for the new users of
    blogging, that genuinely how to doo blogging.

  7. This text is worth everyone’s attention. When can I find out more?

  8. Hi there, its good piece of writinjg about media
    print, we all know media is a impressive source of facts.

  9. Thanks for a marvelous posting! I definitely enjoyed reading it, yyou may be a great author.I will make surre to bookmark
    your blog and will eventually come bawck later on. I want to
    encourage youu continue your great writing,
    have a nice morning!

  10. Hi! I know this is sort of off-topic but I needed to ask.
    Does rnning a well-established website suh as yours take a large amount of work?
    I am completely new to operating a blog but I do write in my
    diary daily. I’d like to start a blog so I can easily share my personal
    experience and thoughts online. Please let me know
    if you have any recommendations or tips for brand new
    aspiring blog owners. Thankyou!

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