Interview Experience: IBM ISDL – Linux Kernel Developer (Bengaluru)

Role: Linux Kernel Developer
Team: IBM ISDL
Location: Bengaluru
Mode of Interview: Online
Number of Rounds: 2 (Technical)

Round 1: Systems Programming + Coding
This round focused on low-level systems concepts, C programming, and basic coding skills. The questions were mostly theoretical with a couple of coding problems.
Technical Questions:

What is the volatile keyword used for in C?
Can you name some compiler optimizations?
Difference between mutex and spinlock?
What are synchronization primitives?
What is RISC vs CISC architecture?
What is virtual memory?
How is virtual memory mapped to physical memory?
What does the Memory Management Unit (MMU) do?
What is a system call and how is it handled?
Difference between static linking and dynamic linking?
Have you used any debugging tools like GDB?

Coding Questions:

Valid Parentheses Check

Stack-based implementation to validate balanced parentheses.

Chessboard Color Checker

Given a row and column, determine if the square is white or black.

Result: ✅ Cleared
I was able to answer most of the theoretical questions and successfully solved both coding problems. The interviewer appreciated my clarity and approach.

Round 2: Kernel Internals + WiFi Domain Knowledge
This round was more domain-specific, focusing on kernel-level understanding, WiFi internals, and debugging experience.
Questions Asked:

What type of work do you do in WiFi?
What is a driver?
How does a page fault work?
How is a system call implemented in the kernel?
Explain basic WiFi association process.
What have you learned from your work experience?
What kind of bugs have you fixed?
How do you debug a kernel call trace?
How does hardware memory allocation work?
What is the use of virtual memory if only one process is running?
Why are you interested in this role?

Result: ❌ Rejected
I struggled to answer several in-depth questions, especially around kernel internals and WiFi protocol-level details. I couldn’t clearly articulate my work experience and technical capabilities, which impacted the outcome.

Takeaways & Advice

Round 1: Focused on core systems, C language, and basic coding. Preparation in OS, memory management, and debugging tools is essential.
Round 2: Required deep understanding of Linux kernel, WiFi stack, and real-world debugging. Be ready to explain your work clearly and confidently.
Preparation Tips:

Revise Linux kernel internals (system calls, page faults, MMU, memory allocation).
Understand WiFi protocols (802.11 basics, association, power save modes).
Practice explaining your project work, bugs fixed, and tools used.
Stay calm and structured in your responses.

Comments (1)