OverviewAs a
Principal Software Engineer, you will design and develop core debugging technologies, including the Windows debugger and its underlying engine (WinDbg and DbgEng), kernel-mode debugging transports such as KDNET, and Time Travel Debugging (TTD), which records a program's execution so engineers can replay it both forwards and backwards to pinpoint the root cause of the toughest defects. You will work across Windows and Linux and across x64 and ARM64, writing the systems-level code that engineers everywhere depend on to diagnose crashes, hangs, and correctness bugs at the deepest layers of the stack. You will own significant components end to end, designing, implementing, and hardening them for reliability, performance, and security across a broad range of hardware, collaborate closely with product, kernel, silicon, and partner teams to bring up debugging on new architectures and platforms, and help advance AI-assisted debugging so engineers can find answers faster. Your technical depth, strong engineering judgment, and ability to reason about complex systems will be essential to keeping Microsoft's debugging tools the best in the industry.
ResponsibilitiesCore Debugging Technology Development
- Design, implement, and maintain core debugging technologies spanning the debugger engine (WinDbg and DbgEng), kernel-mode debugging transports (KDNET), and time-travel record and replay (TTD).
- Own major components end to end, from architecture through implementation, testing, and long-term servicing.
- Build the extensibility and APIs that let partner teams and the community extend the debugger.
Cross-Platform and Hardware Bring-Up
- Bring up and validate debugging on new hardware, architectures (x64 and ARM64), and platforms (Windows and Linux).
- Partner across product, kernel, silicon, and OEM teams to bring up debugging on new architectures and platforms and to meet the needs of a diverse user base.
Deep Systems Diagnosis and Quality
- Diagnose and resolve deep systems-level defects (crashes, hangs, memory, and concurrency issues) in both user-mode and kernel-mode code.
- Improve the reliability, performance, and security of debugging tools that are used at massive scale.
- Uphold a high-quality bar through thoughtful design, code reviews, testing, and engineering best practices.
AI-Assisted Debugging and Technical Leadership
- Advance AI-assisted debugging capabilities that help engineers reach root cause faster.
- Mentor other engineers and raise the technical bar across the team.
QualificationsRequired/Minimum 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#, Java, JavaScript, or Python.
- OR equivalent experience.
Other Requirements: Ability to meet Microsoft, customer and/or government security screening requirements are required for this role. These requirements include but are not limited to the following specialized security screenings:
- 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 6+ years technical engineering experience.
- OR Bachelor's Degree AND 8+ years technical engineering experience.
- OR equivalent experience.
- Experience building debuggers, debugger engines, or debugging tools for systems-level code.
- Experience with kernel-mode development or operating-system internals on Windows or Linux.
- Familiarity with cross-architecture development across x64 and ARM64.
- Experience with tracing, record/replay, or reverse-debugging technologies.
- Experience improving the reliability, performance, and security of software at scale.
- Self-driven and passionate about developer productivity, with excellent communication skills and customer-oriented problem-solving abilities.
- Proven track record of delivering large-scale, systems-level software across multiple teams and technologies.
- Experience diagnosing and resolving complex defects in low-level software such as operating systems, kernels, drivers, firmware, or debuggers.
#W+DJOBS
#WINDOWSES
Software Engineering IC5 - The typical base pay range for this role across the U.S. is USD $142,800 - $274,800 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 $188,000 - $304,200 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
This position will be open for a minimum of 5 days, with applications accepted on an ongoing basis until the position is filled.