Interviewing candidate for a mid level requires lot of scrutiny to get right candidate. I had always had list of areas I would like to cover the depth in the area is depends on the candidates interest and experience, but I would like always make sure to know his breadth. Here is my notes (Crude copy paste from One Note)
- OOPs
- Delegates / Extended Methods
- Threading (Pool / TPL / Native)
- Could not differentiate Static and Dynamic poly
- Abstract and Interface
- Abstract Factory
- Virtual, Override
- Partial class
- .Net basics
- Reference type, value type
- Call by value and call by reference
- Why Reflections / Why Garbage Collection & How
- Collections
- Stack, Queue
- Array, Array List
- Hash table, Dictionary
- Build & Deployment
Debugging
- When ASP.Net page is slow how do you respond?
Technology Area
- ASP.Net (Single sign-on)
- Cache, Paging
- Session
- Application - Global.asax
- Tracing
- Error handling
- Profiling
- AJAX
- Configuration
- HTTPModule & HTTPHandler
- ASP.Net Pipeline
- User control, Customer control
- Authentication, Authorization
- Member provider
- Data Binding
- MVC / MVVM
- Entity Framework / ORM / LINQ
- WCF (RIA, OData) / WPF / WF / SL (MEF, Prism)
- Design Patterns
- SQL (SSRS, SSIS, SSAS, TSQL)
- SharePoint (Customization, Performance Point, Power View, Power Pivot)
Designing Skills
- Consider you are building simple Reporting solution to where you need to show data from DB to an UI page. What are you primary question to estimate & design this app?
- Number of Reports
- Size of data
- Number of users
- Authentication
- Performance needs, Frequency of data change and Caching
- SP vs Dynamic SQL
- AJAX & Pagination
Technical Leadership
- Code Review
- Readability
- Each method one action
- Input validation
- Error Handling
- Performance & Caching
- View State
- Estimation
- Task allocation and tracking
Tools
- Fiddler
- FxCop
- Beyond Compare
Logical Thinking
- Designing lift logic
- Designing Railway platform logic
- Representing hierarchy using Array
- Thread Synchronization
- Tic-Tac -To who to create next move based on current state
- How to you store the state
- Compare two sets
- Process communication