Microsoft Explore Internship: A Remote Experience Self-Reflection
The technical and personal aspects about what I learned this summer. My heart and mind opened up a lot :-)
This summer I was an Explore intern at Microsoft. The Explore intern role is where a first or second year in college is placed in a “pod” of 2 other Explore interns and together they learn the role of software engineer while rotating through being program manager.
In this piece, I will be mainly self-reflecting and highlighting my key takeaways and lessons learned so some of the ideas may not apply broadly :-)
Some highlights were…
- My intern project! Alongside 2 pod-mates, I built a full-stack audit tool and report-viewing system to help a Microsoft internal tool increase security and adhere to privacy and compliance standards. Fun fact: Our team name was Three Peas in an Intern Pod :-)
- The Microsoft Hackathon! I helped design and user test the information architecture and usable commands of a Figma plugin to make the Figma design tool voice-powered as a means of accessibility.
- A redesign side project! I created new features including quick-view metrics for the homepage of an internal tool to make it a time-saving, easy-to-understand experience for Microsoft employees.
- Participating in my product group inclusion conversation! I discussed allyship and lived experiences during the pandemic to 200 Microsoft employees. I opened myself up for the first time to a deeper conversation with not only a broader audience but also people outside my age group.
- Meeting a lot of amazing people! I had 42 unique 1:1s with software engineers, program and design managers, researchers, data scientists, recruiters, product leadership, and interns.
A Day in the Life: The Remote Experience
Every day was exciting and every day I learned something new. I usually tried to split half the day into the technicalities of my intern project and working with my pod and the other half into meetings like standups, learning about what my team does, and intern workshops or social events.
At the beginning of learning a new part of my team’s tech stack, I struggled a lot. It was a tough balance of being able to read a codebase so large, understand how each part worked with the whole, and asking full-time developers for help. My mentor, Vivien encouraged me to keep at my project goals and by the end I could identify and solve my own technical challenges.
“Even though I make mistakes, if I make progress everyday I can become a better person” — Vivien
What I did well…
Opened myself up to constructive criticism then took action
At every 1:1 with my mentor and manager I asked what weaknesses they saw and came back the next week with actions I had taken to improve based on their feedback. During presentations, I would reveal ideas and features that were not over-polished as to seek constructive criticism and critical questions that break apart a project so I would have to rebuild it stronger. It was very humbling and I wanted to be defensive a lot but overall matured that:
by listening to feedback from the full time engineer’s perspective and questions, I would become a better developer, presenter, and teammate.
Took charge of my remote internship experience
Part of the in-person internship I missed was an element of randomness.
If I had been on Microsoft campus, it would have been a lot easier to see executives walking about, ask people if they want to grab $0.75 scoops of ice cream, or code in the treehouse with me. Nonetheless, I knew I still had to make the most of my visibility. I contacted as many people willing to talk to me to learn about Microsoft, software development, team dynamics, and how design and product culture have changed over time at the company. I also tried to make time to make friends like I would in-person.
Divided my time well, was flexible, and put my best foot forward
I know my peak productivity hours are from 5 AM — 11 AM and after that is best for meetings. I am glad I woke up early to do solo work even though it meant going overtime due to “normal” work hours. I am also proud I came to meetings prepared with an agenda and if a process for planning wasn’t in place, I would make one. Early on, I discovered scheduling a lot of meetings required context switching which makes people less productive so I am glad I quickly gained an aptitude for the best timing to schedule meetings. Finally,
I put my best foot forward in choosing battles wisely and letting most annoyances slide — putting project and work goal over my emotions.
This internship taught me I should…
Be more open about my shortcomings and lessons from them
During the internship, I had to lay out all my mistakes and learn along the way in front of everyone.
I learned that school is slower-paced than an internship. In school I have time to polish my work. My work was transparent because the team could see where I was progressing and where I was getting stuck — it’s all logged through commits and team communication. In the future I hope to be more open about what I struggle with as well as what I learn. My perspective as an onboarding developer will help future new developers in their progress.
Find the right people to ask for help and get unblocked from
Asking for help broadly then being referred to the right person would have saved me days of time.
There was a week where I was stuck on a strange error for 4 days. At that point, I asked the team group chat, and was directed to the developer who frequently worked with the technology relating to the issue. He recognized the error immediately and I was on my way. From then on, I took the time to understand who was most familiar in what part of the codebase. Asking more questions and setting up meetings with more developers if I could not get proper aid outside resources like the internet or documentation would have gotten me unblocked faster.
Be honest about what I can complete and scope down in a timeline
Always add 2 weeks to whatever you think a deadline will take.
I started with more lofty goals than I realized would be possible in a minimum viable product timeline. I worked a lot of overtime, weekends, started coding in week 3 yet still had to scope down the project due to not foreseeing the struggles I would face learning the tech stack or debugging. This was part of the intern learning process. In hindsight, I would have been more honest about what I was capable of in the timeframe but am proud how I was able to still be able to wrap up the features I built. My manager says the goal of my next internship is ramp up on coding as soon as possible to run into obstacles sooner than later.
Some skills I picked up were…
- Technical! This was the first full-stack project I completed end to end. I learned frontend component and interface design, and testing with mocks with Typescript, React, SCSS, Jest, and Enzyme, how to create middleware providers and controllers in C#, and backend business logic, scaffolding, data pipelining, pumping, and database authoring with COSMOS DB, Azure, JSON, and SCOPE scripts.
- Product! I learned the product lifecycle when sitting in on sprint planning and how to better present ideas while being ready for questions on business impact, user experience, implementation, edge and use-cases.
- Communication! I improved updates to my mentor and manager by having less bulky but more intentional and consistent communication through bi-weekly presentations.
- Design for accessibility! Learning how full-time designers think about a problem-space especially in that often affected by mobility, speech, or hearing was so helpful and forever changed in how I design.
So many people! My mentor, Vivien, my manager Jason, my pod-mates Audrey and Cindy, my co-interns Anna and Cooper, the entire dev team and product group leadership, Isabela and Rebecca who made me feel welcome, my initial recruiter, Faby and interviewer, Gang who believed in me from the start, and particularly my biggest supporters and inspirations, Emily and Will.
I felt supported as an intern and am appreciative of the people that made time for me whether it was 1:1s for pair-programming, career growth, or just chatting about bubble milk tea.
If I could go back and fix my mistakes…
I wouldn’t because I tried my best. I feel I came as prepared as I could to make the most of the summer. Everything I learned along the way that I didn’t know was vital to my growth as a person.
The article linked below highlights aspects of an internship to hit the ground running with that I otherwise wouldn’t have known. Some of the most important parts were taking ownership of one-on-ones, dialing down design early, and asking difficult questions.
Hopefully you know this before your Internship
Everyone knows to work hard and smart. But, here are some severely underrated tips for strenuous engineering…
By next internship I want to…
- Become a better developer! This was my first project utilizing so many languages, frameworks, and technologies and I want to make even more useful tools during hackathons, side-projects, and open-source so I can go to my next internship more technically developed.
- Become a better problem-solver! I listened and later spearheaded a lot of thoughtful conversations about how tools and features would or would not make a meaningful difference for users in ratio to engineering time. I want to continue to have discussions on problems and solutions that make people’s lives better through student organizations so I can come to my next internship more focused.
- Become a better person! Since I started college I educated myself more on socioeconomic and systemic issues but since COVID-19 and quarantine in general it has opened my eyes a lot more to racial issues I somewhat knew about but did not act on. While I am not as outspoken as many of my peers, speaking about allyship and inclusion in front of my product group made me realize how much more perspective-changing I can do if I am more open about conversation with a broader audience. I hope to come to my next internship with more recognition of my privileges and use it to help marginalized groups.
Most importantly, I learned my career, and academic goals are not everything
I just wrote an entire reflection on what I learned during my internship and the skills I gained. I had a lot of fun, am appreciative but I was exhausted. Technical skills do not come naturally to me. Older parents, outside activity, the pandemic, meetings, and a whole day of my mental capacity at 110% made me not even want to speak about work after-hours.
My friend, Emily asked me during the summer:
What do you want to accomplish by next year non-career related?
And this question stumped me for a long time. I realized after 2 years of planning every day around what will advance me to the next step in my academic and career journey, I want to make time to have fun.
I want to make friends that I don’t talk to school about and still be able to talk for hours. I want to get back into portrait photography and capturing the world through a lens. I want to get back into tennis by joining my school’s tennis club. I want to join a social organization for the fun of it. I want to drink a lot of bubble tea, learn cool skateboarding and shuffle dancing tricks like people on TikTok and Instagram reels. I want to reclaim my sense of fashion after having toned down my false eyelashes and dresses since coming into engineering. I want to chase sunsets across the world, see and smell the ocean everyday. I think I learned a lot about balance this summer.
I am extremely privileged and grateful to have this summer software development intern experience. I learned a lot and hope to use the skills I learned for the better. I recognize while I work hard there are parts of my life that I cannot control that nonetheless have helped me get where I am today. I am blessed to be able to have caring friends and the ability focus on activities and passions due to home support. I appreciate those that have inspired me to where I am and will do my best to pay it forward.