What I Learned in My First Year as an Assistant Professor
It's been a little bit over a year since I started as an Assistant Professor at UNC. Before starting, I talked to many other professors about how to best prepare for this position. To my surprise, different people gave very different advice on the same topics (e.g., grant writing, student advising, etc.). Thus, I thought I would share some of my experiences that would have been useful for me to know before starting. I hope these will be useful for others starting their professorship journey.
1.1 Recruiting Students
After you become a professor, most of your research will be done through students. Therefore, recruiting *good* students will be one of your most important tasks in the first year (and probably many subsequent years). Before I started at UNC, many senior professors told me to be very selective (e.g., 1-2 students) about whom I worked with during my first year. This makes sense because you don't want to waste your time with students who don't have the right background, or whose interests don't align with yours. Having said this, I thought that 1-2 students were too few, i.e., even if you were working with a brilliant student, their project might not work out due to some unforeseen circumstances. Therefore, I was pretty lenient with my "filtering" strategy and said yes to most students who had a somewhat reasonable computer vision background and were interested in working on problems that I pitched to them. This resulted in six total students (4 Ph.D. + 2 MS), one of whom I funded right away and the rest I mentored on the Independent Research Studies.
I was hoping to get at least two paper submissions from these six students by the end of the academic year. Thus, I was positively surprised when we had four submitted (and accepted!) papers. While this was great, throughout this experience, I also realized that mentoring six students took a lot of time (more than 10 hours a week). Initially, this was fine with me because I wanted to identify the students I would like to work with long-term. However, now that I've done it, I plan to be a lot more selective so that I could focus more of my time on my current students.
1.2 Mentoring Students
Project Selection: Selecting good projects for the students is essential to ensure that they are productive and motivated. Based on my experience, the two main issues in project selection are as follows. First, if a faculty assigns a project to a student there is often little input from the student, which means that the student might not have the right background or enough interest in the project. On the other hand, if a student is given the full freedom to choose their own project, they often end up choosing problems that are not impactful, which means those projects are doomed to be unpublishable from the very beginning (mostly applicable to junior students).
To avoid both of these scenarios, I asked the students to come up with their own project ideas while nudging them toward publishable/impactful problems every step of the way. This meant having multiple brainstorming sessions, where the student and I discussed the general problem of interest, prior work, technical ideas to address the limitations of prior work, etc. The disadvantage of this strategy was that it took quite long to formulate projects (~2-4 weeks). However, once the project was decided, the students seemed highly motivated to complete the projects throughout the entire semester.
Meeting Frequency: When I started as a professor, I didn't want to micromanage my students. Therefore, initially, I set up weekly 1-hour meetings with every one of my students, which I thought was reasonable. However, having a large number of 1st year Ph.D. and MS students, I quickly realized that this was not going to work, i.e., we were not making any progress on the projects. Some students were getting stuck almost immediately after our weekly meetings and then just trying random things until our next meeting. Others seemed to start working on the project only a few days before our meeting but not before then.
To address these issues, I started setting meetings twice a week (Tuesday and Friday) for several projects. This ensured that (i) I could provide frequent hands-on guidance and not let the students stray away from the main goals of the project, (ii) incentivize them to make progress by asking them to show me some results for each meeting. I also set up a Slack channel for our group, which was a lot more effective than email. After using it for more than a year, I can say that it enabled much smoother and more frequent communication between my students and me.
Paper Writing: As a faculty working primarily with junior MS/Ph.D. students, I quickly realized that one week was insufficient to produce a high-quality paper. For instance, for the ECCV conference this year, my students and I submitted 3 papers. Initially, I planned to let my students do most of the writing, and give them detailed feedback on their drafts for multiple rounds of revisions. However, I quickly realized that in many cases, large portions of the student-written sections had to be completely re-written, which would have taken far longer than a week with multiple rounds of feedback and revisions. Thus, I ended up doing a lot of the writing myself, which was not ideal because it took away an opportunity for my students to improve and become more independent. Thus, for junior faculty working with junior students, I'd suggest starting the writing process at least a month in advance to leave plenty of time for feedback-revision loops. That way your students can become more independent and you don't have to do all the writing yourself.
1.3 Lab Culture
Once I joined UNC, several other junior faculty told me that one of the most important goals during the first year was to establish good lab culture. Since I was never a part of a large lab, I wasn't sure what this meant exactly. However, here, I will try to highlight the most important principles that I tried to instill in my lab.
Clear Expectations: In our first lab meeting, I made it clear that I expect at least one paper submission (not an acceptance) per year to a top-tier CV or ML conference. In my opinion, this is quite reasonable, i.e., with all the open source tools that are available nowadays, it's possible to complete a project in 2-3 months (if you are lucky). This also takes into account the randomness of the review process (i.e., not requiring an accepted paper). Overall, being upfront and clear with this "policy" worked well as every student in my group knew that their goal was to submit to ECCV.
Claiming Ownership of Your Work: I also emphasized the importance of being proactive and claiming ownership of their projects. More specifically, it's important for a student to realize that an advisor can provide feedback and help a student but that they will not complete a project for them. The sooner a student realizes this, the faster they become more independent.
Disagreeing with Me: Once I became a faculty, I realized that fewer people disagreed with me on research-related topics, primarily because most of my interactions were now with students. This was unfortunate because the lack of discussion stagnated the research progress. Thus, during my first group meeting, I asked my students to challenge me on any idea, experiment, etc. that they thought I was wrong about. I believe that such disagreements/discussions were beneficial, and ultimately led to higher quality research in our group.
Sharing Research Progress: When I joined UNC, I observed that some students in CV, ML, and NLP didn't want to share their work before it was published. While understandable, in my view, the chance of "getting scooped" this way was pretty low. Thus, I asked my students to present their ongoing results to anybody who might be interested (e.g., in class, in the department, in lab meetings, in conferences, etc.). In my view, this is a useful practice not only for the student as they get to improve their presentation skills and get feedback about their work but also for the other lab members who might benefit from knowing about other research projects. In particular, during our group meetings, I regularly asked students to present their latest work, while other members of the group had to give feedback on how to improve it. These types of meetings were extremely effective and led to many valuable insights that would not have been uncovered otherwise.
Working Smart: In the era of deep learning, it's easy to set up a 10-hour training job, and feel like you are being productive. It's also easy to waste a lot of time waiting for a 10-hour experiment and later realize that the experiment wasn't that useful (or worse, there was a bug in the code). To prevent such inefficiencies, one of the paradigms I tried to instill in my students is that they should always have a clear scientific hypothesis before running an experiment, i.e., what question will be answered with this particular experiment? I also asked students to document their outcomes to avoid having to re-run the same experiments multiple times, which happened to me a lot when I was a PhD student.
Keeping Up with Research Trends: Knowing what's happening in the field is essential for making progress on your own projects. Progress doesn't happen in isolation. Based on my experience, most creative ideas occur when reading other papers or listening to the presentations of other researchers. To keep up with the latest research trends, I created a separate Slack channel for paper sharing. I also encouraged my students to get on Twitter, even if it's just to follow AK. In the future, I plan to set up (i) regular reading group meetings and (ii) department-wide seminars where the researchers from other universities or industry labs would present their work. I benefited a lot from these kinds of events when I was a graduate student, and I think my students would find it useful as well.
In addition to all of the points above, here are a few other areas that I would like to improve in the upcoming years:
Being Social: Since a Ph.D. can be a lonely experience, I would like to hold more frequent social events for my students in the future, especially once the situation with the pandemic gets better.
In-Lab Collaborations: During my first year, my main priority was identifying which students I could work with long-term. Thus, every student had their own project. However, now that I selected a set of students, I would also like to set up more direct collaborations between different subsets of them, i.e., every student would have their project and another secondary project that they would help with (via coding or via verbal feedback during weekly meetings). In my view, this would be useful for (i) making faster progress, (ii) boosting students' morale (i.e., having an additional support person on each project), (iii) enabling students to learn from each other more effectively, (iv) increasing the total number of authored / co-authored publications for each student.
1.4 Hardware Infrastructure
Recent AI trends have highlighted the importance of scaling, i.e., the ML models are getting bigger, datasets are getting larger, etc. It's a no-brainer that one needs to have a good computing infrastructure to stay competitive in this field. My biggest doubt about going into academia was whether I could still do good research with the limited academic resources.
As soon as I joined UNC, I immediately purchased 2 machines with 16 A6000 48GB GPUs for ~$100K, which was a big fraction of my total startup package. However, even with these 16 advanced GPUs, it was pretty difficult to do trendy, large-scale research on video (which is computationally costly) with five students sharing these GPUs. Thus, I had to adjust my research goals according to our computational budget. I also started planning how to expand our existing infrastructure so that we could work on more impactful large-scale problems and grow our lab in the future. This was not trivial because federal agencies like NSF don't want to fund hardware purchases. Additionally, the gifts from the industry are typically too small (e.g., $50K-100K) to make a difference. Fortunately, while negotiating my startup package, I managed to secure a promise that the University will help me to set up a distributed GPU cluster, which would cost ~$200K. Once I joined UNC, I restarted these talks, and thanks to the Chair of our department, it was a relatively painless process. As a result, I recently purchased an additional 40 GPU cluster, which will help us tackle larger-scale problems and expand our group.
Overall, my advice to the junior faculty in the fields such as CV, ML, and NLP would be not to cut corners trying to save startup money, and instead view hardware purchases as an investment. Your students, regardless of how brilliant they are, will not be able to do good work without good equipment. Additionally, in my view, it's a good idea to work on diverse research problems that require more than simply scaling the models, data, etc because Google, Meta, OpenAI, etc. will always be able to throw more resources at such problems. Lastly, and most importantly, it's important to ask for what you need during your startup negotiations. You don't want to start your professorship without the tools/infrastructure allowing you to do the research that you would want to do.
1.5 Collaborations with Other Faculty
Almost immediately after joining UNC, I received many emails seeking interdisciplinary collaborations (inside and outside the CS department). I'm generally interested in cool applications of computer vision so this was exciting to me. However, after my first year, I have ambivalent feelings about such collaborations.
Some of these collaborations were great, i.e., I joined a team where we defined an idea for a big 4-5 person project, wrote a grant on it, and will continue working on it once the grant is awarded. I gained a ton of valuable experience from this experience (more on that later). Other collaborations I enjoyed simply because they were on topics that I'm passionate about (e.g., sports, basketball, etc.). Having said this, there were also many collaborations that required a big time commitment but served no value to me, i.e., no funding opportunities, no impactful publications, no research problems that were interesting to me, etc. However, I was not great at saying "no" and got involved in some such collaborations. Thus, instead of saying yes to every collaboration, I now assess its prospects very carefully to make sure that there's some value in it for me. Time is an important commodity, and in academia, it's easy to get sucked into commitments that drain your time but have little value.
2. Writing Grant Proposals
Before joining UNC, I haven't written a single grant proposal. Therefore, I had to learn this entire process from scratch. Below, I will summarize some of my main take-aways from this process.
Industry Grants: When I started as a faculty, I had no idea what federal programs I should apply to or how to do it. Thus, based on several suggestions from my mentors, I started applying for industry funding, which seemed a lot more straightforward. These were mostly low-effort (~3-5pages) low-reward ($50-100K) programs, but they were a good start to get the hang of the proposal writing and formulate my bigger research ideas/goals.
I started with the programs that I was familiar with at Facebook, Google, and Amazon. Then, by scouring through other people's resumes, I discovered a few additional programs such as Samsung, Sony, and JP Morgan. I was told that as a first-year faculty I would probably not get any of these, so my expectations were super low, which is a helpful strategy when applying for grants. I got one of these six awards, which was more than I expected, so I was pretty happy about it. I plan to repeat this process this year as well.
NSF Grants: Applying for federal funding from places such as NSF can be a daunting experience if you've never done it before. Just reading the instructions makes it seem like a bureaucratic nightmare. Thus, when I started, I realized that my best strategy would be to get on a team with more experienced faculty and write a grant with them to learn how it's done. I discovered that it's quite easy to email folks to chat about potential grant writing collaborations and see if they are interested. Thus, soon after joining UNC, I got involved in a grant collaboration between the CS department and UNC's School of Medicine for the NSF's Smart Connected Health program. That's also how I got involved in my other collaboration between UNC and Columbia University for the NSF's National Robotics Initiative program. Both of these collaborative experiences taught me a ton about NSF grant writing. Thus, I now feel ready to write individual NSF grants myself.
Military/Defense Grants: While I don't have much experience with military/defense grants (e.g., DARPA, IARPA, etc.), I was told that it's a terrible idea for the junior faculty to write a proposal to these programs as a lead. Unlike NSF, these types of grants offer a lot more money, but they are also more heavily micro-managed and require very concrete deliverables (e.g., working solutions for some specific scenarios). What this means for you is that instead of spending time mentoring your students, and advancing your research agenda, you will be spending time making sure that all the deliverables are produced by the required deadline. This is probably not how you want to spend your first several years as a faculty. I was involved in one of such projects as a Ph.D. student, and it was a terrible experience. Having said this, I was also told that it's ok to join these types of grants as a Co-PI as long as it's clear that your deliverables are on the research side (e.g., published papers, etc.).
Grant Proposal Samples: Before starting to write grants, you should get as many grant writing samples as you can from colleagues in the same field as yours. I did this by emailing other faculty in the department and also colleagues from other universities. I found these samples to be the most valuable resource for learning how to write grants, structure my ideas, what sections to include, etc. While I discovered that some folks were reluctant to share their proposals, the majority were eager to help (especially the faculty in my department). Therefore, don't be shy and email people asking for some of their previous proposal samples.
Serving on an NSF Review Panel: Many of my senior colleagues mentioned that serving on an NSF panel is a useful experience for understanding the whole proposal review process. Unfortunately, I still haven't had a chance to do it so I cannot comment on the specifics. Regardless, it's a good idea to email your Program Director at NSF (i.e., a person who oversees the program where your grant would go) to introduce yourself and indicate your interest in serving as a panelist. You might need to wait sometime before you are selected so you might want to do it early in the year.
Broader Impact: Aside from the technical content of your proposal, NSF puts a lot of emphasis on broader impact. This generally includes activities related to curriculum development, undergraduate student mentoring, outreach to the underrepresented students, research dissemination, etc. Therefore, in addition to doing good work on the research side, you should also get involved in activities that would improve your broader impact profile.
Unlike in many other schools, Assistant Professors at UNC (at least in the CS department) can teach anything they want for the first several years. This is a great arrangement as it provides junior faculty more time to set up their research lab and get going with research. Therefore, during my first year, I chose to teach two advanced computer vision seminar courses: (i) one on video understanding, and (ii) another one on transformers for visual recognition. Below, I describe some of the core principles that I adopted for my teaching:
Teaching to Advance My Research: During my first year, my main goal was to advance my research. To do that with teaching, I chose to teach courses that were relevant to my research. Not only did this make teaching a lot easier, but I also found this to be highly enjoyable. In each class, we covered papers I would read for research anyway. Furthermore, my students and I would often engage in deep discussions on advanced CV topics, which was intellectually rewarding. Lastly, because this was a seminar-style course, the class didn't have any assignments, and most of the presentations were done by students. This significantly reduced the amount of work I had to do and allowed me to spend most of my time researching and mentoring my students.
Teaching to Recruit Students: When I joined UNC, I didn't have any students who were officially "mine" (i.e., I wasn't part of the graduate admissions committee the year before so I haven't accepted any students into my group). Thus, I wanted to use my class to recruit talented students. Before making a formal commitment to fund students, I told most students who had previously expressed an interest in working with me to take my class first. Both of my taught courses had a heavy research component, which could be done on any topic related to the student's interests. For the students who wanted to work with me, we defined a research project they could work on throughout the semester. This gave me a chance to see how those students worked, how they handled various technical challenges, their work ethic, technical communication skills, etc. All of this provided useful information for making a decision, on which students I could effectively work with long-term.
Teaching to Train My Students: Teaching advanced CV seminar courses also allowed me to train my students for research. In particular, many of the students whom I later ended up working with, initially had backgrounds unrelated to my area of research. However, the 30-40 papers I selected for course presentations were supposed to provide a crash course on the topics I researched. By reading, analyzing, and having detailed discussions on those papers, the students improved on those topics weekly. By the end of the semester, I was able to have insightful discussions on those topics with every one of the students who ended up in my group. Seeing those transformations was truly an amazing experience, and probably my favorite part of teaching.
Summary: Teaching hybrid courses in my first year was challenging as I've never done it before. However, overall, I loved my teaching experience at UNC so far. I was also delighted to learn that students enjoyed my courses and voted for me to receive a teaching award given annually to two CS faculty in the department. I'm very excited to teach a new course on self-supervised learning this Fall!
Service is probably the least important criteria for tenure promotion (among the Research, Teaching & Service axes). It's also often the most annoying and least rewarding part of the faculty job. My general philosophy is to try to engage only in service that I find either rewarding or beneficial and avoid any other kind of service. Below, I will summarize some of my service-related experiences from last year.
4.1 Department Service
Graduate Admissions Committee: This is probably the most important service you will do in your first several years. As I already mentioned, the success of your career largely depends on the quality of students in your group. Thus, you will want to be on this committee to decide which students you would like to accept into your group. While reviewing thousands of graduate student application is time-consuming and tedious, the ability to pick your own students is well worth it. At UNC, the junior faculty are automatically placed on this committee, which is great. If that's not the case at your university, you should make a case for it.
Faculty Search Committee: During my first year, the CS department at UNC was trying to hire another computer vision faculty. This decision was likely going to impact my career significantly (e.g., teaching, collaborating on research papers, writing grant proposals, co-advising students, recruiting students, etc) so I wanted to be involved in this process every step of the way. This was another service that took a lot of time (e.g., reviewing all submitted applications, hosting the candidates, attending the interview talks, having 2-hour discussions on each candidate, etc.). While I can't comment on the impact of this decision yet, I suspect it was well worth my effort to be closely involved in this process and contribute to the discussions on whom we should hire.
Diversity, Equity, and Inclusion Committee: I've been quite interested in improving access to computer vision for middle-school / high-school students (in particular by using sports). While I haven't done anything concrete in this space, I wanted to explore how I would implement some of my ideas. The DEI Committee at UNC seemed like a great place for that. Being part of the DEI committee allowed me to learn more about various outreach-related initiatives and also how faculty might help with those initiatives.
Seminars/Colloqiums: Due to lack of time, I didn't organize any seminars/colloquiums during my first year. However, I believe that this would be another type of service that would be fun and beneficial (both to my students and me). As a Ph.D. student at UPenn, we had such seminars every Friday, and they were extremely valuable in shaping my research interests. Thus, I believe that my students would also benefit from such experiences. Furthermore, inviting speakers for these types of seminars would provide a good opportunity to build new connections, which is always useful in academia.
4.2 Community Service
Reviewing: Reviewing is probably the least rewarding service of them all. What's worse is that the requests to review never stop. Generally, I decline all the requests from venues to which I don't regularly submit papers. This leaves CVPR, ICCV, ECCV, ICML, ICLR, and NeurIPS. Even for these conferences, I ask that my reviewing load would be limited to 3 or 4 papers. Personally, I see very little gain from reviewing, so I try to minimize the amount of time that I spend on it (while still doing my best to provide high-quality reviews).
Organizing Workshops/Tutorials: I was told that the tenure evaluation committee (or whoever evaluates it) wants to see that the facuty going up for tenure organized some workshops or tutorials at major conferences. Workshops are also useful to mention in the NSF grants as means for disseminating research. Thus, during my first year, I decided to organize a workshop on a topic that I found interesting and relevant to my research (e.g., Transformers for visual recognition). I gathered a team consisting of my former Facebook colleagues and some of my new colleagues at UNC and wrote a proposal, which got accepted to CVPR'22. To be honest, this was not that much effort, especially with a reliable organizing team where it was possible to divide some of the responsibilities among at least 4-5 people. Our organizing team consisted of ~20 people, but only five of us (all relatively junior) were actively performing tasks. The remaining organizers were many there to provide "weight" for the proposal to get accepted.
Overall, organizing a workshop was a great experience that I would repeat. There was a lot of interest in the workshop (~200-300 in person + ~200 Zoom attendees). I also learned a lot from the invited talks. Lastly, as an organizer, I got to meet many new interesting people in the field, which was great, especially after ~2.5 years of virtual conferences.
Being a first-year Assistant Professor involves lots of trying, failing, learning, and then doing it better. My biggest takeaway is that while it's useful to know about the experiences of others, ultimately, everyone has to find the path that works best for them. Therefore, for those of you who are reading, I hope that my first-year experiences will provide a useful perspective for crafting your own strategy for being a professor. If you have any other insights or tips on being a junior faculty, please reach out. I'd love to hear other perspectives on this topic.