Join My Lab

Join my research team at Tufts CS! Become part of the growing and energetic Tufts ML Research Group.

In Fall 2024, I am actively recruiting:

  • Up to 1 new Ph.D. student to join in Fall 2025 to help with an NSF-funded project (exceptionally qualified students please apply to Tufts!)
  • Up to 2 hourly RAs (current undergrad/masters students at Tufts, please reach out)

Keep reading below for the skills I'm looking for, some possible high-level project ideas, etc.

Jump to: Project IdeasCurrent Tufts StudentsProspective StudentsPrerequisite Skills

Possible projects/topics

For possible project topics, see my Research page.

Current students at Tufts

I'm excited to work with strong undergraduate, Masters, and Ph.D. students to make exciting machine learning research happen. I don't generally pursue research projects with students who are brand new to probabilistic machine learning or data analysis, but if you some prior experience or relevant coursework (looking for completion of CS 136 or similar), I am happy to chat about possibilities. See below for a quick recap of skills I hope students have before joining a project.

If you think you have the right background and are willing to commit at least two semesters (or at least 1 semester + summer) to research, please send me an email with:

  • what project ideas seem most exciting to you?
  • quick list of courses you've completed at Tufts or other schools relevant to machine learning / data analysis
  • pointer to a previous course project report / github repository / etc. to demonstrate ML skills or coding skills
  • statement confirming you're willing to give several hours a week for multiple semesters (or a semester + summer)

I know this is not a casual commitment, but I will work hard with you to deliver a meaningful experience that results in some kind of open-source software release and/or publication in a workshop or conference. If you look at my CV, you'll see all the students marked with ^u (for ugrad), ^m (for masters), or ^d (for doctoral) that I've mentored in the past.

Prospective students

Prospective Ph.D. students: Apply to Tufts First

You should apply to the Tufts CS Ph.D. program. If you mention me by name in your research statement, I'll be able to consider the application carefully.

Prospective M.S. or Post-Bacc. students: Apply to Tufts First

Generally, I plan to take M.S. students to join the lab after they have been accepted into a program and complete some machine-learning coursework successfully. You should apply to one of the possible Tufts CS masters programs, including

Note about Email for Prospective Students External to Tufts

Please do contact me via email if you are interested in working with me. This helps me know who to look for in the applicant pool. It helps if you clearly articulate why your research interests overlap with mine by mentioning a topic listed on this page.

I get tons of email, so I regret that I am unable to respond to about 95% of the unsolicited messages I get seeking admission to our Masters/PhD. If you mention the word "dinosaur" in the subject line, I'll be more likely to respond.

If you don't get a response, this doesn't mean I'm not interested. Usually I wait to see a full application, and if I like what I see I will reach out to schedule a Skype interview.

Prerequisite Skills

Preferred candidates for PHD study will have a strong machine learning mathematical background and strong Python data science development background.

Probabilistic Machine Learning Skills

My group's work in statistical machine learning requires some prior understanding of concepts like Bayesian data analysis, supervised machine learning, optimization algorithms (e.g. gradient descent), unsupervised machine learning (e.g. k-means cluster/PCA) or deep learning. Good evidence for your probabilistic ML capabilities would include:

  • Evidence that you can complete a self-directed research project involving fitting a probabilistic model to data and interpreting its results. This might be a self-study project or a project from previous coursework. The key skill here is to be able to translate inference algorithm pseudocode from a research paper into a concrete code implementation without much guidance.

  • Successful completion of ML coursework at Tufts or another university, including at least a course like CS 135 (Intro to ML), but preferably also a course with more mathematical content like CS 136 (Statistical Pattern Recognition) or other special-topics-level courses taught by ML faculty. If you did a final project for that course, sending me your report/slides would be a great litmus test.

Python Data Science Development Skills

A key goal of my group is to develop open-source Python software so that non-experts can apply our novel machine learning algorithms to their datasets in meaningful ways. For examples of previous open-source work, see our Bayesian Nonparametrics in Python (BNPy) package or our recent Prediction-constrained topic models package.

I am keen to make these packages more usable and would love some help extending their features.

Good evidence of software capabilities would include:

  • An open-source repository on github showcasing some small-but-interesting project produced using common Python data science stack packages (numpy, scipy, pandas, scikit-learn, PyTorch, tensorflow, etc.)

  • If you did some closed-source contributions (perhaps at an internship), please describe them in a brief paragraph. Try to give examples of concrete algorithms you've implemented or the scale of datasets you've worked with.