Introduction

My name is Malcolm Wright, and I am a fourth-year student at the University of Guelph. This blog will detail the goals I made for myself, and the plan I made to achieve these desired goals. Furthermore, this blog will go over my role as a Software Engineer intern at Microsoft.

Employer Information

Microsoft Corporation is an American multinational technology company which produces computer software, consumer electronics, and personal computers. Founded in 1975, Microsoft began developing and selling BASIC interpreters for the Altair 8800 and then moved on to MS-DOS. Microsoft Windows followed shortly after. Throughout this internship, I lived in Bellevue, WA and Seattle, WA and worked at the Redmond offices in Washington, USA. During my time there, I worked on the Media Transformation and Analysis (MeTA) Web-Role team in the OneDrive & SharePoint product group within Microsoft. Later in this report, when I say ODSP, it is short form for OneDrive & SharePoint. My manager was Donna Huang, and my mentor was Stavan Patel. An interesting fact is that I worked in building 34 which is the building Satya Nadella (the CEO) works!


Goals

Learn what day-to-day working as a Software Engineer looks like, and what different promotions or paths I can take in my career.
Be brave to ask the "why" questions to be able to understand the big picture and understand the reasons behind the decisions I make.
Leverage rapid prototypes and build small iterations of software using a specific technology.

To begin, the goals this time around were different than my first time at Microsoft. This was different because of a few different reasons. Firstly, this would be my first time doing a true Software Engineer internship at Microsoft, so it was a lot more engineering-focused compared to my previous internship. Secondly, this was in-person, so I had the opportunity of exploring the campus, meet people, and work in an office day to day. Finally, I heavily focused on research & development during this internship which was different than the work I did at Tulip.

Starting with the first goal, I made it my mission to get more out of the networking this internship than the one I did last year. I met with several other full-timers from SWE 1 level to Principal Architect and Partner Software Architect! Along the way, I learned what their day-to-day life was like and how promotions worked. Furthermore, I gained a lot of insight and wisdom from these full-timers, and I made important connections for the future.

Being able to answer “why” questions and tell the story of what you are doing is important as you progress in your career. Due to ambiguity, you need to be able to decipher what exactly is being asked. There was a lot of ambiguity and gray areas in the project that I wasn’t sure about, so I made it a priority to get clarity from team members, people outside my team, and my mentor.

My last goal is critical when doing R&D because you are constantly learning new things. So, I can ensure everything works as expected, I made small programs and incremental steps before moving forward. I would like to think I accomplished this goal for the most part, but I could get better with it over time.

Job Description

The team I was on (Media Transformation and Analysis) is a team in the OneDrive & SharePoint Core (the backend portion of ODSP) that is one of the main teams that work on the MeTA API since other teams make changes there. The MeTA API provides on-demand thumbnail generation, file conversion, and many more transformation and analysis services. It is used in many areas of Microsoft products where you need the abilities mentioned above, not just in OneDrive or SharePoint. As a result, the service is very mature and provides its functionality to many clients – roughly 4 million authenticated requests every 3 minutes! With this background in mind, I couldn’t implement features or fix bugs for the team. Instead, I was tasked with investigating a reverse proxy called Traefik, which was focused on R&D instead of writing features/bugs for MeTA. I researched and implemented the documentation for Traefik, and I ran the reverse proxy within a Docker container. To ensure Traefik worked as expected, I wrote a couple of small services in Python, and I wrote those services and made routes for them in the Traefik configuration. Furthermore, I used the different providers, and I utilized Redis as the final provider for dynamic configuration. Near the end of my internship, I connected a Grafana dashboard through the usage of Prometheus on Traefik which enables the team to view important metrics of requests that go through the reverse proxy. Finally, I wrote all my findings within the team’s OneNote which can help inform the team in potentially using a reverse proxy in the future with the current MeTA API which has a monolith structure.

Conclusion

My experience at Microsoft was amazing! I got to meet incredibly smart and funny people and made a lot of great connections – both personally and professionally. Because the internship was in-person, I was able to explore the Pacific Northwest where I went to Oregon and explored other parts of Washington. Finally, I had the chance to learn so much through the internship which was great.

Acknowledgements

I would love to thank my mentor Stavan Patel and manager Donna Huang. They were incredibly open and honest with me, and they routinely took time to provide help when I needed it. Furthermore, I would like to thank the rest of my team as they are very down to earth and smart people. It was a pleasure being on this team because of the wisdom and experience I soaked up. I’m grateful I had this opportunity this summer!