The following is an ever evolving list of systems projects I'm willing to supervise (or am co-supervising with other faculty/staff). In general I require that students I supervise have done well in 414 and 415 (or equivalent). The projects I supervise will _always_ involve a substantial programming and/or measurement part, and are never an easy ride.
In addition to the ones listed here, I have a couple that are more in their infancy (and which probably need sanity checks..) - come see me if you're interested. Even better, if you have ideas of your own (that you think overlap my interests), I encourage you to get in touch.
"Emulab" on Amazon EC2
Amazon has recently been beta'ing their "Elastic Compute Cloud" (EC2); basically end users (programmers), can upload a virtual machine image (basically a snapshot of Linux with whatever you want to install on it) and then run these in one of their datacenters on demand. The cost is quite reasonable (from the EC2 website:
What I think would make a great project would be to implement an "on-demand" network testbed ala Emulab. Basically emulab is a large datacenter that allows you to construct arbitrary topologies, and then run your experiments on the emulated topology. They achieve these arbitrary topologies by inserting "delay nodes" in the path between your experimental nodes and then traffic shaping inside these.
The thing is that Emulab is frequently busy when researchers need it the most (just before important conference deadlines), so many institutions (including us) are building our own emulabs. However, this is expensive (I reckon ~$100.000 for just minimal hardware) and difficult to install, not to mention expensive to maintain. In addition, building a very large emulab for a single large scale experiment doesn't seem very cost effective.
So what would be nice is if you could design your experiment offline, then simply upload the whole thing (experimental nodes, delay nodes, routers, etc) to EC2, run the experiment and then unload all the nodes when you're done. Easy, eh? :-) Maybe not, but it would be extremely cost effective, and worthwhile even if the end result was a more restrictive environment than Emulab.
What you need to know (or be willing to learn): Webservices (that's how you interface with EC2 and S3), Linux (that's the OS you'll be using), assorted mad networking skillz. What you need to do to get an A+: Build a system that by the end of it allows me to specify a relatively complex network topology, press a button, and then be able to use that topology in a similar way to how I would now use Emulab, then press another button, and the whole thing disappears...