Software Engineer II
Location: Redmond, Washington
Job Type: Full time
About ECS: Powering M365
M365 Experimentation and Configuration Service (ECS) is part of Substrate Change Management and a key to powering our clients and services. By building our clients and services around configuration we are able to control our clients’ behavior to improve user experience, roll out features as they are ready, and do controlled experimentation on our experiences to maximize our users’ experience. ECS is a multi-purpose change management platform with integrated scenarios with a wide range of Microsoft tooling.
Operationally, ECS comprises a management service providing a UX and API to manage the configurations and a configuration service to handle the high volume of queries from the clients and services querying ECS. ECS uses a microservice architecture built on Azure. It uses redundant network, compute, and datastores to serve billions of client configuration requests daily with 99.99% reliability.
Do you want to have a billion users at your fingertips? The day to day job of the ECS team is provide core mechanisms that let M365 product teams deliver on their goals to make every experience better. Every time someone sends an email in Outlook, conducts a Microsoft Teams conversation, sync on OneDrive or simply launches any of the Office applications, ECS is involved. Furthermore, ECS is collaborating with teams across M365 and Microsoft to combine our capabilities in these areas to give teams across MS the powerful features needed to deliver new, compelling experiences for our users.
- Join a team responsible for highly scalable distributed cloud services in a dev-ops environment
- Customer-focused with a commitment to livesite issues and periodic duty as on-call engineer in case of incidents
- As part of a unified engineering team, implement both the features and appropriate tests during development
- Collaborate inside and outside the team
- Mentor and develop others by sharing and learning.
- Participate in code reviews, providing and receiving constructive feedback to improve overall code quality
- Proactively manage risks and security, and suggests improvements to existing risk-management processes.
- Have fun and learn new things
- C#, Java, or C++ experience (2+ years)
- Familiarity with highly scalable distributed micro services handling thousands of requests per second
- Azure experience preferred
- Ability to independently resolve technical issues and help the project to move forward
- Experience with multithreading and asynchronous processing
- Deep knowledge of run-time, OS, and networking stack to maximize performance and efficiency a plus
- Experience with pair programming
- Experience with databases (SQL or noSQL) a plus
- Web Application development experience a plus
- Thick client development experience a plus
- Hands on experience with configuration and/or controlled experimentation a plus
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.
Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work.