Microsoft Corporation Software Engineer 2 in Hyderabad, India
Customers across the world rely and depend on Azure to deliver the services they need to work, every day. In order to make this work for our growing customer base, we need continual effort to make Azure highly reliable. Join a growing team, owning reliability of Azure, one of the largest public cloud. Our team - SRE, represents a deep investment in improving the availability, reliability, operations efficiency and release velocity of Azure services. We build solutions to ease the path to build, manage and operate large-scale, massively distributed, fault-tolerant systems.
SREs are people who take engineering-based approaches to solve operations problems by automating toil, reducing production touches, improving production operability, observability and stability. We not only automate but proactively drive continuous improvement in all phases of software construction, design, delivery and operations. SREs build platforms & solutions enabling creation of operations friendly systems from the get go. SREs improve business outcomes such as reliability (SLA), efficiency, scalability and product innovation - enabling customer success.
SREs could be successful in perhaps any software team, but typically have an interest in behaviour of distributed systems generally. They care deeply about software quality and how software is constructed and designed with a production oriented focus on monitoring, release processes, safe deployments, performance optimization, capacity management, crisis response, resiliency engineering and similar concerns beyond pure functionality are important to SREs and are relevant to improving reliability. If this resonates with you, we'd like to talk.
We offer you a strong team, exciting engineering challenges, a fun place to work and surrounded with world-class engineers. The work environment empowers you to have a real impact on billions of end users and a rare opportunity to be part of core platform team at a large public cloud scale.
The scale of our operations is enormous. Microsoft's products and services are overwhelmingly consumed online, and billions of people use them every day. We need people who enjoy analyzing complicated problems, coming up with creative solutions, working in focused teams to build things no-one has thought of before, all in the service of production reliability.
If you are excited by this type of challenge, and you love to work in groups of people who are similarly excited, come join us. We value the input of people who aren't afraid to be learning all the time, who celebrate mistakes because they show the way forward, and those who are happy to continuously improve. We strongly believe that diverse experiences and backgrounds, and an environment where everyone can feel safe to contribute their own insights in a data-driven, objective, but the supportive way is the key to making the best workplace possible, and the best workplace makes the best products and services. Not only is it the smart thing, it's the right thing.
We would like to talk to you if you:
Are interested in distributed systems and working with high scale services.
Like to work in a fast-moving environment and you aren't afraid to change things to make them better.
Enjoy new technological challenges and solving hard problems.
Believe that a team working well together is truly smarter than the single smartest person on that team.
Aspire to grow as a person, as a teammate, and as an engineer.
We try not to have too many formal qualifications, since mindset and demonstrated ability are more important, but previous successful candidates have often had some or all of the following:
Background in Computer Science equivalent to a B.Sc.
4+ years of software development: automation-related experience valued in particular. Scripting languages such as bash, python, and PowerShell, or compiled languages such as C, C# and Go are most relevant but others are acceptable.
Awareness of, and ability to reason about, modern software & systems architectures, including load-balancing, queueing, caching, distributed systems failure modes generally, microservices, and so on.
Associated troubleshooting skills, including the ability to follow RPC call-chains across arbitrary network steps. Consequent understanding of monitoring in distributed systems.
Deep understanding of operating system level concepts such as processes, memory allocation, and the network stack; understanding of how applications are affected by the above, and ability to debug same.
Experience with working in a team, including co-ordinating large projects, communicating well, and exercising initiative when presented with problems.
Generally speaking, practical experience running large scale online systems is always an advantage.
Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you need assistance and/or a reasonable accommodation due to a disability during the application or the recruiting process, please send a request via the Accommodation request form at https://careers.microsoft.com/us/en/accommodationrequest .
Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work.