Principal Software Engineer
Microsoft
Principal Software Engineer
Multiple Locations, United States
Save
Overview
Have you ever imagined the world with an infinite amount of storage available and accessible to everyone? A place where everyone in the world can easily access their books/music/photos/video/any data from anywhere at any time via any means (e.g. mobile phones, tablets, PCs, smart devices, etc). Did you ever desire a universally accessible storage system to record all the knowledge known to mankind, to keep all the books/music/videos ever created, or to store all the data collected from all the scientists in the world for them to collaborate upon? Do you want to be part of a team that strives to bring these to reality?
If so, the Microsoft Azure Storage team is what you are looking for. We are building Microsoft’s cloud storage solution - Microsoft Azure Storage, which is a massively scalable, highly distributed, ubiquitously accessible storage system, designed to scale out and serve the entire world. We are looking for Principal Software Engineer who is passionate about distributed storage, more specifically in the areas of resource management of distributed systems. We provide the semantics to virtualize customer accounts and physical hardware across entire geo regions. We also develop and maintain infrastructure related to high performance transfer of customer accounts across storage scale units. One of the core responsibilities is to optimize COGS for Azure storage, while allowing customers to scale out with no limits on ingress/egress/IOPS/capacity.
You will design, implement, test and roll out features that require you to think at zettabyte scale across tens of thousands of clusters across the world. These include distributed load balancing, performance tuning, massively parallel control plane features to manage the exponentially growing storage fleet. To be successful in these areas, you must thrive while solving challenges related to durability, availability and concurrency for a distributed system. You will have an opportunity to make high impact changes on a daily basis as you build a hyper scale storage system that may indirectly or directly be used daily by your friends and family.
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.
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#, Java
- OR equivalent experience
- 3+ years of experience in designing, analyzing, and troubleshooting large-scale distributed systems
- 1+ year(s) hands-on experience and/or subject matter expertise with all or some of the following:
- Multi-threaded/parallel programming
- Storage or file systems
- Distributed systems
- 1+ year(s) demonstrated excellence in:
- Software architecture, engineering and coding practices
- Data structures and algorithms
- Testing, debugging and analytical skills
Other Qualifications:
- 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:
- 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#, Java
- OR 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#, Java
- OR equivalent experience
- 3+ years of hands-on experience and/or subject matter expertise with all or some of the following:
- Multi-threaded/parallel programming
- Storage or file systems
- Distributed systems
- 3+ years of demonstatred excellence in:
- Software architecture, engineering and coding practices
- Data structures and algorithms
- Testing, debugging and analytical skills
- 1+ year(s) experience:
- Planning, scheduling and delivering reliable and performant software
- Designing, analyzing, and troubleshooting large-scale distributed systems
- Proven expertise in Generative AI (GenAI) and/or Machine Learning (ML) applied to large-scale optimization problems, including spike detection, efficient resource packing, partitioning strategies, and intelligent data placement.
Software Engineering IC5 - The typical base pay range for this role across the U.S. is USD $139,900 - $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
Microsoft will accept applications for the role until July 1, 2025.
#azurecorejobs
Responsibilities
- Partners with appropriate stakeholders to determine user requirements for a set of scenarios.
- Leads identification of dependencies and the development of design documents for a product, application, service, or platform.
- Leads by example and mentors others to produce extensible and maintainable code used across products.
- 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.
- Holds accountability as a Designated Responsible Individual (DRI), mentoring engineers across products/solutions, working on-call to monitor system/product/service for degradation, downtime, or interruptions.
- Proactively seeks new knowledge and adapts 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 and shares knowledge with other engineers.
- Embody our culture and values.