One year as a Software Developer at Microsoft
Back in September 2020, I published a blog post about my experience as a Program Manager at Microsoft that was well received. It made me realize that the community was curious and interested about this role. In this post, I will share my insights as a developer.
Before we begin, keep in mind this is my personal experience, which may differ a lot from team to team, product to product and depend on other circumstances (being remote, culture, etc…).
What is a software developer?
Here is my attempt at defining the job: Someone who is responsible for designing, building, testing, and supporting digital solutions to real life problems.
Of course, the job can take a variety of different forms, especially in large companies like Microsoft.
What are you working on?
My first assignment was the Microsoft Graph Java SDK. I had not done any Java in 12+ years since computer sciences school, and I was rusty to say the least. You will find the details of my experience in Revamping the Microsoft Graph Java SDK.
My focus has now shifted to a new project started by Darrel: we’re building a new fluent API SDK generator for OpenAPI. This new generator supports different languages and allows anyone working with an API described with OpenAPI to generate their own fluent SDK. If you want to know more about it, you can watch this demonstration.
The API council is a team of architects and developers defining API guidance for Microsoft Graph. I get to learn a lot about industry standards and gain experience in API design. I try to “give back” by doing some of the more trivial work, like writing some of the guidance from the notes.
Pull requests reviews
Whether those pull requests are created by apps (dependabot, generation pipeline…), by teammates, or by the community, reviewing these pull requests is paramount to ensure the quality and the consistency.
You should make reviewing code via pull requests a habit in your development team as it provides a learning opportunity for the reviewers and the author.
Since I joined the team, 20 more people have followed. This growth is not limited to my team, our organization has grown substantially during the last year. Jeremy is building the Customers and Partners Experience (CPX/CXP) team, we also have a brand-new team of program managers lead by Kristen.
This growth is rewarding because it leads to “building the plane as we are flying it” which translates in opportunities to learn for everyone.
Do you still get emails? How much time do you spend in meetings?
I have almost achieved “inbox zero”: I often go through a day without receiving a single email. I usually have less than 5 hours of meetings per week. 😊
Our organization is globally distributed, with main points of presence in Nairobi and in Redmond. This distribution is a forcing factor for asynchronous work, which works very well for me. Asynchronous work, when done well, boosts productivity and allows people to live more flexible lives that suit them better.
During this last year, I learnt a lot: not only I was able to brush up my Java skills and learn in depth HTTP/OData/OpenAPI/… on the technical side, but I was also able to about diversity and inclusion through internal training and events.
I hope this post was enlightening about what being a developer at Microsoft means. I am sure the reality for service developers is quite different and maybe I will explore it later in my career. Until next time!