Job Information
Microsoft Corporation Principal Software Engineer in Redmond, Washington
Help Microsoft define the next generation of features available to GPUs, NPUs, and other accelerator devices! The xPU Kernel Team designs the Windows infrastructure and driver interfaces for submitting workloads, managing memory content, negotiating power states, orchestrating virtualizations, and other device management tasks on these accelerators. We work in a crucial area of the heterogenous compute space between runtime workload building and execution on the physical hardware where having efficient and performant algorithms are critical to success. Our components power innovations in AI, gaming, media, and beyond.
In Core OS, we are responsible for the Operating Systems that power Azure, Microsoft's Linux OS, the platforms for Windows Client, Xbox, and our Windows Server ecosystem – through all of these, we support every one of our cloud businesses and billions of customers around the world. In this era of ubiquitous computing, systems software excellence has never been more important for Microsoft. High quality, high-efficiency operating systems and platform components underpin everything we do as a company, from making our systems more reliable for our customers, to increasing our competitiveness by reducing COGS, to delivering new features and capabilities to delight customers – that’s all us!
As a Principal Software Engineer in the xPU Kenel, you will work with industry partners to identify data-driven opportunities for critical (and exciting) new features. You will collaborate with partners to understand the hardware forces involved, experiment with implementations to identify important dimensions of the project, define the OS abstractions to expose these features, and ultimately drive convergence of OS and driver implementations to deliver the feature to the world. You will build a deep technical ownership over the feature spaces you work in, and your expertise will help other teams - both inside and out of Microsoft - deliver valuable products built on your work. This position requires a strong understanding of driver development, kernel-mode programming, and hardware architecture, particularly around memory management, cache hierarchies, and MMU function with page tables and TLBs.
Microsoft’s mission is to empower every person and every organization on the planet to achieve more. As employees we come together with a growth mindset, innovate to empower others, and collaborate to realize our shared goals. Each day we build on our values of respect, integrity, and accountability to create a culture of inclusion where everyone can thrive at work and beyond.
Responsibilities
As a Principal Software Engineer, you will be responsible for the following:
Leads identification of dependencies and the development of design documents for a product, application, service or platform. Leads identification of other teams and technologies that will be leveraged, how they will interact, and when one's own system may provide support to others. Leads efforts to determine back-end dependencies associated with product, application, service, or platform functionality for the solution/product. Demonstrates deep understanding of up and downstream effects of solutions and work provided to ensure appropriate security and performance, driving reliability in the solutions, and optimize dependency chains and retrieves across teams. Identifies areas of dependency and overlap with other teams or team members and drives coordination. Enables cross team communications and resolves conflicts between teams.
Leads efforts and discussions for the architecture of aspects of products/solutions (e.g., design, cost). Creates proposals for architecture and design documents, and leads testing of hypotheses and proposed solutions. Shares and acts on findings from investigations, owns design decisions, and oversees the less experienced team members. Leads the development of design documents for designs or User Stories and determines the technology that will be leveraged and how they will interact. Leads design discussions with the team and shares findings/learnings from investigations, holding ownership for design decisions. Leads efforts to assure system architecture meets security and compliance requirements and expectations.
Leads by example and mentors others to produce extensible and maintainable code used across products. Leads efforts to optimize, debug, refactor, and reuse code to improve performance and maintainability, effectiveness, and return on investment (ROI). Identifies best practices and coding patterns and provides deep expertise in the coding and validation strategy. Creates and applies metrics to drive the quality and stability of code, as well as appropriate coding patterns and best practices.
Leads efforts to identify key partners and maintains communication with key partners across the Microsoft ecosystem of engineers. Acts as a key contact for leadership to ensure alignment with partners' expectations. Builds partner teams across Microsoft (e.g., Xbox, Office) and their end-goals for products to drive and achieve desirable user experiences and fitting dynamic needs of partners/customers through product development. Escalates situations internally to resolve complex blockers.
Leverages subject-matter expertise of cross-product features with appropriate stakeholders (e.g., project managers) to drive multiple group's project plans, release plans, and work items. Breaks down long-term project vision into milestones as part of an overall roadmap. Guides other members for project estimation and escalates any issue that would cause a major delay.
Qualifications
Required Qualifications:
Bachelor's Degree in Computer Science or related technical field AND 6+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, or Rust
OR equivalent experience.
3+ years of experience of CPU, memory, and device hardware architectures and understanding of memory management fundamentals like memory caches, MMUs and TLBs, NUMA locality, and related concepts.
2+ experience with systems programming in the kernel, including strong kernel debugger skills.
Other Requirements
Microsoft Cloud Background Check: This position will be required to pass the Microsoft Cloud Background Check upon hire/transfer and every two years thereafter.
Preferred Qualifications:
Master's Degree in Computer Science or related technical field AND 8+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, or Rust
OR Bachelor's Degree in Computer Science or related technical field AND 10+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, or Rust
OR equivalent experience.
Awareness of WDDM and MCDM driver models.
Software Engineering IC5 - The typical base pay range for this role across the U.S. is USD $137,600 - $267,000 per year. There is a different range applicable to specific work locations, within the San Francisco Bay area and New York City metropolitan area, and the base pay range for this role in those locations is USD $180,400 - $294,000 per year.
Certain roles may be eligible for benefits and other compensation. Find additional benefits and pay information here: https://careers.microsoft.com/us/en/us-corporate-pay
Microsoft will accept applications for the role until January 10, 2025
#CoreOSJobs
#AEPJobs
Microsoft is an equal opportunity employer. Consistent with applicable law, all qualified applicants will receive consideration for employment without regard to age, ancestry, citizenship, color, family or medical care leave, gender identity or expression, genetic information, immigration status, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran or military status, race, ethnicity, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable local laws, regulations and ordinances. If you need assistance and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations (https://careers.microsoft.com/v2/global/en/accessibility.html) .