August 9th, 2024

My Summer Experience as a SWE Intern at Microsoft

Hi everyone! I’m Serena, a rising 4th year at Rochester Institute of Technology with a major in Computer Science and a minor in Psychology. This summer I was a returning intern at Microsoft as a software engineering intern with the JavaScript and TypeScript Tooling team. In this blog post, I will be covering what it was like to work on language tooling and my overall experience as an intern at Microsoft.

Image of Serena in front of the Microsoft sign

What I Worked On

Over the summer, I worked on a toggle feature for inlay hints (that is additional information about source code that is rendered inline) in Visual Studio. The inlay hint feature supports multiple languages including Python, JavaScript, TypeScript and Razor. My project also involved working on a new settings page on the Tools/Options window for this feature. To complete this project, I had to ramp up on how the Language Server Protocol (LSP) works as well as researching on how a similar feature was integrated into Roslyn (a .NET Compiler Platform for C# and Visual Basic) and Visual Studio Code.

I majorly worked out of the Redmond office. During this summer, I worked closely with my mentor to understand the problem space and how the existing code base worked in relation to inlay hints. This also meant the start of my project was slower than expected. I had anticipated some unfamiliarity with the space I was working in but being thrown into multiple repositories at once felt unsurmountable at the start. With the help of my mentor, I was able to set out weekly deliverables to break the project into smaller chunks of exploration. In addition to this, I met with my manager weekly to give status updates and talk about my internship progression in general. The success of my internship is noted in all the conversations I had regarding development and inlay hints in its entirety. These conversations were cross-team efforts with the Visual Studio Editor team in the second half of my internship. The discussions shaped a lot of what the feature turned out to be (from the choice of a dropdown over checkboxes to the string choices of the settings) and were essential as this feature is going to be available in the next preview of VS! They also ensured I challenged not only my thoughts as a developer but also my introverted personality. I was pushed out of my comfort zone frequently to talk to various engineers off and on my team regarding various aspects of the project. Outside of my project, I got to sit in on triaging bugs and working through feedback tickets on the tooling experience which was insightful to see the connection between users and developers. I also attended multiple intern events, especially those organized for the Developer Division (DevDiv) interns and DevDiv Blacks at Microsoft (BAM) interns.

What I Learned

For the past 12 weeks, there’s been a steady flow of new information and while I was at Microsoft last summer, being on a different team brought new insights into what is possible and what happens at Microsoft. Some takeaways I’ve had from the summer have been:

  • The Language Server Protocol. From working on this project, I got to understand the connection between LSP and the individual language servers as well as the client (Visual Studio Editor).
  • The balance between experimenting and seeking help. Over the summer, I tried to find the perfect time to reach out for help and what I learned was there wasn’t a one size fits all solution. For each roadblock I hit, it took a different length of time to solve it and even if sometimes it was a simple fix, it was a fix I wouldn’t have come to without outside help. Other times, mulling over the problem for a couple of hours would get me a solution and new insights. An example of a roadblock I faced was in implementing the settings page. I was using a complex, outdated implementation for pages as a guide and got stuck when certain parts just did not translate to my scenario. After a couple of tries at making it work, I reached out to the Editor team and found out that was no longer the way they implemented new pages and was given a simpler page as a guide. Everything flowed more seamlessly from there on out. Without reaching out, I would have been stuck on that for way longer with no way forward.
  • Code reviews are not personal. Seeing all the comments come in for my first PR made me think “did I do anything right?”, and I had to work through realizing comments didn’t immediately equal the work I put out was trash or an indictment on my skills. Most of them turned out to be questions for clarification or optimization comments which didn’t mean my approach was wrong but there was a better way to do it.

What I Enjoyed

I enjoyed meeting other DevDiv interns and gaining insight from them on what their teams worked on. I also participated in the Intern Networking Program which was an easy and fun way to meet other engineers across Microsoft and learn about what’s happening in other teams and organizations. Connecting and participating in BAM events also really made my time here enjoyable – seeing a community of people that look like you and with whom you have shared identities is always something I look for in spaces I find myself in and finding that community in Microsoft has been great!

Outside of work, exploring the Seattle area (and enduring the weather here) has been interesting. Also having time to get back into some of my hobbies (reading and consuming an unhealthy amount of reality TV) has been appreciated. In all, the connections and time to take in a new city have been the highlight of the summer.

What’s Next

I accepted this offer last Fall and was very curious about what team and project I would end up working on, what the team dynamic would be, and how working alone on a project would be. I came in knowing next to nothing about language tooling but as I leave, I’m grateful for the experience, the work I got to do, and the people I’ve met along the way. I’m heading back to school for my fourth year and I’m leaving still curious about all the possibilities in this field. I had an amazing summer, and I hope I get to stay in touch with the people that helped make this a great experience!