Join us

General information

Welcome! We’re so glad you’re interested in working with us. To learn more about how to apply to the lab, see the section for your career stage below.

Expectations of all lab members

Before applying, make sure that you are all right with the following expectations:

  • Make an honest and good faith effort to accomplish the work you commit to.

  • Contribute to a positive lab environment. This means treating all other lab members with respect and following the code of conduct.

  • Be committed to practicing open science to the best of your ability while you are in the lab. This includes (inspired by the DIB lab): 1) making all research code available under an open source license (our default is the MIT License, but we’re open to others), 2) submitting all papers to preprint servers unless there is a compelling reason not to, 3) making data and/or configuration files for your projects publicly available, and 4) erring on the side of collaborating with others rather than competing.

Prospective undergraduate students

The number of undergraduate students that our lab can accommodate depends on the capacity of our other lab members to mentor them. As we build up the number of experienced graduate students in the lab, we will start more actively searching for undergraduate lab members. For now, we still welcome applications from interested students, but will likely have to turn a number down.

If you are interested in applying for an undergraduate research position in our lab, e-mail Emily Dolson and include the following information:

  • Why you are interested in working in this lab?

  • Why are you interested in doing research in general? What are you career plans for after you graduate?

  • What is your level of programming experience?

  • What is your level of biology experience? (it’s okay if the answer is none as long as you’re open to learning some!)

  • Do you have experience in other areas of science?

  • Have you done research before? If so, describe it.

  • Which track (see below) are you interested in?

There are three different tracks for undergraduate students in this lab (although the boundaries between them are fuzzy and you can absolutely switch):

Computational research

Qualifications: In most cases, students seeking to do this kind of research should be competent at programming in C++. For MSU students, this usually means having taken CSE 232.

This is the standard research track, and is most similar to what graduate students in the lab do. Undergraduate students on this track will choose a bite-sized research project (often a chunk of a larger project that another lab member is working on). They will then (assuming all goes well) take that project through its full life cycle: 1) writing any code necessary to run the digital experiments for that project, 2) running those experiments, 3) analyzing the data, and 4) writing the paper. Over the course of this work, the student will receive help and mentorship from whichever lab member is assigned to be their mentor.

Research software development

Qualifications: In most cases, students seeking to do this kind of research should be competent at programming in C++. For MSU students, this usually means having taken CSE 232.

Because we are in the Computer Science and Engineering department, we often get students who are more interested in software development than research. Conveniently, scientific software development is a very important part of what we do, and often one that other lab members don’t have the bandwidth to take on. So we very much welcome undergraduate students who are interested in focusing on this area!

The general process for participating in software development in our lab is as follows:

  1. Start out by writing tests for parts of our code that are currently missing them. This will give you a chance to familiarize yourself with our codebase in a gentle way while also making a valuable contribution.

  2. Once you’re ready, we’ll choose a specific open software development problem that you’re interested in working on and you’ll work on it.

Low-code biology research

Qualifications: Students interested in this track do not need to be competent in any programming language, but must be open to learning one (and experience with Python or R is a major plus). Additionally, students interested in this track should have some biology background.

We haven’t actually tried this one yet, so whenever we actually do it will be a bit of an experiment. The idea is that it is designed for biology students without much programming experience. For these students, the amount of up front technical skills that many projects in the lab require learning can be overwhelming (a typical project requires coding in a combination of C++, python, bash, and R). These projects should only require writing code (probably in R) to analyze the data. This is a much more manageable amount of learning to do in the context of undergraduate research.

Within the lab, we can pretty easily put together a piece of software designed to address a specific question about ecological and/or evolutionary theory. We can also fairly easily give it a user-friendly interface that doesn’t require programming to interact with. The bottleneck is more often generating and analyzing the data. So if you want to work on one of these types of projects, we will follow the following process:

  1. Discuss possible project ideas and identify one that everyone involved seems excited about.

  2. The student will read papers to familiarize themself with the chosen topic while a different lab member puts together the code to run the experiment.

  3. The student will run the code (probably through a graphical interface on a web browser) to generate all of the data they need.

  4. The student will analyze the data (with guidance from other lab members).

  5. Assuming it makes sense based on the specifics of the project, the results, and the student’s interest and time, the student will have the opportunity to take the lead on writing any resulting paper. They will be supported in this endeavor by the other lab members they are working with. We will talk more about the specifics of this once we get to this point in a project.

