Image
Prof Nick McKeown

Kleiner Perkins, Mayfield, and Sequoia Capital Professor of Computer Science and Electrical Engineering Nick McKeown had an early passion for engineering despite advice from his UK high school counselor to do "something creative" instead. Since then, he's become a world-renowned expert in techniques to improve the Internet.

What made you decide to be a professor, and what made you want to be at Stanford?

"I grew up in the UK where engineers don't enjoy the same high status as they do in the US and other parts of the world. When I showed interest in engineering, my high school career counselor asked me, "Why go fix cars and trains? Why don't you do something creative?" If I hadn't learned what engineering is about from my dad, I would have never known. Such was the ignorance about engineering in the UK at the time, and explains why there is still a huge shortage of skilled engineers in the UK today. With Margaret Thatcher's disdain for engineering, technology and higher education (she closed two engineering colleges in the 1980s), I left the UK for California. But I was convinced I didn't want to be a professor - to me they wore tweed jackets with leather elbow patches and smoked a pipe. All through my PhD studies at Berkeley, I swore I would never be a professor. And then, in my last year of studies, Pravin Varaiya handed me a job flier for Stanford. The position was for "Telecom Software" (anyone know what that is?), and he said I should go find out if I was really sure about academia - this was my last chance. To keep him happy I came for an interview, and to my surprise found a place where I could combine my love of research with being an entrepreneur, right in the heart of silicon valley. It was the only academic job I applied for, and looking back I was incredibly lucky to get the job. Best of all, I have never needed to ever wear a tweed jacket, wear a tie, or have a regular boss."

How did you choose your field of research?

"My first job in the UK was with HP-Labs, Bristol. Because the UK was not producing enough PhD graduates to staff the new HP Labs, HP generously trained about 200 of us to be engineering researchers. The only catch was that instead of working on computer architecture - the hot topic of the mid 1980s that we all wanted to work on - we would have to work on this new thing called the Internet; in particular, how to make it faster.  I agreed reluctantly because of the promise I only had to work on it for two years, before doing something more interesting. Over the next two years I came to realize the Internet might just change the world, and by the time I saw the first web browser in 1993, I was convinced. I wanted to do research in networking because it combined the mathematics of EE (my PhD was in a group of stochastic control and queueing theory experts) with the systems-thinking of CS (I love to build prototype systems that challenge conventional wisdom), right at the boundary between the two fields. With the Internet's explosive growth, there was a great opportunity to influence its evolution, to make it faster and more open."

Who has influenced your work and why.

"I feel like the luckiest guy in the world to work with people way smarter than me, both students and colleagues. I always say the undergraduates are the smartest folks at Stanford; they are the cream of the crop, smart, young and fearless. I gained an immense respect for theorists while working with Jean Walrand and Pravin Varaiya at Berkeley; while I could never match their analytical prowess, I learned enough to understand their language. I also learned the importance of being well-rounded: I try to have a mix of students in my group - EE and CS, software and hardware, theoretical and practical, quiet and loud, academic and entrepreneurial. I strongly believe all researchers should always strive to be broader; if you feel more comfortable building things, then push yourself to take math classes. If you are a mathematician by training, learn to build hardware. This I learned from my graduate advisers.  And it led to a simple set of three rules I try to follow when picking a new research topic: (1) It must be intellectually interesting and challenging in its own right, (2) If successful, it must represent a real and concrete improvement to the practice of engineering, and (3) I must be able to see a path to influence the practice. These rules don't work for everyone, but through my training with Walrand and Varaiya, and now being in the heart of silicon valley, the rules work well for me."

Briefly explain a project you are currently working on.

"All software requires hardware to run on, and there is a CPU at the heart of every computer. The computer industry has boiled the hardware CPU down to its very essence - CPUs implement a simple and small set of basic primitive instructions that can be used to implement high-level and complex programs written in Java, Python and so on. By keeping them simple and streamlined, CPUs can run blazingly fast. Similarly, graphics cards are built from GPU chips (graphical processing units) which in turn run a carefully picked basic set of primitve operations. Video games and animations are rendered using algorithm described in software, then compiled down to the small set of underlying basic operations. GPUs don't know about algorithms; they are optimized to run a basic set of operations very fast. And similarly, video and audio signals are processed by algorithms defined in software, then compiled to chips called Digital Signal Processors (DSPs) that are also constructed from a well-thought through basic set of primitve operations. Unfortunately my own field - networking - has never hit upon the same model. Instead of figuring out the basic set of primitive operations needed to forward packets, networks are built from fixed-function chips or from a sea of small CPUs ill-suited for the purpose. We are working to rectify this, by trying to boil down packet processing to its essence, define chips that can process packets very quickly, define languages for programming the chips, and write compilers to map those programs efficiently to new hardware. It's an effort taking place at several universities (Stanford, Princeton, Cornell); at Stanford including PhD students Lavanya Jose (CS) and Lisa Yan (EE)."

What advice do you have for new EE students?

"Stay broad as long as you can, and avoid the pitfall of over-specializing too early. Your interests will grow and broaden over time, so get a good foundation across EE as a whole. Keep your options open as long as you can. Take math classes while in college; it's hard to learn math later on your own once you graduate. And don't forget to develop outside interests while you are in college - get involved in a cause you believe in, or start your own; stay up until 3am arguing about politics and religion."