Completely Textbook Recite Interview. Looking for textbook memory guy rather than analysis.
First got a 30 minutes over-the-phone question set by the ED level lead
- Very Large Object Heap, how do you reallocate super long array objects back to heap, and the problem with VLOH
- The fastest way of copying array in C# is memory copy (do you need to get this low level with C#? How do you know the CLR is not optimizing towards memory copy?)
- How do you implement a ArrayList (actually it is an array with list implementation) and the problem with it (this is not generic in C# and is legacy for so many years already. I guess little candidate still know the super legacy ArrayList C#?)
- List out new features for C# .NET 3.5, 4.0, 4.5.
IF, you can pass all these questions over phone, you will be given a 1.5 hour on site face to face technical questions again with 2 VP team members.
- Differences between ValueTypes and Reference Types, and give some examples
- Precisely - Differences in "memory representation" in ValueTypes and References Types (They are referring to Heap and Stack, and it's incorrectly described as memory representation)
- Where objects get allocated in memory (Heap and Stack)
- What can you do with delegates but not events
- Is delegate Reference Type or Value Type
- What is EventHandler, EventArgs
- List out Actions/Func difference with delegate, events
- What is the major differences for function pointer in C++ and delegate in C# (I said inheritance / contravariance ....) But MSDN it says type safety.
- Do you know what is the IL ("bytecode") being generated for Property in C#
- What is the significance for Property in C# (Data Binding)
- How do you pass by reference with primitive types (convoluted question that you need to use out as parameter like TryGet methods in Collections)
GUI question set:
- Can you map a field in WPF without using Property
- Cross threads operation. BeginInvoke, ..... etc etc etc
- The rest - just open the MSDN C# Programming Guide and CLR Spec and recite, please
Tools Section
- What tools do you use to help refactor, profile memory (Resharper, Redant, VS Premium Profiler, Performance Monitor,....)
- How do you do unit testing, TDD, do you do test first or write the stuffs first, etc
Experience Section
- Did you experience some scenarios that your screen is freezing and how do you fix this
To close out the interview, you need to recite this:
- I am very interested in C# best practices from your experiences. Must be VERY C# specific (not to say those Unit testing, SDLC, ) You must be able to suggest some
If you are still able to break through this
You will be given another on site pair coding test.
And the end the interviewer reiterates: Sorry, we just have too many best of the very best people in this industry, proclaiming he is the worst within the team.