Wednesday, January 18, 2017

Skills Expectation from 7+ years of .Net/Java professional

In the last year, I decided to separate from earlier company and started looking for job opportunities.
As  my overall experience in the product based companies and interested in only product based company like Philips, Amazon, GE , Harmon, ABB, Fluke, Morgan Stanley etc.

By giving interviews to some of the above companies, got to know what companies expect from 7+ years of experience. So decided to share technical expectations so it can help others who is looking other opportunities.

1. Strong in OOPS - Inheritance, Polymorphism, Encapsulation and Abstraction.
     Clear difference between the Encapsulation and Abstraction is very important with examples.

2. Identifying objects/Classes when designing any system like implementing PayRoll System, Calculator, TicTacTo game etc.

3. UML concepts : Association, Composition and Aggregation with examples. Required to know Activity, Sequential and class diagrams.    

4.SOLID Principles in/out everything: Clear understanding of Liskov Substitution and Dependency inversion principle. Apart from DIP, Inversion of Control and Some IOC containers(DI injects) like Unity, NInject or MEF any one of clear understanding.

5. Design pattern : To explain design pattern, intent of pattern means what problem it is supposed to solve and difference between the patterns(Factory v/s Abstract Factory) is very important.
Some required patterns are: Singleton(difference with static class), factory, Abstract factory, Builder, Adapter, Facade(v/s Controller), Decorator(v/s Normal inheritance), Strategy, Repository, Unit of Work and visitor.

Architectural patterns : MVC, MVP, MVVM and layered Architectures.
UI layer, Workflow, Business, Data Access layer and Cross cutting concerns responsibilities and communication between these layers.
In the following links Design patterns are explained bit well.

6. For .Net framework- Required to read the CLR via C# by Jeffery Ritcher and WPF by Adam Nathan.
Be aware of latest release of new features in .Net 4.6.1 and WPF4.5
CLR and memory management is very important :)

7. Memory profiler : DotTrace or PerformanceMonitor(any one).

8.  Data Structures : List, Stack, Queue, Tree, Graph and HashTable (Collision techniques).Some problems based on that.
We can practice using the following links:

9. Unit Testing Framework : NUnit with Rhino mocks/Moq.
   Clear understanding of Stub vs Mocks 

10. Managerial Round : last but not least
·        How to gather requirements(Feature Specifications)
·        How to start the project from scratch (Basic Infrastructures)
·        How will ensure that your software is ready?
·        After getting into the project , how to start learning the big system.
·        UX and UI- How you take care.
·        Last project worked Architecture (very important)
·        Types of tests and How unit and Integration tests will help.
·        How you mentor new joinee.
·        Some random questions.....
Hope this might help to somebody in small world :)

 Please let me know , if any good links to learn more things.