6 ½ things we learned as Edge interns

Hayne Ryu, University of Illinois, Urbana-Champaign
Jen Bourlier, University of Michigan, Ann Arbor
Jesus Fernandez, University of Illinois, Urbana-Champaign

Jennifer
Web Dev @ Microsoft
9 min readNov 11, 2016

--

A couple years ago, Owen Wilson and Vince Vaughn took part in a fictional internship at a big tech company. If you didn’t see that movie, we’ll just say it was a bit of a misadventure. This summer we took part in a real-life “Explore Microsoft” internship, and it turned out a bit different: We had tons of fun, learned a lot, and even built our first prototype product. And no… we didn’t play any Quidditch, but we did wind up playing some soccer and some rugby. Read on.

Jen, Jesus and Hayne

Lots of Firsts

Like the Hollywood interns, we really didn’t know exactly what to expect on our first day. We were joining the Web Platform Team (part of Microsoft Edge, the new Windows browser). This was our first internship, our first time in Redmond (and Seattle), and our first “real” software project at a large company. All three of us had completed our sophomore year in college, but our only frame of reference was our experience working with classmates on group projects in our CS courses (and the movie!). We’d worked with a range of devices including iOS, Android and Windows, but hadn’t really used Microsoft tools or developer technology all that much.

Our Assignment

Our assignment was to build an exploratory prototype of a new browser feature. Like a lot of teams at Microsoft, the Edge team often builds proofs-of-concept or low-fidelity prototypes to explore the potential for a new browser feature and balance customer needs, business value, and emerging technology opportunities.

We looked at a few options for features to explore, each with a different emphasis. One option used leading-edge technology, but we struggled to pinpoint a high-value customer problem it would solve. Another had good business potential, but wouldn’t push our team to use much new technology. In the end, we chose a project which balanced customer benefit, business potential, and innovative technology in roughly equal amounts.

Our Project

Our prototype was for speech recognition capabilities that would allow customers to drive the browser with a one-click “push-to-talk” model. People could use their voice to say “Go to MSN” or “Scroll down” or “Zoom in” or “Find pictures of cats” or “Go back.”

This is would benefit mobility-limited and cognitive-impaired customers, but could also be used by other customers as well. Cortana is great for voice-based searches on Bing, but our feature would give users more fine-grained control over actions within the browser.

Whiteboarding our design (courtesy of Office Lens)

To build our prototype, we chose the new extension side-loading capability in the Windows 10 Anniversary Edition update for Edge. The prototype used JavaScript/HTML5/CSS/JSON/REST, each which had lots of language constructs, libraries, and areas and nuances that were new to us.

The difficult task of converting speech-to-text was made possible through our use of getUserMedia to record clips of the user’s voice, and the Bing Speech API to transcribe those binary clips into human-readable text. We also investigated the powerful LUIS APIs that are part of the Microsoft Cognitive Services as a way to determine the user’s intent, and turn the text transcription of their speech into commands.

This approach would have been powerful, but required the additional creation and validation of language data models. Given our limited time and lack of linguistics knowledge, we opted instead for a simpler, more rigid “<command> <parameter>” syntax for our prototype. After choosing these technologies and specifying our simple customer interaction syntax, we began coding and testing our prototype.

What we learned

We worked hard to get the prototype looking and working great, and we learned a ton along the way. We could probably list hundreds of things we learned, but here are the top six:

1. Shipping software is a team sport

The number one thing we learned is probably how software is shipped in general, but also specifically at large companies like this one. Microsoft takes “shipping products is a team sport,” very seriously and the collaboration between different teams was awesome and helped us learn so much. Everyone here has so much knowledge and they are willing to share it. From planning to coding to bug-bashing to “ship room,” it was really cool to learn about the process of getting from point A to point B. When learning about everything that goes into shipping software, its like drinking water from a fire hose!

It was interesting to find out how certain design choices are made (weighing user wants/needs, what competitors are doing, what makes good business sense) and when features get cut (at the beginning because of resources or at the end because of time).

I won’t forget my first Git PR/code review. It was brutal but a lot of fun, and learned an immense amount that made me a better developer! — Jesus

We’d never imagined both how deep and wide the collaborative analysis would be (i.e. all of the ability considerations for mobility-limited and cognitive-impaired customers, branding, legal considerations). To work together, things were either standardized company-wide (such as the branding and style design guides) or experts from multiple departments collaborated in person.

Collaboration is not just about knowing the best coding method, or just merely making things work. It’s about communication, knowing the right tools and asking the right questions.

2. Software ships with bugs, and that can be OK

