Role: Associate Software Engineer
College: Not Specified
Interview Date: January 7, 2017 (F2F rounds)
Interview Type: Off-Campus (Telephonic and F2F)
Result: Not Specified (Implied progression to F2F rounds)
Difficulty: Medium to Hard (Round 4 was tough)
Rounds: 4 rounds (1 Telephonic, 3 F2F)
Topics Asked: Projects, Operating Systems (Memory management, CPU scheduling, Deadlock, IPC, Process vs Thread, Mutex, Locking systems, Call stack, Stack vs Heap memory), Data Structures & Algorithms (Linked List, Binary Tree, Stack, Queue), C Programming (memcpy, sizeof operator, Inline functions, Pointers, Storage classes, Bit manipulation), Big/Little Endian, Logical Puzzles.
Experience:
This candidate had one year of experience and interviewed for an Associate Software Engineer role. The process involved a telephonic round followed by face-to-face interviews in Hyderabad.
Round 1: Telephonic (70 minutes, by 2 persons)
- Discussion about projects done in the current company and college.
- Operating System concepts: Memory management, CPU scheduling, Deadlock and its real-time examples, different ways for inter-process communication.
- Coding questions: Reverse a linked list, Print left view of a binary tree, Implement your own memcpy.
Round 2: F2F (120 minutes)
- Introduction and explanation of the position.
- Detailed discussion on all projects, including fixing memory overflow and crashes.
- Questions on big and little endian: notation, OS examples, writing code to work on both.
- Coding/Logic: Find the word 'is' (both as part of a word and as a separate word) in a given paragraph. Solutions using "strcmp" and custom logic (HashMap, normal word searching) were discussed.
- Ten output-based questions on pointers.
- Basic programming questions, e.g., x.h included in y.
Round 3: F2F (80 minutes)
- This round was described as more logical and tough, focusing on pointers and memory access.
- Explain Inline function, cases where it won't work, its internals, and speed advantage. Comparison with function pointers.
- Implement your own `sizeof` operator.
- Operating System concepts: Process vs Thread difference, handling two threads working on the same MAP, mutex, and different locking systems.
- Questions on Storage classes in C.
- Coding: Reverse the bits of a number.
- Discussion on the call stack of a program.
- Use of stack and queue data structures.
- Difference between stack and heap memory, explained with a simple program.
- Questions on Function pointers and their usage.