A day in the life of a Microsoft intern, part 2
Here continues my description of a typical day in my internship.
My office at Microsoft is in building 27 of the main campus, office number 2413. While I know many interns who share an office or work in cubicles, I was lucky enough to get my own office. (I wasnt lucky enough to get a window though.) My computer set up is pretty nice: a development machine and a test machine, both with Intel i7 processors and 16 GB RAM (as far as I can remember), attached through a KVM switch to dual widescreen monitors and a big Microsoft ergonomic keyboard (which was very hard to get used to). After checking my email and grabbing some ice water, I get started on my work for the day.
I was assigned to the Windows Windows Live Division, Windows Devices and Networking Group, Hardware Developer Experience Team, Driver Quality Tools subteam. (Sorry if thats confusing, it confuses me a little bit too.) So, as a Software Development Engineer in Test (SDET) intern, I worked on a few different projects related to device driver testing. (If youre not interested in the technical details, you might want to skip the next few paragraphs.)
To start out with, I wrote some sample code for the Windows Device Testing Framework (or WDTF, more info here at MSDN). WDTF is a tool for hardware manufacturers to write tests for their device drivers. My project was to take previously written Visual Basic Script sample tests and port them to C# and C++. This work was mostly just to get me familiar with WDTF and C#, since I hadnt used either of them before. It wasnt just busywork though; the code will be included with WDTF in the Windows Driver Kit.
My second project was also WDTF-related. With WDTF, I wrote a device driver stress test called the CHAOS test. I actually wrote about it back in my very first blog post here. In short, its three tests within a test, all running at once to make sure a device driver performs correctly. This test will be included in the Device Fundamentals tests that all hardware manufacturers have to run in order to be validated for Windows, so my code will affect tons of people. I think thats pretty cool.
My third project, which was my biggest project, was to develop a tool to automate the running of driver tests over a large group of machines. To accomplish this, I wrote a few C# scripts that use WDTF to gather machine data and compile them into an input file. The input file then goes into a scheduling tool that kicks off all the tests. I spent a lot of time working out a way to incorporate the different scripts into a cohesive process. Although this tool wont ship externally, I have been told that internal teams will use it extensively to get their tests and new hardware ready for the new version of Windows.
So yeah! I did this sort of thing for most of the day. It wasnt just coding: I also had to go to meetings, test my code, and as I mentioned, do a lot of work making a wrapper for my tools code. I ask my mentor, Sandeep, a lot of questions throughout each day, and I talk to my manager, Jon, pretty often too. Both of them were really great and helped me out a lot.
At around noon, I usually get some lunch. I try to meet up with a friend if I can, and go to one of the cafeterias near my building. (Sorry, I cant find any pictures of the cafeteria.) Some days though, if I bring my own lunch or if Im really busy, I just eat in my office.
After working a couple weeks, I realized that I would go pretty crazy if I stayed at my desk too long. There were a couple of ways that I like to take breaks. One is to go up a floor to the mail room, where someone put up a MAME (Multiple Arcade Machine Emulator) cabinet. Theres a big selection of all sorts of arcade games you can play for free. The most popular game was probably Galaga. Im familiar with Galaga my dad played it a lot, so I played a lot of that, while also dabbling in games including Ghouls n Ghosts, Elevator Action, and Rolling Thunder. My Galaga high score was only in the 60,000s, but I saw a high score over 100,000 once! Anyway, playing an arcade game is a good break, since you can get into a game quickly and it only takes a few minutes to play one credits worth. I also took many walks outside around the area of my building.
As the day gets into the afternoon and evening, Im generally more focused and productive, but also more tired. To keep myself going, I sometimes put on headphones and listen to some music. If our teams admin, Matt, is still around, I go by and pick up some of the snacks he keeps in his office to share.
At the end of the day, I look up the bus schedule and find out when the next bus is heading home. After a short ride home, I walk back down the Sammamish River Trail to my apartment. I usually finish off the day with a church activity, hanging out with friends, or just chillin in my apartment.
And thats it for my day in the life! Next time, I hope to somewhat wrap up my Vancouver loose end, talk about my Seattle tour, or describe the summer with statistics! Adios until then.