Our biggest surprise was that sometimes a bug is known about before the software ships. When we found a bug using apps before this summer, we always assumed the company missed it and wondered how that could happen, especially if it was something obvious. We thought that when companies ship products, they believed they were delivering absolutely-perfect software.

We realize now that often, the company has to make hard choices about known bugs, and may have made a decision to ship with a known issue and fix it later. That’s what happened with our prototype. We had to make trade-offs about schedule, bugs, and impact (how many people would hit the issue and how bad was it for the user if they did hit it).

3. Engineers know how to have fun too

Redmond is a very residential area but throughout Microsoft campus we jogged around the trails (there are mile markers and everything, it was great), ate in different cafeterias (the Bellevue high rise office has one of the best views we’ve ever seen of the Cascade mountains and Lake Washington), and played rugby on the Redmond campus soccer fields!

Microsoft’s soccer team

When I found out that Microsoft had a corporate soccer team that played Nike, Google, Amazon, and Adidas, I knew I had to be a part of the team. We had 6 players from different countries! It was amazing meeting people from different places from around the world and getting a little taste of a new culture. I made the team and we advanced to play at CenturyLink field against Starbucks for the Seattle Corporate Cup championship, and ultimately at Providence Park in Portland against Nike! The relationships that I was able to build with my teammates were priceless! I never would’ve thought that engineers at Microsoft would be so good at soccer! — Jesus

Microsoft set up so many intern events for us that it was almost impossible to go to all of them! The most memorable ones include the ferry ride to an island, numerous guest talks that gave insights to other parts of company, and the social group yacht night.

Jen trying out a HoloLens

Freshly ground coffee, events at the Space Needle, and a concert with Ellie Goulding. Wow!

4. Engineers can come from anywhere

We met employees from Vietnam, England, Ireland, South Africa, Scotland and all over the world during our internship (and even played rugby with some of them)!

View of Seattle from rooftop on 4th of July with new friends

Microsoft is diverse in terms of ethnicity, age, etc, but the diversity that most surprised us was in terms of formal technical education and interests outside of work. We met many people who were self-taught and they still had the technical chops. Employees are involved in music production, DJing, cooking, improv comedy and more! Everyone we met always had something interesting going on outside of work.

5. Microsoft is focused on accessibility

Microsoft cares about accessibility a lot (which is great). Being able to consult accessibility experts at Microsoft about issues that we did not even anticipate was eye-opening.

We were also impressed with how focused Microsoft is on these issues, especially the Web Platform Team. The loudest cheers we heard during demos at the all-hands team meeting were when we reviewed Edge’s accessibility improvements for the release. There was such passion behind the efforts of people on the team who worked to be a voice for the accessibility community and drive excellent products for those users.

6. Data-driven design is powerful

We even got access to a user-research lab to generate usability data for our prototype. The lab was like an interrogation room from the movies, with one-way glass for observation. We had other interns and users perform tasks with our prototype, and we measured them. Did they succeed? How long did it take? What got in their way? What was not clear or missing? We counted and ranked this data to decide which changes to make, and they vastly improved the success people had when using the prototype.

The view from inside the User Research Lab control room

But data isn’t just for software design decisions. Some interns rented cars for the summer and parked them on campus in Redmond. We were impressed (but not surprised at this point) to find out that Microsoft even uses data to make decisions about its parking garages! Sensor data showed there was an unexpectedly high use of power in one garage, due to a fan that was running constantly. Toggling the fan on-and-off intermittently saved Microsoft $66K!

We did not know anything about telemetry until we came to Microsoft, but we now realize how huge an impact that it has in detecting problems and incorporating customer insights.

One decision to remove a context menu item from a product was based on data that said most people cancel within 5 seconds of choosing that item (likely meaning that most people were clicking it by mistake). It was pretty cool to see how all of the data was gathered, but it still relied on a human interpretation in the end.

So…?

So what happened to our prototype? In the end, we presented the prototype to the team along with our insights on the customer value and some of the ways it might grow in a production setting. The product team is using our prototype and dozens of other explorations to inform their planning and development — we’re excited to see how it might turn up in the future!

The extra ½ thing

Bonus thought: This wasn’t something learned during the internship, but it happened since coming back to school this semester. We’ve realized how much of an advantage the 12 weeks spent at Microsoft gave us. Professors tell us we’ll need to learn how to use GitHub, and we already feel comfortable with it, knowing we already have some experience using it. Our professors are also telling us we’ll also need to figure out APIs on our own from just the documentation and teach ourselves new programming languages. Yeah, we did that too (/brush shoulder). We gained so much confidence from our experiences this past summer knowing that we’ve gotten to practice skills that our classmates haven’t yet.

So you could say that working at Microsoft really gave us an Edge. (haha)

--

--