For Students Looking for MS or Undergraduate Research

You're not a professor. Yes, I'm not a professor, and I being a PhD Student, I do not have a PhD, and therefore should not be addressed as "doctor".

Seems a bit weird to have a page like this. Yes, it's pretty weird. However, I've been getting a lot of even weirder emails from masters and undergraduate students, so here I am.

Why should I work for you? My research area is in the intersection of Machine Learning and computer systems (i.e., SysML), so if you're interested in machine learning, but don't want to completely give up more "hands-on" systems work, then this area is for you. There are many other research groups and individual PhD students working on SysML here at CMU. What makes my work somewhat unique is

  1. A focus on Learning For Systems instead of Systems For Learning, and
  2. An engineering-centric research flavor prioritizing practicality over methodological novelty.

In particular, I work on using machine learning to improve systems (not using systems to improve machine learning as in efficient learning, accelerators, etc.), and place a strong emphasis on working on novel problems which often require significant effort to create data collection systems. Overall, this means that while strong machine learning fundamentals are still necessary to ensure rigor and correctness, my work is generally systems-heavy and quite applied.

What kind of work do you have for MS/undergraduate RAs? Here's some project ideas that I currently have:
  • Distributed application generator and benchmark suite: Applications to analyze are a key requirement for performance analysis research, but are difficult to come by due to the relative lack of easy-to-use real-world distributed applications; this motivates us to create our own benchmark generator to enable future research at the application level. This project requires a high level of confidence in basic systems programming; familiarity with probability and statistics is also required.
  • NeRF-inspired radar method improvements: Our NeRF-inspired radar processing algorithm has several avenues for improvement, as well as a general need for more robust data collection infrastructure. Several possible projects are possible, ranging from systems-heavy (i.e. data collection improvements) to machine learning-heavy (methodology improvements). Strong software engineering skills are required for all projects in this area.
  • Exploratory topics: I am looking for students to explore the current state-of-the-art in several machine learning topics of interest, including generalizable "meta-NeRF" and non-visual NeRF models. While the initial scope is somewhat limited, a successful initial exploration can motivate full research-paper-scope extensions and applications.

What are you looking for in a student? When it comes to background, there are three main categories that determining the possible level of contribution (imagine adding your scores from all three).

  1. Machine Learning background: ML fundamentals, particularly basic ML/stats concepts and mathematical foundations such as probability/analysis and linear algebra/optimization. I can teach (and you can self-study) more advanced algorithms, but I will not teach introductory mathematics.
  2. Systems background: Computer systems concepts (e.g. introductory operating systems / computer architecture), as well as software engineering practices. Students should be confident in their ability to independently write code at a high standard beyond the scope of a typical class assignment (where all software components are pre-planned and neatly laid out). If you are interested in machine learning, keep in mind that unless you really know theory, the "core competency" of empirical and applied machine learning is software engineering.
  3. Time: No student will have all the background required for a project ahead of time (if you do, why are you emailing me?). Budget at least one semester for "spin-up" before you can do anything meaningful. As a corollary, students with one semester or less remaining should not bother.

Putting these together, when I decide whether or not to take a student, I try to answer one simple question: can this student be taught enough about machine learning for systems in time to contribute meaningfully to a research project before they leave CMU?

I'll work for you for free. Even if you're working for free, working with you is not free. Free would be deleting all of your emails without reading them. Supervising a undergraduate / masters RA is a (time) cost to me, and I also have to do research and graduate eventually. Finally, while the undergraduate and masters RAs that I work with are usually paid, whether you get paid or not makes no difference to me since I'm not the one paying.

I understand and agree to these terms and conditions; how do I apply? Please send me an email! I commit to replying to all student emails even if it's just to say no.