• Candidate will be expected to write a working and bug free production ready code and not a pseudo code
• Optimize the code and check for edge cases, null cases, happy cases, etc. before presenting the code.
• Should be able to take into account run-time/space-time complexity.
• Should be able to optimize the code, modular programming, & Dynamic Programming.
• Overloading vs. Overriding.
• Encapsulation and inheritance.
• Inheritance and polymorphism
• HLD (Component wise segregation)
• LLD (Class & sequence diagram)
• Design patterns. Design tool if you’ve worked on any.
Problem Solving Skills
• Listen & understand problem statement completely before attempting the solution and avoid jumping on to the solutions abruptly (seek 100% information).
• Ask more clarifying question and be receptive to hints provided by the interviewers. Articulate and express thoughts clearly & crisp. Make the interviewing experience more interactive.
• Should be able to deal with ambiguity.
• Sorting, Merging, Searching algorithms techniques.
• Uses and implementation of DS like link-list, queues, arrays, trees, binary trees, stacks, and hash map etc. The person should not only have conceptual knowledge, but should have used it.
• BFS, DFS, maximum number of nodes at a level of binary trees.
• Expert knowledge of Java, C/C++ or C# is a must.
• Solid understanding of Object-Oriented design and concepts.
• Good knowledge & experience in Data structures & Algorithms.
• Passion for building scalable, global, complex systems to solve problems with proven ability to deliver high quality software.
• Innovative and creative with Web technologies to build high performing websites and web services.
• Self-directed and capable of working effectively in a highly innovative and fast-paced environment.
• BS or MS in Computer Science or in a relevant Engineering discipline.
• Preferred experience range between 4-8 years.