Jacob Gorm Hansen
Early on in my Ph.D. stipend I got offered a summer internship with Microsoft Research in Cambridge. During the internship I worked with Microsoft researchers on new security mechanisms for the Windows NT kernel, but also spent time with researchers and other interns developing various ideas for future research topics. The internship opened my eyes to several open research problems, and paved the way for collaboration and friendships with people from all over the world. This year I decided to come back to Microsoft Research, this time to the lab in Mountain View, California, adding the unique experience of living and working in Silicon Valley.
I'm a PhD student at UNSW, working in the operating systems area. At the end of my first year in the PhD program, in January 2004, I went on an internship program with the Advanced OS group at IBM T.J. Watson Research Center. This was initially for three months, but was later extended to six months. At that time, the advanced OS group was working primarily on the K42 operating system project. For the first three months of my internship I mainly did development work on K42's tracing and performance monitoring system. This included fixing endianness problems and some other bugs, improving the tools, and implementing features like network tracing. I also ported the Linux trace toolkit (LTT) to PPC64, which was my first real experience of Linux kernel hacking. After the first three months, my stay at IBM was extended, but with a stronger research focus. Together with my supervisor and the K42 group, I selected hot-swapping and dynamic update as a promising area of research within K42 and for my PhD. I started working on dynamic update in K42, and found that a lot of interesting research issues arose. By the end of the internship, I had an initial implementation, some results, and also a workshop paper. When I went on the internship, I didn't have a clear idea of what my PhD topic was going to be. By the end I had a solid research program that will hopefully soon be the basis of my completed PhD. I also continued working with the IBM group, and have since published more papers with them. The internship was highly beneficial for me; without it my PhD would have taken a very different course.
After my first year in the PhD program at Brown University, I was a research intern at Microsoft Research Cambridge in the UK. Pursuing my interest in language-based solutions to systems problems, I worked with Tim Harris. During the summer we completed a project on compiler optimization. I spent the first half of the summer writing an implementation in F#, and the second half writing a conference submission on our work. My internship was an exceptionally rewarding experience: it was a pleasure working with Dr. Harris, we completed a paper that is under submission, and I had the opportunity to experience industrial research first-hand.
I did my PhD at the Vrije Universiteit in Amsterdam from 2001 to 2006 with Professor Maarten van Steen. In the summer of 2003, after having completed the first two years of my studies, I had the opportunity to do an internship at Microsoft Research in Cambridge, working with Dr. Anne-Marie Kermarrec. This turned out to be a wonderful experience and a significant gain in many respects. Having an extra point in my CV, getting an extra paper published, and spending three months in picturesque Cambridge were only the obvious benefits of my stay there. A number of other gains emerged from this internship. First, I (informally) became the link between the group of Dr. Kermarrec and my group back in Amsterdam. This helped me demonstrate higher responsibility, and contributed in strengthening the collaboration between the two groups. Second, I was exposed to a new group of scientists, where I had to prove myself from scratch. Although this put an extra effort on me, it helped me to gain more self confidence and to eventually believe more strongly in the research I was carrying out. It helped me put my research into perspective. Being exposed to this environment was a crucial 'distraction' from my PhD research niche. It broadened my research scope. In fact, a year after the internship an idea struck me on how to combine the work done at Microsoft Research and my work at Vrije Universiteit Amsterdam, leading to very interesting results. But above all, the major benefit from my internship was the establishment of a strong collaboration with my supervisor, Dr. Kermarrec. This led to a second internship with her in 2005, this time in INRIA, Rennes, during which we broke into new grounds and came up with fascinating novel frameworks and protocols. Our collaboration keeps going now that I have completed my PhD.
As a PhD student, I did an internship in Google's Mountain View office in Silicon Valley during the summer of 2005. Google is a wonderful company to work for: packed with smart people full of crazy ideas, and offering unlimited computational resources to anybody willing to verify their theories in practice. Just like other interns, I was assigned a project to work on, which was about porting my latency estimation service onto the global Google infrastructure. It felt fantastic to develop and run a system used by millions of people all over the Internet. It was also amazing to find out in detail how Google works, and to check out new products long before they are released for public use. By the way, Google folks know very well that there is much more to life than work, and so they organized a pretty intense entertainment program for all the interns. I definitely had a lot of fun that summer, and I can honestly recommend doing an internship at Google -- go for it!
During Summer 2005, I did a summer internship with Amazon.com's Distributed Systems Group. In my internship, I helped them in designing some new distributed technologies. Some of these systems are running live now and we are looking at publishing these results in the future. During my work, I also found that most Amazon engineers to be well versed and up-to-date with academic research and results. They were also receptive to new ideas. Overall, my internship with them was extremely fruitful and heavily influenced my perception of distributed systems research. This was also a compelling reason for me to eventually join them full-time. I sincerely recommend Ph.D. students to do atleast one internship in an industry environment (such as Amazon, Google or Yahoo) in addition to industry research labs.
During the summer of 2006, I was in the midst of my PhD program at the DistriNet research group of the Computer Science department of the K.U.Leuven, and had the opportunity to do an internship abroad at INRIA-Rocquencourt in France. I joined the ARLES team for three months and worked with Dr. Valérie Issarny and her team members on a project in the area of middleware for multi-radio networks for a mobile device. My responsibility was to develop and test a network abstraction layer in C# that was able to explore all the wireless networks and find which Bluetooth, Wifi and/or GPRS interfaces could give access to the same network ranges (such as the Internet). The overall goal was to select the best network configuration to optimize energy consumption and communication costs. During the second half of the summer I also exchanged some ideas on semantic-based service-oriented architectures and on other research areas that the members of the ARLES team and I were pursuing. My internship has been a nice experience to broaden my horizon and to develop new insights in the area of context-aware computing. It has also led to a joint paper that is currently under submission. I really had a lot of fun working on some challenging problems, and enjoyed working with amazing people. I recommend that all European PhD students do an internship abroad.