🔹 Round 1: Core Technical + Problem Solving
This round focused on fundamental programming concepts and problem-solving skills. Here are the questions I was asked:
✅ Conceptual Questions:
Pointer Type Conversion – Explained how typecasting works between different pointer types and its implications.
Pointer Dereferencing – Discussed how dereferencing works and what happens under the hood.
Deadlock – Defined deadlock, its causes, and strategies to avoid it (e.g., resource ordering, timeout, wait-die/wound-wait).
Virtual Memory – Explained the concept, its purpose (e.g., abstraction of physical memory, memory protection), and how it enables multitasking.
Pre-Increment vs Post-Increment – Clarified the difference in evaluation order and use cases.
🧩 Coding Problems:
Find the unique number in an array where all others are duplicates
Approach: Used XOR operation to isolate the unique element.
Find the unique number in an array where all other numbers appear thrice
Approach: Used bit manipulation and counting bits at each position.
💬 Result:
I was able to answer most of the questions correctly. However, I felt my confidence was low while explaining, which affected the clarity of my responses.
🔹 Round 2: Domain-Specific + System Design
This round was heavily focused on WiFi systems and low-level programming. It was more challenging and required in-depth knowledge of my domain.
🧠 Technical Questions:
Explain your work – Asked to describe my current responsibilities and contributions.
What is PWHM? – I wasn’t familiar with this term and couldn’t answer confidently.
What is hostapd? – Explained it’s a user-space daemon for access point and authentication.
WiFi Connection Flow – Asked to explain how a device connects to WiFi (scan → auth → assoc → 4-way handshake).
Hostapd and Driver Interaction – Discussed how hostapd communicates with the kernel via netlink and cfg80211/nl80211 interfaces.
Achievements – Asked to highlight key accomplishments in my current role.
🧩 Coding Problem:
Implement a custom malloc function
Challenge: I struggled with this due to stress and lack of preparation in low-level memory management.
💬 Result:
I was very stressed during this round and couldn’t articulate my thoughts clearly. I struggled with both technical depth and communication. Overall, I did poorly in this round.
📘 Takeaways:
Practice explaining your work clearly and concisely.
Revise domain-specific tools like hostapd, wpa_supplicant, cfg80211, nl80211.
Strengthen system programming skills (e.g., memory management, custom allocators).
Work on stress management during interviews—clarity matters more than perfection.