Discovering the “Ongoing Conversation” in the CS Master’s Program
UBC Assistant Professor of Computer Science Andy Warfield has won awards that range from the UBC Terrific TA Award to an Engineering and Physical Sciences Research Council Studentship, a Cambridge Commonwealth Scholarship, and most recently, the prestigious Sloan Research Fellowship. He laughs outright, though, at the suggestion that somehow he was destined from a young age to academic greatness. “Oh no, I was pretty disorganized as a high school student. When I applied to colleges it was under a kind of ‘total chance and random decision’ method.‘”
Having received lukewarm marks in high school, Andy entered the University of Western Ontario, where for a couple of years of film, philosophy, math, and computer science study, he made marks “in the mid- to high-70s!” In his third year he entered a 16-month internship program that included a 4-month stint as an undergraduate intern at Nortel Networks, where he had his first real exposure to commercial software development, seeing how documentation and testing worked, learning about what drives a successful company, seeing that “everything [coming from the developers’ workstations] must work.” Despite a generally positive experience, the internship showed him he wasn’t interested in becoming a professional software developer. What, then, to do?
After talking with a friend of his parents, an economics professor, Andy decided to look into master’s degree programs in computer science. In his last year at Western he worked hard and improved his marks enough to submit applications to graduate programs. As a child he’d lived in Vancouver and loved the city, so he applied to UBC CS. Almost immediately, it seems, he found the place he was meant to be. “One important thing that I got out of the master’s program was less to do with computer science and more the training around critical thinking and rhetorical analysis, you know, the paper as an artifact of exposition. I really enjoyed it, especially the classes I took with Norm Hutchinson and Mike Feeley—these were superb—and Raymond Ng’s data mining course. In them there were these focused directions of research and there was a body of work around a set of ideas and there was an argument, and you could actually contribute to the argument. It was an interesting realization during the masters that there was this ongoing conversation, and that was when I had the pragmatic realization that I wanted to get a Ph.D.”
This realization brought with it the understanding that he’d be better served in the long term working for his Ph.D. outside of Canada so that he could more easily apply for teaching and research jobs in Canadian universities. Applying to the University of Washington, Berkeley, and Columbia, Andy ultimately ended up accepting an offer from Cambridge University to attend their program. He did this after deferring the acceptance and taking several months in Florham Park, New Jersey as a member of the research staff for AT&T Research Labs, where he worked in a group studying systems support for high-speed fibre optic networks. Unfortunately his work there coincided with AT&T’s announcement that they would be laying off half of the fibre optic group within the next several months. (Ultimately they fired the whole group.) Returning to Vancouver, Andy taught as a sessional lecturer in the department for a term, then moved to Cambridge for the Ph.D.
At Cambridge Andy worked on a team that would eventually develop and distribute via open-source code the makings of one of the next generation of Virtual Machine Monitors, or “hypervisors.” The Virtual Machine Monitor, which is now part of thousands of computers worldwide and employed in countless web-hosting interactions, is a thin layer of software that interfaces between conventional hardware and software configurations.
To understand why VMMs are important, Andy explains how it has long been a desirable property in enterprises to share a piece of expensive computer hardware between multiple people who all want to think they have the entire physical computer to themselves. VMMs do exactly this: In the late 1960’s IBM included a thin layer of software on their room-sized mainframe computers that allowed multiple “virtual” versions of that computer to run at once. This let the old version of the operating system and all the applications that worked on it continue to run, even though a new version of the operating system was now available and incompatible with the old applications! Virtualization faded from popularity through much of the microcomputer era of the eighties and nineties. In the past decade though, people began to realize that the servers in their server rooms were powerful, often mostly idle, resources. Virtualization came back into vogue and has been touted as increasing the “density” of server rooms by allowing individual servers to be turned in to multiple virtual machines.
In 2003, Andy’s team at Cambridge helped develop the means for virtualization to be used on modern server hardware. In addition to publishing a very highly-cited paper, the team also released all of the code as open-source software so that anyone in the world could learn from it and contribute to it. It turned out that several industrial labs had “skunkworks” projects related to VMMs, and engineers at these labs were then able to coordinate with each other and improve the code. Andy laughs and says that the circumstances were favourable for a really positive outcome: “We were the Geneva of virtualization; the project was managed by a benevolent neutral academic group.” In the end, engineers from Intel, IBM, AT&T, and Red Hat, among others, all contributed to the project. After additional research, Andy’s team was tapped to help form a start-up with the technology the open-source code had generated, and later in 2003 XenSource, Inc. was formed. (The company was bought in 2007 by Citrix Systems.)
Today, the technology that Andy’s group helped generate is used to manage servers all around the world. With it, banks of servers housed in data centres can be accessed for small or large, short-term or longer-term computing needs. Public cloud environments such as Amazon Elastic Compute Cloud (EC2), part of Amazon Web Services, allow any user essentially to “rent” computing technology. “Anyone,” Andy notes, “can go do this, can type in a credit card number and get a computer and pay for it by the hour. If you want to have a web server for a little while, or your company wants to do some simulations, it’s sort of like a hosted computer. They’ve turned a computer into a utility. They’ve been able to amortize the cost of all of the physical hardware and slice off little pieces of it and re-sell it.”
After finishing his Ph.D. at Cambridge in 2006, Andy moved to Vancouver with his wife, where he continued working for XenSource, now full time “and out of my living room!” He also began work as an adjunct professor in the UBC CS department. Helping XenSource develop a distributed team of employees, Andy opened an office for the company in downtown Vancouver, helped commercialize the research, and worked on partner relationships with large storage companies such as Network Appliance and Dell. In doing so, he learned a lot about hiring, team management, and “a lot of other stuff you don’t anticipate, like finding commercial real estate in Vancouver.”
All of these skills were to be put to good use, when, in 2010 Andy was hired as an assistant professor in the UBC CS department. Today, he leads a successful lab of graduate and undergraduate students in exploring further issues in virtualization, storage, and privacy and security issues on the Internet. In one project of particular interest, Andy’s team has worked to make the debugging of computer systems easier. Noting that current debugging techniques are “really, really haphazard,” Andy’s team “had this idea that it would be really interesting if the computer were able to take a complete and very detailed recording of everything it did over a period of time. The CPU on your computer is doing gazillions of operations a second. So if we could record every one of those things into a database and then map that really, really low-level, huge amount of information back up onto the source that people are writing, we could let them get sense of the experience of their software running when they’re looking at the source, to be able to ask questions about how it behaves.” This complicated reverse-engineering problem, which has taken the considerable work of three Ph.D. students and six research assistants, is now beginning to pan out in terms of research results and papers.
Another area of research interest involves privacy and the net, which as Andy points out has “the New York Times doing something like an article a day” on the issue. Together with other department researchers, Andy is looking at ways of reliably securing user information on such sites as Gmail and Facebook. Ten or fifteen years ago, he notes, the economics of maliciously attacking the security of someone’s email simply didn’t exist. Most email was used in institutional settings such as universities or corporations, and breaching these institutions’ security firewalls would have taken a fair amount of work. Today, with tens of millions of user accounts on Gmail and Facebook, the scalability of the problem has changed, and gaining access to those accounts is an enticing proposition that invites repeated hacks. Service providers such as Gmail and Facebook have an obligation to provide a private, secure service to users, so Andy has set out to develop the means for the providers to hold end-user information while encrypting it so that it can’t be maliciously accessed. “We’re taking a super pragmatic view of solving the problem,” he notes, adding that his group is “trying to develop technical work that could conceivably influence the way they build software rather than assuming that their economic incentives shouldn’t factor into the research.”
On the issue of the UBC CS master’s program, Andy is unequivocally positive, noting a point that he frequently reiterates to his students. This is “the aspect of master’s where you learn how to critically read papers, where you learn how to write and how to present your work and basically argue with people,” he says with a smile. “This was something that was absolutely invaluable in the business side of what I did. Just being able to patiently listen to someone’s argument and explain to them why they’re wrong or how there are other solutions that might work—a lot of that came out of the seminar work that I did in the grad program. [So today] I really try to foster debate and argument in my classrooms, because I think it’s a really important part of grad school.” Another benefit to the degree, he adds with a laugh, is that “the master’s students get paid more!”
Today, Andy is thrilled with his students, his research programs, his continuing entrepreneurial work in Vancouver, his departmental service work and his family. On the entrepreneurial end, he’s helped form a new firm dedicated to data storage issues, convergent.io, which is housed at the Entrepreneurship Centre at UBC. He’s on the technical advisory board for Teradici, a Burnaby-based startup that builds thin-client computing systems. He provides technical due diligence for a number of major venture capital firms, and he’s a mentor in the New Ventures BC competition, where new business owners are given technical and business feedback on their plans and, if they win the competition, a small monetary investment in their firm. He’s also formed an entrepreneurship talk series at UBC. Continually committed to sharing ideas across his field, Andy organized the Vancouver Systems Colloquium at UBC in 2010, bringing together 50 of the top researchers and students from around the world. So that the discussions never got too heavy, and perhaps influenced by life with his 18-month-old and 4-year-old sons, Andy velcroed Nerf guns to the participants’ seat bottoms and encouraged the audience to use them to provoke discussion, particularly if anyone said anything “particularly preposterous!”
Asked if he ever sleeps, Andy cracks a grin and notes that he’s pretty protective of his nights and weekends, devoting time to his sons’ soccer and swimming. Andy and his wife Bren are expecting their third child—“We’re doomed!”—at which point he’ll likely double down on the extra-hours protection. [Editor’s note: The baby, a girl, made her appearance in March 2012.] But it’s unlikely his students and colleagues will see any diminishment in his energy and commitment to the department, his research, and his entrepreneurial ventures. It’s been years since he was pulling down marks in the mid-70s. For this Sloan Research Fellowship winner, everything’s on the up and up.