651 N. 34th St.
Seattle, WA 98103 (map)
mdw AT mdw DOT la
I am a software engineer at Google, where I work in the area of mobile computing, distributed systems, and networking. Prior to joining Google, I was a professor of Computer Science at Harvard University from 2003 until 2010, and a senior researcher at Intel Research, Berkeley from 2002-2003. I did my PhD in Computer Science at UC Berkeley (2002) and my bachelor's in Computer Science at Cornell University (1996). My research interests span a broad range of topics in the space of operating systems, networks, distributed systems, embedded systems, and programming languages.
List of publications and talks
Volatile and Decentralized (my blog)
My curriculum vitae (last updated December 2010)
At Google, I head up a team in Seattle focused on mobile web performance. Check out this blog post for some background on what we do.
At Harvard, I was the head of the Harvard Sensor Networks Lab. Some of my previous research projects included:
Pixie: A resource-aware OS for sensor networks
Lance: Utility-driven signal collection in high-data-rate sensor networks
Mercury: A wearable sensor platform for high-resolution motion analysis
RoboBees: An autonomous colony of robotic pollinators
WhiteFi: Networking in the UHF white spaces
Monitoring active volcanoes with wireless sensors
CitySense: An urban-scale open sensor network testbed
Macroprogramming languages and abstractions for sensor networks
CodeBlue: Sensor networks for medical care
MoteTrack - RF signature-based indoor localization
Hourglass and Stream-Based Overlay Networks - Network architectures for Internet-scale stream processing
TinyOS and NesC - OS and programming language support for sensor networks
SEDA - An architecture for well-conditioned, highly-concurrent server applications
Ninja - Infrastructure for scalable, composable Internet services
Jaguar - High performance networking and I/O for Java
VIA, U-Net, and U-Net/SLE - Fast, user-level network interfaces
UC Berkeley Millennium - A campus-wide cluster-of-clusters
I am the author of the O'Reilly book Running Linux, 5th Edition
Travel photos: India (Aug '06, Dec '01), Belize and Guatemala, China, Ecuador (Aug '07, July/Aug '05, June '05, July '04), Morocco, Ethiopia,Papua New Guinea, Laos, Bolivia, Malaysia and Indonesia, Nepal.
Recent committees and service:
Program committee, MobiSys 2013
Program committee, HotMobile 2013
Program chair, HotOS 2011
Steering comittee chair, ACM SenSys
Program committee, SIGCOMM 2010
Program committee, IPSN 2010
Program committee, EWSN 2010
Program co-chair, SenSys 2009
Program committee, NSDI 2009
Program committee, IPSN 2009
Former Editor-in-Chief, ACM Transactions on Sensor NetworksPrior to 2009: About a zillion others; see my CV.
Other software releases: (Also see research links above)
Python script to suck down album art from Amazon. Quick and dirty.
Installing TinyOS 1.x on Mac OS X (Intel Macs too!)
Debugging a TMote Sky with GDB and JTAG
SlimServer Control extension for Firefox -- Control a local SlimServer or Squeezebox directly from the Firefox status bar. (Unzip the .xpi file and see README.txt for details. Updated for Firefox 1.5.)
NBIO - nonblocking I/O facilities for Java
NinjaRMI - extensible alternative to Java Remote Method Invocation
iSpace and MultiSpace - flexible Internet service platforms