Prospective graduate students

The ECODE lab studies techniques for controlling evolution in the context of a variety of ecological communities. Because this problem can be really abstract, we often ground our research in specific instances of it. These instances include: improving evolution-inspired machine learning algorithms, preventing the evolution of drug resistance in cancer and bacteria, and controlling the evolution of gut microbiota. Because these questions span the full spectrum from computer science to biology, we strive to have a mix of graduate students in the lab at any given time. Depending on interests, graduate students in the lab may choose to focus on one of these instances or pursue a cross-cutting question across multiple contexts.

Because our home department is Computer Science and Engineering (CSE), it is easiest for us to take students through this program. The CSE department does not require that you have a formal degree in computer science, but it does require some background in computer science (not just programming). For more information, see the CSE department’s instructions on how to apply. If you are particularly excited about the idea of joining the lab but do not have a formal computer science background, feel free to reach out anyway to discuss options - we might be able to figure something out.

Most graduate students in the lab are also part of MSU’s interdisciplinary Ecology, Evolution, and Behavior program. This program offers a great way to be part of a larger community on campus that is asking the same sorts of questions that we do. It also gives students the opportunity to graduate with a dual PhD in Computer Science & Engineering and Ecology, Evolution, & Behavior.

Are we the right fit?

Choosing a lab to do your PhD in is a huge choice and you should think about it carefully. On the off chance that you haven’t already come across lots of advice on how to make the right choice, check out this article from PLoS Comp. Bio.’s 10 simple rules series: “Ten simple rules for choosing a PhD supervisor”.

Many aspects of fit require an actual conversation to assess, but here is some information to help you figure out whether the ECODE lab might be a good fit for you:

Lab size

As of 2021, the ECODE lab has two PhD students. We plan to grow by approximately one PhD student per year until we reach a steady state of ~5 students. The hope is that this will strike a balance between ensuring that all students receive adequate personalized mentoring from Emily and ensuring that the lab is big enough to provide community and collaboration opportunities.

Emily’s mentoring philosophy

As a new PI, I’m still figuring out how to be the best mentor I can be, but here are my guiding principles:

  • As I see it, my primary job as a mentor is to help you achieve your goals. We are on the same team, trying to learn new things about ecology, evolution, and computer science while also doing what is necessary to continue having jobs.
    • Corollary: if your goals change at any point I’ll still support you in doing what is best for you, whether that means changing your long term career plans, switching research projects, switching labs, or leaving grad school all together.
  • Your physical and mental well-being comes first. Those are A) more important than your research, and B) necessary for doing good research.
  • Part of being successful in grad school (and beyond) is figuring out how you work best. I will provide advice about what has worked for me and for others, but with the understanding that everyone is different and what worked for me might not work for you. That said, I do impose some minimal levels of structure (semesterly goal-setting, weekly check-ins, etc.) on the lab so that I can keep track of everything that needs my attention and be a more effective mentor. I can also theoretically provide more structure if you desire it.
  • Relatedly, I trust you to set whatever schedule is best for you. I encourage everyone to come to lab for some minimal set of core hours (noon - 3ish) so that we overlap with each other and collaborate, but beyond that what matters to me is that you are making progress towards achieving your goals, not how many hours you spend sitting in front of your computer. While I will send you messages during my normal working hours (which skew late; I have an atypical circadian rhythm), I will only expect you to respond to them during whatever your normal working hours are. There is always more science you could do; learning how to set boundaries is important.
  • Ideally, I want to let you study whatever research questions you are most excited about. In practice, there can be some constraints: 1) I’m not qualified to advise you on projects that are too far outside my skill set - if you want to pick up a completely new technique (e.g. bioinformatics, wet lab experiments, etc.) we’ll probably need to enlist the help of a collaborator, 2) if your funding is coming from a grant, you will need to actually do the work we are funded to do (we’ll talk about the specifics of what this might look like when you interview), and 3) in order to get tenure and thus continue being able to advise you, I need to show that I have a somewhat coherent research program; since the research that we do together is the driver of my overall research program, I do need to keep it somewhat on theme. I’ve carved out a pretty broad research focus, so I’m hoping this won’t be an issue.
  • Typically, I try to have a weekly meeting with all my graduate students, just to make sure we have a chance to check in and make sure everything is going smoothly. This can always be cancelled if there’s nothing important to discuss (particularly if classes are eating up all your time during your first couple years), but the default is to meet. It can be tempting to not meet if you’re not making progress, but often those times are when it is most important to meet so we can figure out why you’re feeling stuck. We also have a weekly lab meeting as an opportunity for the group collectively to check in.

