As many of you know, I’ve been completing a seven week internship under Microsoft called The New Technologists program. I wrote a bit about it here, but since today is my last day here, I wanted to write a little reflection post on everything I’ve learned and taken away.
Firstly, before I get into anything too serious, I really want to give a huge thank you to my team, Team 12. I worked in a team of four other TNTs and two coaches. To Alex, Camilo, Chris, Devanei, Dave, and Neil: thank you so much for working with me for the past seven weeks. I have learned so much and have accomplished so much and grown in ways that I cannot even describe.
In the first week of the program, we were paired with another team (shoutout Team 22) and were given a very vague problem statement: If you had unlimited resources, what problem would you solve in the world and why?
Our group originally came up with some solution to disparities and inconsistent opportunities within education, but after being told that the idea was basic from a higher-up, we scrapped it entirely.
Neil, an avid reader, ended up discussing this concept of creating a more interactive way to learn how to read and engage younger children in reading.
You can actually find our first presentation here. I’d say this first week was pretty good. I was really happy with my teammates and I found I vibed with them so well. By the end of the program, our individual team would have to create a web or mobile app that tackled a particular problem statement.
In Week 1, we began curriculum. At the beginning of the program, the crew added us to a huge GitHub repo filled with resources, curriculum, exercises, and samples that would help us better learn. Throughout the program, we would become more familiar with Typescript, React, Git, and a couple other things (Redux, Jest, etc.)
I was pretty excited at this point because I had always wanted to learn how to make web applications. In this first week, we learned the very bare bone basics of Typescript and React. Simultaneously, we were organizing and attending daily meetings with our team and coaches. Alongside learning our engineering curriculum, we were simultaneously doing these PM curriculum courses. Week 1 was all about brainstorming and ideation.
Before we could begin creating a project, we first had to choose a prompt. We were stuck between three main prompts:
- Improve literacy and comprehension rates
- Remove barriers to expressing and sharing ideas
- Improve student outcomes by supporting and empowering teachers
We eventually settled on removing barriers to expressing and sharing ideas since it was the most broad and we had the most flexibility with it.
From there, we tried to brainstorm potential audiences that could best fit the prompt. We came up with a whole slew of ideas:
As you can see, we had…a lot. We originally started out going along with this idea of social activism and creating a platform to help people connect with and better understand social justice movements. This idea was eventually shot down by our coaches because it was a pretty large issue to tackle and we weren’t sure how to effectively create a platform that could properly address all of these issues.
Then, somehow, our team got to talking about our cultural backgrounds, what it was like growing up in our ethnic households, and the many difficulties that came with it. From language barriers between our parents to feeling too “Americanized” to being alienated from our culture, we realized we had all struck a chord with one another. And it was from this genuine conversation that our project bloomed from.
We started to develop potential problem statements to properly narrow the scope of our project to tackle specific issues. In order to do this, we created empathy maps for our potential user audience. These were maps that helped us better understand our users. It was broken into four sections: what does the user typically say, think, do, and feel in regards to this problem.
After creating these, we were able to isolate some unifying issues and problems that users ran into and create some “How Might We” (HMW) statements:
- feeling like a strange within their own culture
- feeling ashamed because they don’t know more about other cultures
- wanting to show that there is more to culture than just someone’s food or clothes
- HMW help people learn about their own background and culture
- HMW get individuals to get familiar with other backgrounds and cultures
- HMW help people to take collective action in a social movement
- HMW raise awareness about social issues unheard
We then drafted up our problem statement that would guide us for the rest of the project:
How can we help our generation feel more connected and accepted withintheir culture? How can we help our generation better understand cultural experiences that differ from their own? How can we help make our generation more comfortable with talking about culture?
We then did something known as “Crazy 8s” where you have five minutes to draw pictures of eight potential solutions to our problem statement. We came up with these ideas:
Once we did this, we tried to envision how our app would look like. We decided we wanted to create an app that encouraged conversations surrounding culture since one of the biggest barriers to culture was a stigma surrounding its discussion. We knew the app would then be primarily a “pen pal app”, as we personally found that one on one connections were more meaningful and led to longer and more thorough conversations than group ones. Some other features we made:
- Gamifying the app – we knew the app would rely on a pretty active userbase. We figured if we incorporated some gamification of the app, whether through a badge system or friend system or even streaks (heavily Snapchat inspired) then we could probably maintain a userbase…along with customizable aesthetics and other things
- Pen pal idea – one on one conversations with the flexibility of being a bunch of different kinds of conversations: friendship, mentor-mentee, venting, company, etc.
- Story feature
- Tutorial – teaches people how to use the app
- Quest system
Of course, not all of these things made it into our final project, but it’s way better to have too many innovative features rather than too little.
We started the week off by presenting the paper prototypes we had drawn up and picked and chose features from each prototype that we liked to incorporate in the official wireframes of the app.
Here are some of the features we liked:
- text only option, text w/ call enabled, call only
- question mark for conversaitonal prompts
- mutual selection – both need to add each other in order to show up in contacts list
- live matching and conversation
- transparency with what the algorithm matched you on
- rant forum with temporary posts
- loading screen while you wait for a match
- podcast recording feature
- tutorial/intro to the app
- terms of service — community pledge
- profile creation – anonymous nicknames, name, birthplace, ethnicity, race, religion, interests
- choose what is hidden and displayed on your profile
- reporting and blocking feature
- avoid word match? to avoid sounding tinder-y
- forum page
- resources page
We then created an 8 question user survey to decide some things we were concerned about. For instance, we didn’t know the max time the algorithm should search for a connection before timing out or if we should default to anonymous profiles and whatnot. We also wanted to see if there was an actual audience for our app, so we asked people’s willingness to connect with people inside and outside of their culture from a scale of 1-10. I compiled some of the data into graphs:
We also brainstormed names before deciding on Dive. I wasn’t there when they were choosing names (lol shoutout laziness) so I just kinda went with it and I’m happy with the name honestly.
We spent the first bit of this week mocking up the app in Framer. Devanei mainly handled the design aspects of it. You can play around with our Framer here.
We then spent the rest of the week coding up our app and distributing up the work and writing our specification. I’ll be pretty vague in this part since we’re not allowed to share our codebase cause #MicrosoftProprietary.
More coding. More finishing up our spec.
Presentation presentation presentation. We split up the video into Intro > Discussion of how we came up with our app > Demo > User Story > Potential features we were thinking of adding > Our takeaway from the program > Outro.
We really wanted to hit it home with our user story since our app was pretty basic (it’s a chat app) but it’s the story and message behind the app that makes it worthwhile.
We ended up cutting a lot since the time given was 7-10 minutes.
You can see our final product here:
So…there’s a lot of thoughts here. At first, I really really didn’t like the program. As you can see, it’s not a real internship. It’s more like a bootcamp with curriculum and activities. I found myself just really unhappy with this kind of setting. I also really disliked how we were in just so. Many. Meetings. Our team met A LOT in the beginning and I admittedly would just straight up leave meetings early (around 5:00) because I just didn’t want to sit at my laptop anymore. So, yeah, those first 3 weeks I’d say I was pretty unhappy. I felt that the program wasn’t challenging enough and that I wasn’t really learning all that much and that the curriculum moved pretty slowly.
But around the second half, things started getting way better. My teammate ended up reaching out to me, asking if I thought the meetings went on too long. I, of course, was straightforward and said “lol yeah” and we talked about maybe working earlier in the day so we could finish earlier. Once we switched to this system, I found myself enjoying the internship a lot more.
Another aspect that really helped me adjust to the program was the openness of my coaches. My coaches, Dave and Chris, are just two very awesome and chill people. They both helped guide our project so much, making sure we were staying in scope and not getting too ahead of ourselves with features and ensuring that we stuck with the problem statement and were actually doing something meaningful. Every day, we would have coach check-ins at 2PM EDT where we would talk about our day so far, how we were feeling, and our plans for the rest of the day. I found these check-ins to be incredibly invaluable. I really appreciated how we were all able to come forward some days and just say “I’m having a bad day and I’m not feeling so great.” This understanding nature of my coaches really shined through on my “sick days.” About two times in the program, I just didn’t go into any meetings. I had woken up that day and just felt incredibly…bad. It was really hard to describe. This had happened a couple of times at MIT, and when this happened, I would take a mental health day and usually take the T to Newbury and eat in a cafe and read and everything would be good. I was half expecting my team and my coaches to look down on me for taking these sick days, but once I told them, my statements were met with encouraging affirmations and kindness. Messages like “Hope you feel better!” and “I’m always here if you want to talk” greeted my DMs and I just felt so grateful to have such a loving and supportive team.
I really started to warm up to my team during the coding and presentation aspect of the program. Whenever any of us ran into a bug, we immediately messaged each other in our group chat and asked for help and we’d immediately start a call within our Teams channel to help get it fixed. Our codebase was SUPER organized and I’m really proud of all of us for getting the hang of GitHub so quickly. It was so satisfying making pull requests and getting approvals and merging branches. Absolute chef’s kiss.
Making the presentation, too, was such a fun time. We would just mess around in call and jokingly bully Alex and we had such a good time. I appreciated how I could just fully be myself around my coaches and teammates. I was afraid that I had to be cold and professional since I was working for Microsoft, but I found I could still make the same jokes and I could curse in calls and I even called my coach a boomer and he laughed about it. It was pretty nice to have such a chill relationship with my mentors and coaches.
For the first three weeks of the program, I was really, really doubting whether or not Microsoft, or even big tech in general, was for me. But as this program concludes, I can say wholeheartedly that I would love to work at Microsoft in the future. I think the work culture is incredible. I didn’t really mention it, but during these seven weeks, I arranged maybe 8-10 meetings with software engineers, PMs, and interns about their experience working at Microsoft to try and figure out if this was a place I wanted to work. I am so, so grateful for every single person that took time out of their work days to come into a 30 minute meeting with me and talk to me about their journey and experience at Microsoft.
So…what have I learned?
- Good things come with honesty. Once I started being honest about how I was feeling about the program to my teammates and coaches, I found I was having a much better time.
- I’m not going to completely write out big tech as a job option.
- PM work seems really cool and I’d definitely be interested in maybe pursuing it in the future.
- I really value people and culture in a workplace. Once I started liking the people I was working with, I started enjoying the work I did.
- I could be a SWE. For such a long time, I always put down my coding abilities, but this program has given me a newfound confidence in my technical skills and I realize that I shouldn’t completely write out a software engineering position just yet! Maybe unlikely, but I’m confident if I work and study hard enough I could totally do it.
- Ironically enough, this Microsoft internship maybe convinced me I like Macs. For context: Microsoft sent us out all 2017 Macbook Pros and I am IN LOVE with mine and I really don’t want to mail it back next week. I love coding on it. I love typing on it. The interface is so clean. God damn you, Macbooks.
- Working for big tech companies has a lot of cool perks. We got UberEats vouchers every week. I got a cool jacket from Microsoft and some shirts. I got a shit ton of food. Shoutout Big Money.
- Maybe I’m smarter than I think. Or more capable than I think. This internship not only boosted my confidence in my computer science skills, but also just myself as a whole. I feel a lot more prepared for future internships, jobs, classes, conversations, etc. As cheesy as it is, I really feel changed.