Principal Software Engineer
Microsoft
Are you energized by the opportunity to build systems that operate at cloud scale? Do you enjoy working with cutting-edge technologies and solving complex challenges? We are seeking software engineers who are passionate about advancing cloud infrastructure. Join our dynamic team at Azure Core Compute and be at the forefront of building the next generation cloud that will redefine how businesses scale, collaborate, and thrive
We are on the mission to make Azure the world’s computer powering all customer workloads! The Azure Core Compute host team is responsible for customer-facing compute offerings and management across virtual machines (VMs), containers, bare metal as well as exploring forward-looking host technologies including evolving the host OS, utilizing hardware offloads and leveraging disaggregation. As a mission-critical cloud platform, our goal is to ensure industry-leading availability, reliability, performance consistency at scale, compliance and security.
As a Principal Software Engineer on our team, you will lead features that run on millions of nodes, work across organizations to meet the scale, elasticity, latency and reliability demands of our customers. You will have opportunities to learn new technologies and design the next version of services adapting to hardware evolution. You will have the freedom to ideate, create and provide thought leadership in bringing innovation to our products and engineering practices and grow. Whether you are optimizing compute performance or enabling new capabilities, your work will help drive meaningful improvements across Microsoft Azure.
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.
#azurecorejobs
Responsibilities
- Collaborate with appropriate stakeholders to determine user requirements for a scenario. Leverage a variety of feedback channels to incorporate insights into future designs or solution fixes.
- Lead discussions for the architecture of products/solutions and create proposals for architecture by testing design hypotheses and helping to refine code plans.
- Create, implement, optimize, debug, refactor and reuse code to establish and improve performance and maintainability, effectiveness and return on investment (ROI).
- Independently create a clear and articulated plan for testing and assuring quality of solutions. Identify the need for a broad versus selected approach in testing mechanisms and make informed decisions to implement the most effective tests.
- Leverage performance and profiling tools to identify hot spots and bottlenecks across hardware and software boundaries
Act as a Designated Responsible Individual (DRI) and guide other engineers by developing and following the playbook, working on call to monitor service for degradation or downtime, alerting stakeholders about status and initiate actions to restore service.
Act as a DRI for release management, ensure the release sticks to the schedule by identifying reasons for blockers/delays, improve the signals that are blocking deployments, triage the issues are new vs existing, mitigate and work towards improving the release process.
Proactively seek new knowledge and adapt to new trends, technical solutions and patterns that will improve the availability, reliability, efficiency, observability, and performance of products while also driving consistency in monitoring and operations at scale.
Qualifications
Required Qualifications:
Bachelor’s or Master's degree in Computer Science or related technical discipline or equivalent industry experience.
10+ years of technical engineering experience with coding in C/C++
10+ years of experience of designing, building and shipping high quality system software.
Preferred Qualifications:
- Experience in building components of OS, own applications that run on SOC
Native Windows or Linux development experience
Experience using Rust programming language
Experience with Hyper-V, VMWare, Docker or other virtualization technologies
Knowledge of Performance profiling tools
Proven ability to create componentized and well-architected software.
Experience with improving service operations or engineering fundamentals.
This position will be open for a minimum of 5 days, with applications accepted on an ongoing basis until the position is filled.
Microsoft is an equal opportunity employer. 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 with religious accommodations and/or a reasonable accommodation due to a disability during the application process, read more about requesting accommodations.