What being a grad student in the ECODE lab is like

  • First two years: The CSE department has a relatively heavy course requirement, so your first two years you’ll probably be fairly busy with classes. Emily will encourage you to also start easing into doing research. You and she will talk through a variety of project ideas, and choose one that sounds good to both of you. Your first project will be a chance for you to start learning all of the skills that go into the kind of research we do and understanding how they all fit together. You will collaborate closely on it with Emily and/or a more senior grad student in the lab. Publications will depend on the specifics of the project, but a likely goal will be to submit a paper on your first project by the end of your second year.

  • Third year: If you’re still feeling excited about the topic that you started with, at this point you might start working on a follow-up project. If you’re not, you can try out some other topics; Emily is always happy to provide research ideas, but you might also start coming up with your own ideas by this point. You’ll probably be feeling more comfortable with the mechanics of doing experiments by this point, and will be starting to learn how to design a sequence of experiments to answer the questions you’re interested in.

  • Fourth year: By this point you should be well on your way to nailing down a topic for your dissertation. You’ll probably feel like you’re starting to hit your stride when it comes to research, and you’ll also be starting to come up with longer-term research strategy (although Emily will always be there to help!).

  • Fifth year: This is most likely your last year (although there is some variation in how long it takes to graduate), so you’ll be planning out your next steps in addition to finishing up your dissertation and trying to get papers out. It will probably feel like a lot, but you’ll have developed the skills to handle it.

Papers to check out

To get a feel for whether the research we do appeals to you, here are some papers to take a look at:


Evolutionary Computation:

How to apply

We are actively seeking applications from PhD students. If you are interested in doing your PhD with us, e-mail Emily Dolson and include your CV and the following information:

  • Why you are interested in working in this lab. Which part of our research are you excited about contributing to?

  • Why are you interested in doing a PhD in general? What are you career plans for after you graduate?

  • What is your level of programming experience? What is your level of computer science experience? Note that these are two subtly different things. Some ability to write code is necessary to be a successful graduate student in this lab (although obviously you’ll learn a lot over the course of graduate school - we don’t expect you to be an expert at the beginning). Formal training in computer science is less critical, although it is helpful as our home department is Computer Science and Engineering. If you have some programming experience but no formal computer science background there are a range of options we can discuss.

  • What is your level of biology experience? (it’s okay if the answer is none as long as you’re open to learning some!)

  • Do you have experience in other areas of science?

  • Have you done research before? If so, describe it.

Prospective post-docs

While we do not currently have funding available for any post-doctoral positions, we are very much open adding post-docs to the lab if their expertise is the right fit. Most likely, this would take the form of applying for funding together. Because of the timeline for most funding applications, we recommend that you contact us at least a year before you are hoping to start a postdoctoral position. We’re happy to discuss options on a tighter time scale as well - there will just likely be fewer options.

Some funding opportunities that may be a good fit for post-docs interested in joining the ECODE lab include the following. Some of these require an explicit mentor and others do not:

The other option for securing funding is that we can potentially write you into a larger grant. As a new lab, we’re writing a lot of grants, so this is a real option. E-mail Emily Dolson to discuss this further.

Emails from prospective post-docs should include a fairly detailed description of why you are interested in this lab specifically and what type of research question you would be interested in persuing.