I'm looking for motivated students to join my lab and work towards a PhD thesis on developing distributed techniques that exploit programmable network hardware. The precise topic will be customized to fit the student's strengths and desired direction of growth. Example customizations of this topic include the design of languages, abstractions, runtimes, OSs, and provable consensus or security mechanisms. Regardless of the specifics, the thesis will make novel scientific contributions to programmable networking.
For a general idea of what I work on, see my website and some (non-PhD) student project offerings.
As a PhD student in the lab you'll be part of small, supportive community of highly-technical people. Lab members learn to use cutting-edge networking equipment that is housed in our lab and in Illinois Tech's Ocient Computational Center. Lab members are also heavy users of the FABRIC testbed, and our lab has a facility port through which experiments can span both on-site equipment and the FABRIC testbed. As a PhD student, you'll learn and develop novel, advanced techniques, have opportunities to collaborate and to disseminate results at conferences, and have the support to pursue excellence.
Practical system-building skills are necessary for PhD students to succeed in this research area. Mathematical skills are also a huge advantage to your preparation. I'm more interested in the motivation and skills of prospective students and I don't mind what background a student has — such as where or how recently they got their degrees, and whether they're applying directly from a first degree or if they have a MS degree.
For system-building, solid coding skills are a must — ideally in languages like C, C++, Rust, Go, or Dart. Knowing functional programming languages is a plus but not necessary — including Scheme, OCaml or Haskell. If you have used embedded or reconfigurable hardware, or used exotic languages, or done low-level or kernel programming, then those too are plusses.
Having a good grasp of networking is vital. On top of having performed well in a networking course, being fluent in socket programming, P4, or APIs like DPDK are big plusses.
If you don't feel strong in system-building but have excellent mathematical skills — be it pure, applied, or in theoretical CS like concurrency theory — then that's still competitive.
Alternatively, if you're following a non-traditional path and are returning to study after a stint in industry, that too can make you competitive.
The funding slots will be competitively awarded to the best-prepared applicants (in terms of their technical skills, professional or research experience, prior publications, contributions to open-source code projects, etc). Funding will cover tuition and provide a stipend. Both domestic and international applicants are eligible. In addition, the student will also be funded for research equipment and conference travel.
To be awarded funding, you must first be accepted into Illinois Tech's PhD in Computer Science program. Your acceptance into the program is decided by an admissions committee who evaluates all applicants evenly across several criteria. Note that you're eligible for admission even if you hold a MS that isn't in Computer Science. Once you're accepted into the program then — provided you've indicated that you wanted to carry out the PhD with me — you'll be considered for a funding slot.
To apply for a PhD in Computer Science, visit the program page and click on the "Apply" link. If you plan to apply for a PhD with me then you're welcome to contact me to find out more about my work and discuss your research interests, but I cannot comment on your application.
Application Deadline | Start Date |
October 1, 202x | Spring semester — i.e., January 202(x+1) |
January 31, 202(x+1) | Summer semester — i.e., May 202(x+1) |
January 31, 202(x+1) | Fall semester — i.e., August 202(x+1) |
For example, if you apply by October 1, 2024 then the PhD could start at/after January 2025, but if you apply by January 31, 2025 then the PhD could start at/after May 2025 or August 2025. The different deadlines and start dates are intended to give flexibility to PhD applicants who are finishing up their current degrees or jobs.
In case the university changes any details after I upload this page, make sure to check the official application deadlines for domestic and international applicants. Applying for a PhD can take some time and it involves gathering various bits of paperwork, including letters of reference, so it's best to start your application early in case there are unforeseens.
What happens once you start the PhD? The first part of the PhD program helps you build a stronger foundation for research. This involves taking courses and getting specific grades by specific dates. During this period you'd also start working on your research — the research doesn't have to wait until you've finished this foundation. The PhD Qualifiers page explains this process in more detail. That page also describes the oral exam that PhD students must take to progress. See these guidelines for the oral qualifying exam and the form to be completed when you're ready to take that exam. The main focus of your PhD will be on novel research, and the oral exam helps you reach a milestone towards that.
Illinois Institute of Technology, also known as Illinois Tech, is a private, technology-focused research university. Illinois Tech is the only university of its kind in Chicago, and its Chicago location offers students access to the world-class resources of a great global metropolis. Illinois Tech provides an exceptional education centered on active learning, and its graduates lead the state and much of the nation in economic prosperity. Illinois Tech uniquely prepares students to succeed in professions that require technological sophistication, an innovative mindset, and an entrepreneurial spirit.
Find out more about the Department of Computer Science, the recently-formed College of Computing, the Mies campus and its transportation links, and life in Chicago.