
Software Engineer
Responsibilities
Qualifications & Requirements
Experience Level: Mid Level
Full Job Description
About the Role
The Linux Systems Group, a vital part of Microsoft's Azure Core Compute group, is at the forefront of powering Azure Cloud through advanced Linux operating systems and virtualization technologies.
We are actively seeking a skilled Software Engineer with robust programming expertise to collaborate with our senior engineering team. Your role will involve the development, debugging, and ongoing maintenance of virtualization software specifically designed for the Linux platform. This position presents a significant opportunity to make meaningful contributions to the growth and innovation of Microsoft's Azure Cloud infrastructure.
At Microsoft, our mission is to empower every person and every organization on the planet to achieve more. As employees, we unite with a growth mindset, drive innovation to empower others, and collaborate to achieve our collective goals. Daily, we build upon our core values of respect, integrity, and accountability, fostering an inclusive culture where everyone can thrive both professionally and personally.
Responsibilities
- Design, develop, and maintain critical Linux features for Guest Virtual Machines (VMs) operating within the Azure infrastructure.
- Enhance and provide support for Linux Hyper-V drivers to guarantee optimal performance, stability, and reliability.
- Contribute to the development and ongoing maintenance of ARM64-based Azure offerings tailored for Guest VMs.
- Implement enhancements and maintain Confidential Computing Guest VM offerings on Azure.
- Engage in close collaboration with the Linux kernel upstream community to integrate new features and improvements.
- Represent the team and Microsoft at international open-source conferences and forums, actively participating in technical discussions and community initiatives.
- Work with relevant stakeholders to define user requirements for new features.
- Assist in identifying dependencies and developing design documents for product features under guidance.
- Learn to create and implement code for products, services, or features, prioritizing code reuse where applicable.
- Provide support and gain knowledge in breaking down work items into manageable tasks and offering estimations.
- Act as a Designated Responsible Individual (DRI) for monitoring system/product features/services for degradation, downtime, or interruptions, particularly for straightforward issues, and recommend restoration actions following established playbooks.
- Review current developments and proactively acquire new knowledge to enhance product availability, reliability, efficiency, observability, and performance, while also promoting consistency in monitoring and operations at scale.
Qualifications
Required Qualifications
- Bachelor's Degree in Computer Science or a related technical discipline, coupled with demonstrated experience coding in languages such as C, C++, C#, Java, JavaScript, or Python, or equivalent experience.
- A minimum of 1 year of experience in programming with C/C++ and a solid understanding of virtualization technologies like KVM, Hyper-V, XEN, Qemu, or Cloud Hypervisor.
- A minimum of 1 year of experience with Linux internals, including process management, file systems, networking, and their relationship to virtualization concepts.
- A minimum of 1 year of experience understanding kernel-space versus user-space concepts.
Other Requirements
- Candidates must be able to meet Microsoft, customer, and/or government security screening requirements. This includes, but is not limited to, specialized security screenings such as the Microsoft Cloud Background Check, which is required upon hire/transfer and biennially thereafter.
Preferred Qualifications
- Bachelor's Degree in Computer Science or a related technical field, with at least 1 year of technical engineering experience involving coding in languages such as C, C++, C#, Java, JavaScript, or Python. Alternatively, a Master's Degree in Computer Science or a related technical field with proven coding experience in these languages, or equivalent experience.
- A minimum of 1 year of experience with Git and standard development workflows.
- A minimum of 1 year of experience in Linux kernel development, device driver development, or embedded systems.
This position will remain open for a minimum of 5 days, with applications accepted on a continuous basis until the role is filled.