We are looking for a Software Engineer to join the virtualization group in the Core Platforms team in Bangalore, India. In this role, you will work on low-level systems development, focusing on kernel-level device drivers and optimizing hardware-level communication to run high-performance guest workloads on modern virtualization stacks. If you have solid C programming skills, a strong grasp of operating system fundamentals, and a passion for solving deep technical challenges at the OS level, this role is for you.
Responsibilities
Writing, modifying, and debugging operating system drivers and low-level kernel components.
Developing and optimizing hypervisor architectures and managing guest operating system interactions.
Working with standardized, high-performance interfaces for virtualized devices (network, storage, console) to achieve near-native performance.
Utilizing advanced system debuggers and telemetry tools to diagnose kernel panics, crashes, memory leaks, and performance bottlenecks.
Requirements
3-5 years of professional software development experience, with at least 2 years of hands-on programming in C.
A strong conceptual understanding of Operating Systems (OS architecture, memory management, threads/processes, interrupts, and concurrency).
Experience troubleshooting complex issues. You should be comfortable reading kernel/virtualization logs when standard print statements aren't enough.
Basic familiarity with x86/x64 CPU architecture (registers, virtual memory, paging).
A strong sense of ownership, and a passion for low-level systems programming.
The following are considered a plus:
Any previous exposure to Linux kernel modules or Windows driver concepts.
Basic understanding of virtualization concepts (VMs, hypervisors like QEMU/KVM, VirtualBox, or VMware).
Personal or academic projects involving embedded systems, bootloaders, or OS internals.