Welcome to the Lab!
Welcome to the Lab!
Mission Statement
My lab has three central goals:
- To build great systems
- To develop each lab member to become a successful scientist
- To maintain a collegial and intellectually-stimulating environment
As your advisor, I will provide the mentorship and training needed to help you develop into an independent scientist. To accomplish this goal, it is important that we establish effective communication and align expectations with each other. This document provides a framework for communicating the culture of my lab, and how you and I will work together to further your scientific productivity and intellectual development. I believe in mentoring each individual in a manner that best meets their needs, and I look forward to having open discussions about these expectations and revisiting them as necessary to enable your successful professional development. Please note that this document is not a substitute for university rules and regulations, and that those policies and any legal requirements supersede anything in this document.
What you can expect from me
- I will set the scientific direction for the lab and provide the means to pursue those directions. This will include helping you to find a research topic, writing grants to fund the research, and maintaining the necessary university protocols for us to perform research at Georgia Tech. Additionally, I will seek out collaborators for our work to further your opportunities.
- I am committed to mentoring you now and in the future. I am committed to your education and training while in my lab, and to advising and guiding your career development. I will work to promote you and your work.
- I will encourage you to attend scientific meetings and make an effort to fund these activities. These meetings are important to showcase your work and for the networking opportunities as you pursue positions after your time in my lab ends.
- I will be available for regular meetings and will provide timely review of research. In addition, I will do my best to provide an open door policy and respond quickly to e-mails and slack. Please be aware that there will be times when I will be unavailable due to other obligations. For abstracts and pull requests, I will generally be able to review in 2-3 days, for papers and thesis, I will need 1-2 weeks. In the event of a lab emergency, I may be contacted on my cell phone.
- I will provide a work environment that is intellectually stimulating, supportive, safe, and free from harassment. I take seriously any difficulties you experience in relationship to this statement – if there are conflicts with another lab member, please inform me and I will work with you and the other lab member to find a resolution. I will strive to understand your unique situation and am open to your suggestions on how to improve your experience in the lab.
What I expect from you
You will take ownership of your educational experience
- You will need to determine the requirements for your individual graduate program and are responsible for insuring that you are in compliance. As you progress, I will work with you to select courses, qualifying exams, and committee members.
- You will keep me updated on your research progress and challenges.
- To earn your degree you must transition towards independence. We will work together to track this process, but ultimately whether and when you earn a degree will be up to the work you produce, not simply the time you put in.
- Seek out professional development opportunities – being a successful scientist involves more than being good at the bench. You must communicate well (presentations, papers, grants), develop personal skills (lab management, mentoring), maintain high ethical standards, and for a faculty career, teach. However, these opportunities must be balanced with the most important element of your career development – research progress towards your thesis.
You will develop your personal research skills
- Begin reading the scientific literature - read the papers I suggest, run a literature search and read papers suggested by this search. Spend some time each week updating your literature and just browsing. I like to use Zotero to organize my citations. Subscribe to relevant conferences and/or suggestion feeds like Google Scholar. The papers and courses recommended in my classes, DSLs for HPC and Parallelizing Compilers are a great start for anyone joining the lab.
- Learn how to plan your experiments so that they help you progress on the overall goal of your project. Make sure your experiments address the question of interest correctly. This includes learning how to do the appropriate controls, techniques, etc. You will also need to learn how to effectively plan and multi-task to prevent down times. Develop plans with short/medium/long-term goals. Communicate your plans and progress with me in writing through a slide deck or working document, and adjust them with each meeting.
- Develop your writing and presentation skills. As you start to make progress, begin outlining a paper’s figures and drafting the text. Be prepared to go through rounds of revisions before submitting an abstract or paper. Although the availability of travel funds will vary, I encourage you to submit your work for presentation at one conference per year. Attend relevant seminars – I suggest 1-2/month to learn both science and how to give a good talk.
- Develop your mentoring and management skills. Mentoring undergraduate researchers not only helps you achieve your experimental goals, but also provides an opportunity to further your professional development as a supervisor. As the direct supervisor of an undergraduate student, you will be expected to train them appropriately, provide them with experimental guidance, and ensure that they operate in a safe and respectful manner in the lab. The policies in this document apply not only between you and I, but also you and your students.
- Consider applying for fellowships, traineeships, and travel grants. Not only will an award help your career and the overall lab funding situation, the experience of writing the proposal will help you think about what you are doing more deeply.
- Learn how to accept and utilize constructive criticism. The feedback from me, colleagues, committee members, and course instructors is intended to improve your work.
- Be respectful, tolerant of, and work collegially with laboratory colleagues: respect individual differences in values, personalities, and work styles.
You will contribute to the lab and be a good lab citizen
- Senior graduate students are responsible for helping to train new students in the ways of the world (i.e. lab procedures, how individual/group meetings work, literature searching, open source software contribution, etc.). Science is a community - many people will help you along the way and you should return the favor. Share your insider knowledge of techniques with others.
- Software and data belongs to the lab, not to any one individual – as a result, you will be expected to publish artifacts for your papers, and work on software from lab-accessible github repos. You must follow good software engineering practices, this includes documentation, a contributing guide, and continuous integration testing. All results used in papers or communication with me must have associated, accessible scripts to reproduce the plot automatically, and data collection must be a separate script from data visualization. In addition, there will be times when you will be asked to assist me in submitting grant applications to NSF/DOE/etc. This activity is essential to provide continuing support for the lab.
- You will have designated lab jobs such as maintaining the websites, planning outings, etc. Failure to do your lab jobs not only affects you, it can impede the entire lab and will not be tolerated. Lab jobs (with assignments) are as follows:
- Maintaining a digital presence for the lab, keeping personnel list on the website up to date and adding new papers as they are published, announcing them on social media, keeping track of github organization membership, keeping this document up to date, etc.
- Maintaining the compute resources. This includes making sure that the lab server has sufficient documentation for newcomers and established members to use it effectively, and keeping software up to date.
- Maintaining our core software projects in the lab, writing docs and responding to user issues, triaging issues as appropriate to those who know how to solve them. Our lab is unique in designing software for people to actually use. Mission-critical projects which are publicly advertised as user-facing and under active lab maintenance benefit the whole lab. The designation of “Mission Critical” is subject to lab input. Currently, finch-tensor, Finch.jl (FinchNotation only), and SAPS are mission critical.
- Scheduling the lab meetings and meeting topics, booking rooms, booking lab dinners, communicating meeting times and changes in meeting times.
Inclusivity
I seek to create a learning environment welcoming of all students that supports a diversity of thoughts, perspectives and experiences and respects your identities and backgrounds (including race, ethnicity, nationality, gender identity, socioeconomic class, sexual orientation, language, religion, ability, and more.) To help accomplish this:
- If your name and/or pronouns differ from those that appear in your official records, please let me know.
- If you feel like your performance in the lab is being affected by your experiences outside of class (e.g., family matters, current events), please don’t hesitate to come and talk with me. I want to be a resource for you.
- I (like many people) am still in the process of learning about diverse perspectives and identities. If something was said in a meeting (by anyone) that made you feel uncomfortable, please talk to me about it. You can also consult any of the resources listed in the Georgia Tech Student Resource Guide.
- As a participant in this lab, recognize that you can be proactive about making other students feel included and respected.
- If individuals are disrespectful to others, I reserve sole discretion to take appropriate action to resolve matters, up to and including asking you to leave the lab or not attend meetings.
Nuts and Bolts
Hours and Vacation
I do not believe in tracking hours – instead, I am interested to see that you are productive. However, if I sense that this is being taken advantage of, the situation will be addressed. You are responsible for your own time, and I want to support you to keep a healthy work-life balance. However, I also cannot support students who are not making progress indefinitely. If you find that you are not able to make progress while maintaining a healthy work-life balance, I ask that you bring this up with me so that we can discuss time management strategies or suspending or exiting the program. I ask that you discuss with me at least 4 weeks before a planned absence - this way we can determine if it is an appropriate time for a vacation and if there are grant or other deadlines during that period we have ample time to prepare. I expect you to satisfactorily complete all assigned research duties prior to your planned departure.
A Statement on Generative AI and Ethics of Research
You are welcome to use AI coding or writing assistants in the lab. However, keep the following things in mind:
- You are responsible for ensuring that your research findings are factual. Fabricating results is a serious offense, and you should be sure that any AI-written code is doing what you think it’s doing, and AI writing says what you want it to say. I will not judge your work output more leniantly because you used AI to do it. You are ultimately responsible for whatever work output you sign off on.
- Respect other’s time. Do not use AI to create presentations or direct communications like slack messages. If you feel you’ve run out of time to prepare a presentation, I would much rather we waited for another time. Read and test your code for yourself before asking others to read it in pull requests. Read and edit your papers yourself before asking others to edit it. For any large refactoring/translation task, you must verify by hand that the output is actually the same as the input.
- I am trusting you to be honest with me about what you understand to be true in the research, and what you understand to be good code. If I can’t trust that, we cannot work together. It is in your best interest to tell me when you don’t understand things so that I can explain or refer you to appropriate resources. If I suspect that you are being less than honest about how well you understand a piece of code or writing, I may “quiz” you on some details of the work to figure out whether I can trust your assesment of it or if I need to determine quality myself.
- Reading someone elses AI-generated code to determine if it does what it needs to do is just as much work as using AI myself, be careful not to demonstrate your obsolecence. Graduate school is a unique time to learn new skills and you have paid a lot (in opportunity cost or tuition) to be here. The industry is competitive right now, and everyone has access to the same tools you do. You owe it to yourself to be real about the competitive advantage you are gaining by having the AI do the work for you.
Meetings
Come prepared to discuss/present your recent research and next steps. A written agenda including what you have done and what you propose to do in the next week must be e-mailed to me by 3 pm the day before the meeting.
Annual Evaluations
Each year we will have an evaluation – this will help us to determine things that are going well or are areas for improvement. I will tell you if I am satisfied with your progress and help identify steps you can take to fix any concerns. This is also an opportunity for you to communicate to me what I can do to help you succeed. Tell me if you feel that you need more guidance, more independence, to meet more often, etc.
Authorship
One of the most important tasks in science is disseminating your research through publications and presentations; therefore, authorship on these items is an important indicator to the outside world of your role. Authorship implies a significant contribution to a paper such as intellectual ideas that change the research or experimental contributions (just following instructions and not actively participating in the experimental design/interpretation will be acknowledged, but likely would not result in an authorship). While the order of authors varies by specific field, in general for computer science the first author is the student/post-doc who took the lead and wrote the paper, the last author is the PI, and the authors in between are in order of decreasing contribution. Failure to complete papers before leaving the lab may result in another member doing so as the 1st author in your place.
Conflict Resolution
If a conflict arises with another lab member during your time in my lab, I will work with you to find a resolution. If the conflict fails to be resolved or you do not feel comfortable involving me, I encourage you to consult with the SCS Student Chair or the Dean of Students to attempt to settle the disagreement.
Prospective Students
Thank you for your interest in the lab! I have a few requirements for those who wish to do research in my lab:
- You must already be a Georgia Tech student, junior undergraduate or above by year, not credit. I ask this to ensure that you have had time to learn the field before contributing to it. It is more efficient for you to take classes before joining than for me to teach you on the job. Relevant classes for my field of research are in compilers, linear algebra, programming languages, numerical methods, high-performance computing, computational science, algorithms, databases, or randomized algorithms.
- You must have gotten an A in at least one graduate-level course, and an A in least one compilers (or relevant mathematics) course before you join.
- You must register for research officially, either for credit or pay. I award grades based on demonstrated consistent progress.
- There is an in-person interview. Please send my your transcript and resume, and we can set up a time. I’ll ask you to work on a problem from a relevant textbook together with me on the whiteboard, or we can pair-program through a coding task together. (Note: I say “together” because some of my textbooks have really hard questions, even for me!)
Attribution and Feedback.
This document is based on the template provided in “Ten simple rules for developing a mentor–mentee expectations document” by Kristyn S. Masters and Pamela K. Kreeger. It is meant to be a working document, and subject to discussion and revision. Your feedback is valuable, please let me know if you have suggestions.