Laurie (Garfield ’11) was an intern for Microsoft’s EPX STO team the summer of ’10. The STO Team is in charge of web applications like Forums, Search, and Profile on the Microsoft websites, including MSDN, TechNet, and Expression — all helpful resources if you want to get started developing.
Getting the internship
Before taking AP Comp Sci. last year, I didn’t know anything about computers (or programming for that matter). I signed up for the class thinking we’d learn how to put computers together and that’ll be it. I was surprised to find it a class on programming, and even more shocked that I enjoyed it so much.
I didn’t think I would get the internship at Microsoft, since during the interview, my interviewers (my manager and my mentor now) asked me to write code for them on their whiteboards and such. I remember them sitting back and laughing at my mistakes, and correcting me on everything I’ve done. I later found out that it was actually the fact that I tried my best and accepted my mistakes and were able to talk about them that got me the job (*hint hint- for those who would like to apply next year).
Anyway, the first day at Microsoft, I remember telling my coach that developing was one of the major things I wanted to work on this year. He told me I should try out other things too, like testing (he was Test Lead). Those two things easily became my goals for the summer. I learned how to build dynamic web pages using Asp.net, C#, a little of SQL, etc. by building my own web application that would an internal tool used by my team in their testing. It was interesting because eventually I had to code automation to test my own page!
My page’s job was to take in a URL inputted by a user and return whether or not that page existed. Simple, right? Yeah, it somewhat was, but once I got the basics figured out, I had to consider UX (user experience) and make it easier for people to use, including loading URLs from a database. I also tried to log all the uses of the application by tracking it in my own database, which was dangerous because I had to watch out for injection attacks and things that will literally destroy my web app. I never realized how many things needed to be changed in code. When you start testing your own code, you realize there’s so much to consider because you can’t rely on people to always go on my page and enter a URL. Who knows? They might accidentally hit a function button and set my app up to crash.
Anyway, websites are always changing. My team releases changes to their web applications every four weeks. As part of the team, I participated in two of their release cycles, August and September. As one of the testers, I had to test out the new features that were going to be part of the websites! For the August cycle, I tested out the Search’s error page, and filed bugs and made test cases. Working with the rest of the team, we decided which bugs were worth fixing and which were not. Then, for the September release, I was part of something slightly bigger; the Forum Alerts. There was a lot more involved, since security features, privacy, timing and performance were all something that needed to be tested. At the end, we had to make the call on holding it back and making major fixes before we release it. I was also in charge of the Official Test Sign Off, which was a document that is emailed to everyone on the team (including my manager’s manager and manager’s manager’s manager) that says “Hey, the Test Team approves of this software, and agree that it is fit for production.” Believe it or not, software is often published with known bugs and errors, and it’s the testers who usually can make the call to whether or not they are significant bugs that might cause errors in the way the software is supposed to work.
Big shocker to you all, but the tester’s job is a fun one. I like it a lot more than development. I went into Microsoft thinking that I would become a developer later in life, but there’s nothing more satisfying than knowing you made an application better for people to use by pointing out what was wrong with it. Like my coach always says, “Testing is not a science, it is an art.” What does that mean? It means that testing isn’t something someone can just teach you, you have to be creative and come up with different ways that can cause an application to go wrong.
Overall, it was a great summer. I met lots of great people, ate tons of food, drank cans and cans of soda (I had a blog: msfreedrinks.blogspot.com, but I stopped updating as things got more hectic), got free stuff, and learned soooooooooooo much. It wasn’t just programming I’ve learned; I learned how teams work, to communicate my ideas on a whiteboard and through email, what the PM (project manager), SDE (developer), and SDET (tester) roles were, what life was like in a corporate world, and to ask questions (that’s a big one!). I encourage everyone to apply if they’re interested for the Microsoft internship or any internship in general. The experience will be so amazing and the memories will last forever :]