Finding Jobs

Learn about job opportunities, where to find open searches, and how to read postings.

What Jobs Exist?

Despite the canonical “industry versus academia” phrasing, there are actually many options available. Below, we introduce several broad job categories. These categories are meant to help make you aware of options and are not meant to be definitive. Note that this guide is written from a US perspective, so these categories may not be as helpful for non-US applicants.

The term R1 refers to a doctoral-granting institution with very high research activity. A liberal arts college emphasizes undergraduate humanities and scientific education. In general, liberal arts colleges are private and smaller than larger public state universities. (A university has a graduate program and a college does not.) The term tenure refers to a secure job that cannot easily be terminated, increasing freedom to pursue your interests. Both large universities and smaller colleges can offer tenured positions (or not) and both research-focused and teaching-focused positions can be tenured (or not).

  • US Research Academia: This includes “top-ten” schools like MIT, CMU, Berkeley, Stanford, and Cornell; other R1 schools like UC Irvine, Purdue, Rutgers, and Virginia; and schools outside R1, where research is still a component of a tenure track position, but usually modulated by a higher teaching expectation. Professors often consider this (especially for R1 positions) the default type of application—even if it may not be where most applicants end up. You may benefit from talking to your advisors and mentors about other options.

  • Industrial Research Labs: This category includes larger research organizations like Microsoft Research, IBM Research (T.J. Watson), Google Research, Meta Research, Intel Labs; research organizations that are adjacent to academia, like MIT Lincoln Labs, GrammaTech, Kestrel Institute, and Johns Hopkins University Applied Physics Laboratories; and other Federally Funded Research and Development Centers (FFRDCs) like Raytheon BBN and MITRE.

  • Industrial “Startups”: This includes Ph.D.-seeking high-tech companies or recently-formed startups. Examples include Green Hills, Sourcegraph, Fortify, Nuro and EMC. We don’t have personal experience in this area, but others suggest that this work typically involves taking a research idea much further than in academia, from concept to product, with all the steps along the way (e.g., documentation, testing, shipping, marketing). Advice we’ve received suggests that this can be very rewarding, and “right out of school” is not a bad time to try it.

  • Non-US Academia: Some institutions are structured similar to US universities. Examples include McGill, Toronto, Waterloo, and UBC in Canada; EPFL in Switzerland; University College London in the UK; KTH Royal Institute of Technology in Sweden; and lesser-known places like John Cabot University in Italy. These schools operate similarly to US universities with respect to tenure and typically conduct classes in English.

    Other international institutions may follow different structures. Examples include ENS in France, Oxford in the UK and Tsinghua in China. These schools may not conduct classes in English, usually have different promotion and tenure schemes, and often have different requirements (e.g., post-docs, second degrees). For example, in the UK, a post-doc is effectively mandatory. Hiring is often localized, so if you’re not already familiar a given institution or location, you may not want to count on them as a job option.

    In both cases, US applicants are sometimes not taken as seriously, as they often decline job offers when given. Apply to these positions only if you are serious about them, to avoid making the process harder for others.

    Expand for more on applying to Non-US Academia

    When applying to these institutions, it's important to convey why they should take your application seriously. We recommend including a few sentences in your cover letter and research statement explicitly stating why you really want to go there (e.g., you speak the local language, have family there, or are not tied to the US). Also emphasize these points during phone calls and interviews. For example, Claire's Francophone background and fluency in French were relevant in Canada, even outside Quebec.

    If granted an interview, familiarize yourself with the country's basic political and geographical details (e.g., the name of the current prime minister, or all of the provinces of the country in question). If you are offered a position, ask about immigration assistance and support for you and your spouse (if applicable). The school will have experience with these issues and can be quite helpful. It is also legitimate to ask about differences between academic systems. For example, salaries in Canada are 12-month, not 9; tenure is decided at 5 years, not 6; and the funding system is almost entirely different as compared to the States.

    One more word on applying to Canada: Computer Science (CS) and Electrical and Computer Engineering (ECE) departments are often interchangeable for Software Engineering applicants. Apply to both, but be aware that relationships between the two departments vary by school. All schools will tell you that they get along capitally, especially as compared to all other schools, which are plagued by infighting and competition.

  • International Industrial Research Labs: This category includes institutions like the CISPA Helmholtz Center for Information Security (in Germany), Max Planck Institutes (in Germany), and the National Institute for Research in Digital Science and Technology (Inria in France). These institutions are perhaps more likely to be state-affiliated than US labs, but just as with US labs, their finances, and thus the freedom and quality of life they afford, wax and wane over time. In addition, we note that a number of larger research organizations, like Google and Microsoft, have labs in other countries (e.g., the UK, Canada, China, India, etc.). All of the caveats about Non-US US-Like Research Academia apply.

    Martin Monperrus, Professor of Software Technology at KTH Royal Institute of Technology in Sweden (and previously at the University of Lille in France, Inria in France, and Darmstadt University of Technology in Germany), notes that an important distinction in Europe is between research-only institutions (like CNRS, Inria, Fraunhofer) and research-plus-education institutions (universities, like ENS or KTH). In his opinion, “the biggest advantage of the latter is that you get much better recruitment channels because you’re closer to students”.

  • Top-Tier Teaching Academia: This includes places like Carleton, Williams, Wesleyan, Oberlin, Bowdoin and Brown. Faculty here still conduct research but undergraduate education is emphasized, and the graduate program is smaller or non-existent. Teaching three or more courses per year is common.

  • Teaching Academia: This includes smaller liberal arts colleges that may be less well-known outside their local areas, such as Shippensburg, Coe College, Lock Haven, Haverford, Juniata, and Ithaca College. Here the emphasis will be on undergraduate education, undergraduate advising and scholarship (to the possible exclusion of the constantly-publishing-papers type of research). Teaching six courses a year is common, and salaries are generally around half of what you would receive from the Research Academia category.

  • “Instructor” Positions: Most top-tier schools, including Michigan and Virginia, have full-time teaching-focused positions. Job titles vary, including “Teaching Professor”, “Professor of Practice”, “Instructor” or “Lecturer”. These positions may or may not be tenure-track (and often are not). However, they often have a “social tenure” or “formal expectation of continued employment” at around the six-year mark that mimics tenure. They tend to focus on teaching undergraduate “service” courses. In such a position you typically have no research requirements but a high teaching requirement.

  • Standard Industry: If you want to get a job as a standard SWE, your Ph.D. certainly qualifies you. You don’t need this document in that case. While grad students often aim for more research-oriented roles, these positions are a solid option, particularly if you face a two-body problem.

  • Post-Docs: Post-doc positions are still somewhat rare in Computer Science. However, they have become more common in the US, typically following crises, such as the 2008 the financial crisis and also COVID-19, which prompt hiring freezes (and the NSF to sponsor Computing Fellows). It can then be relatively more difficult for fresh PhDs to compete against such emerging postdocs. This is particularly true in some disciplines. For example, anecdotally, post-docs are much more common in CS Theory. That said, it is still possible (as of 2024) to acquire a tenure-track faculty position in Software Engineering or Systems without completing a post-doc first.

    Taking a post-doc can give you time to build your publication record. In addition, post-docs can be helpful for non US grad students who eventually want a full-time position in the US On the other hand, if you have taken a post-doc people will expect more publications. The general advice is to accept a tenure-track job if you can get one without a post-doc.

    Note that it has also become quite common for graduating PhDs to secure a tenure track position and then (request to) defer their start date by a year to complete a post-doc. This can allow a new faculty member time to expand their research program in tenurable ways without all the demands of a new tenure track position. We do not address securing these positions in this Guide.

In this Guide, we focus on the jobs where we have the most direct experience: US Research Academia, Industrial Research Labs, Teaching Academia, and “Instructor” positions.

Ultimately you must decide what sort of positions you will apply for based on your own interests and goals. A research position is not inherently “better” or “worse” than a teaching position—they are made up of different things. Find out what makes you happy.

When Should I Apply to Jobs?

If you plan to be interviewing for jobs in the spring of Year X, you will submit applications in the fall of Year X-1 (or by mid-January of Year X). Deciding where to apply early is crucial because different types of institutions have different deadlines.

  • US Research Academia: The earliest deadlines are around November 15th, with most applications due in December or early January. Job postings often state when they will “start considering” applications, but many positions accept and review late submissions. It is rare, but not unheard of, for a school to have a hard application deadline. For example, Madeline was unable to apply to UC Berkeley due to a missed deadline on December 1st. However, she also received a job offer from a school where she applied two weeks after the deadline. We recommend that you read through job postings carefully and keep track of deadlines using a spreadsheet.

  • Industrial Research Labs: Industry typically conducts rolling interviews, but the main hiring season often aligns with academia (typically with a bit more flexibility).

  • Industrial “Startups”: These also generally follow industry’s more flexible hiring timeline.

  • Non-US Institutions: For institutions that follow US structures, your applications will typically be due in November, December, or January. For others, timelines can vary widely, and may not align with the US academic calendar.

    Martin Monperrus notes: “In Europe, applications are not synchronized, even within a country. Some centralized countriess, such as France, may be synchronized. In France, most applications (but not all) are due in February/March, for interviews in May/June.” He further elaborates that “it’s a good practice to do an informal visit to the place before the official deadline. Europe is a small continent. I did a German tour — five places in five days — for finding a postdoc.”

  • Teaching Academia: (both Top-Tier and otherwise) These schools often begin interviews up to two months earlier than Research Academia, sometimes as early as October. As a result, your application and letters of recommendation will need to be submitted weeks in advance, with some deadlines as early as late September. If you plan to apply to these schools, make sure your references are prepared well ahead of time.

  • “Instructor” Positions: Depending on the school, these can follow the Research or Teaching Academia schedule.

  • Standard Industry: Rolling deadlines are common, with positions posted throughout the year.

  • Post-Docs: These positions typically follow the Research Academia calendar, but deadlines may be less strict, as many candidates first search for faculty positions before turning to post-doc opportunities.

Finally, it is common for institutions to “run late” with job postings. For example, in 2023, the Bowdoin College Computer Science department posted a job opportunity for an assitant professor position on December 10th (months later than many other postings for that cycle, and after one of the authors of this guide had already participated in eight interviews for similar teaching-focused positions). Applicants often revisit departmental webpages to see if openings have been posted. Such a delay may be caused by various reasons (e.g., getting regulatory approval for the posting text, finalizing permission from a dean or provost, etc.); as long as an official posting is made, you can feel comfortable applying.

Where Can I Find Specific Jobs?

Now that you know the types of jobs you’re looking for, the next step is to find actual positions to apply for. Here are some approaches:

  • Word of Mouth: If you mention that you’ll be on the job market, people at conferences will tell you if their department is hiring. They may even offer to help ensure your application gets noticed. This approach is more common than you might think; since you’re at the same conference they probably like you and the sort of work you do, You can expect a few leads from a major conference. While not required, these connections can be extremely helpful.
    Expand for our personal experience with word of mouth and job offers

    Claire gave two conference talks in the six months before applying for jobs and found this approach extremely useful. She did not end those talks with "I am on the job market," but should have in hindsight.

    Madeline attended a conference right before she went on the job market, and she did end her talk with "I am on the job market". Two of her job offers came from institutions where she talked to faculty members afterward.

  • ACM, CRA, and IEEE: The ACM, CRA, and IEEE Higher Ed maintain databases of CS jobs that you can search through. They also offer mailing lists that send out daily or weekly postings of the latest job ads. However, the information in these postings can sometimes be unclear or inconsistent with what’s on department websites. We recommend using these databases to identify schools that are hiring, and then visiting the department websites to double-check the details.

  • Rankings + Google: If you’re applying for academic positions, using department rankings can be a useful strategy. The three most popular are from US News & World Report, the CRA Taulbee Survey, and CSRankings. Choose the list that best aligns with the types of jobs you’re targeting. Then, visit the websites of departments in the top n (where n reflects your career goals and qualifications) to check for job postings. Keep in mind that many schools won’t have their ads up until mid-Fall Semester.
    Expand for our recommendations for using this approach:

    Claire took the top 100 schools on one such list and put them in a spreadsheet, with a separate section for Canadian schools. She updated the spreadsheet whenever a school posted a job Before applying, she reviewed the schools that were hiring and filtered according to various preferences. She aimed to apply to approximately an equal number of schools ranked above and below her graduate institution (UVA).

    Madeline took the union of the top 30 schools from CSRankings and US News & World Report, adding institutions with historical strength in her research area (software engineering). She then filtered schools based on those that were hiring and her geographical preferences.

    If you choose a similar approach, we recommend adjusting your starting list and filtering criteria to suit your own goals. Not everyone wants to work at a top-ranked school, so don't feel like "top 100" is the only way to go. For example, Claire focused on larger departments, while Madeline preferred universities in coastal states within two hours of a major city. You are likely to have different preferences.

  • Ask Around: Your advisor may forward job openings to you, and your recently graduated friends might know of departments that are hiring. Don’t hesitate to reach out and ask.

How Many Jobs Should I Apply To?

General Advice

When considering how many jobs to apply to, you’ll want to strike a balance between being strategic and over-applying. Applying to too many positions can be overwhelming and may impact the quality of your applications. Instead, focus on tailoring your applications to positions that best match your skills and career goals. The authors of this document applied to between 15 and 50 positions, with most applying to around 25. Specific considerations, such as field, job type, and personal circumstances, may influence the number of applications you submit.

Expand for more on the number of places applied to by authors of this Guide:

Searches for Research Academia Positions:

  • In 2005, Wes applied to 21 places and got 8 interviews and 5 job offers.
  • In 2013, Claire applied to 28 schools and 1 research lab, got 10 invitations to interview, went on 9 interviews, and received 8 offers. Claire was told by different people at different points in the year that the number of positions to which she applied was (A) far too many, (B) far too few, and (C) exactly right. Make of that what you will.
  • In 2020, Kevin and Yu were looking for a joint hire. They applied to 50 schools, received over 15 interviews each, and got 5 joint academic offers (three of which were joint tenure-track positions).
  • In 2024, Madeline applied to 24 schools, got 6 interviews, and received 4 offers.

Searches for teaching Academia Positions:

  • Hammad applied to 26 positions, got 19 interviews, and received 9 offers.

Searches for Industrial Research:

  • In 2014, Zak applied to 15 jobs, had interviews at five, and received two offers.

Advice for Academic Positions

From our experience applying for programming languages or software engineering positions, receiving interviews from 25-33% of your places is average and indicates a well-tailored application list. The strongest candidates may get around 50%. For example, the strongest candidate in Wes’s field-year (in his opinion) applied to 30 places, received 17 interview offers, went on 15 interviews, and received 7 job offers.

It’s important to contextualize these numbers based on the market conditions of the year. In some years, a particular research topic might be “hot”, with many open positions. In others, the number of available positions might be fewer than then number of strong candidates. For instance, Spring 2005 was highly competitive with many strong applicants in PL/SE, while 2013 was more of a candidate’s market: the hiring freeze post-financial crisis was thawing, and the wave of candidates who had started postdocs in 2008 and applied for faculty positions 2 or 3 years later had thinned.

Also, while in an ideal world, the schools that you apply to should not depend on the school you got your Ph.D., in practice, the rank of your doctoral or post-doctoral institution can have a big impact on where you ultimately get interviewed or hired. Typically, people get hired by schools that are ranked similarly or lower than their doctoral institution. This is not always the case. For example, Claire was at a school ranked around 20th (UVA), but got hired by a school ranked 1st (CMU). However, this is the exception rather than the rule. As found by one study, “only 9 to 14% of faculty are placed at institutions more prestigious than their doctorate”. We thus recommend including some schools ranked lower than your doctoral institution on your list.

  • Claire Le Goues, 2012-2013 cycle for Research Academia and Industrial Research Positions
    Claire Le Goues

    Based on something like 15 years of observing the market, I feel comfortable claiming that SE/PL is effectively never "hot". But, as they fall squarely into the bread-and-butter category of Computer Science (everyone has to teach programming!), there appears to be a pretty consistent level of demand in these areas (subject to prevailing market conditions, of course).

Advice for Industrial Positions

When applying for industrial research positions, we recommend a slightly different approach:

  1. Cast a Wide Net: Start by asking everyone you know in your professional network about companies that have hired in the past. Word-of-mouth is often more effective in finding industry positions compared to the more structured academic job market.

  2. Be Open-Minded: Consider applying to companies that might not initially seem like a perfect fit. Jobs in industry can be more fluid, and you may find a good match once you start talking to people at different companies. It’s beneficial to explore a wide range of companies before narrowing your options.

  3. Understand the Timeline: The hiring timeline in industry is typically more flexible than academia’s semester-based schedule. Some companies may contact you well into the summer, even after you’ve started a new job. We recommend starting the search very early and contacting people at each potential employer to get an idea for how often and when they tend to hire.

Special Considerations

The general guidelines above should be adjusted based on your specific situation. For example:

  • Non-Standard Fields: If you’re in a specialized area like HCI or computational biology, the application numbers could differ significantly. In addition, If your work spans more than one subfield, carefully consider the way you position yourself and your work. Departments have areas in mind when they interview and assign applications to faculty in specific areas for batch-processing. For example, Claire’s publication record was fairly evenly split between evolutionary computation and software engineering venues. However, she considers herself primarily an SE researcher, and wanted to be considered as such as an applicant. She thus pitched herself as an “SE person” who borrows insights from other fields (evolutionary computation/GP) as opposed to a person who floats in the void between research areas. We talk more generally about the impact of your research area on where you apply here.

  • Two-Body Problem: If you and your partner are both seeking academic positions at the same or nearby institutions, you will likely need to apply to at least 40 places, with some couples applying to as many as 60.

  • Kevin Leach, 2020-2021 cycle for Research Academia and Instructor Positions
    Kevin Leach

    As my wife and I were both trying to find academic positions together in the same department, we applied broadly to over 50 institutions. We made a large spreadsheet of all the academic job postings we could find (including word-of-mouth, CRA, twitter posts, etc.) and categorized them based on area and whether we could fit together (e.g., neither of us do theory, so we dropped schools considering only theory researchers). We found a few schools doing cluster hires which were very helpful in our dual career search.

    We each had more than 15 full interviews, most of which were at overlapping institutions. I applied as a "cross-disciplinary" researcher with papers in security, dependability, software engineering, and NLP. I was almost universally treated as a cybersecurity researcher by every department that interviewed me. In retrospect, I believe departments make decisions to interview based (in part) on specific needs in fields (e.g., security, software engineering, AI). I don't think it was harmful to portray myself as someone that worked across disciplines, but some of those interviewing me seemed to want to focus on a specific area in any case.

    I applied both to teaching-track and tenure-track positions. Together, we received 5 official joint academic offers, 3 of which were joint tenure-track positions. We also received another 3 verbal offers for joint tenure-track positions.

Academic Positions: Research Area and Where to Apply

Academic job postings may or may not be research-area specific. Most academic job ads use similar boilerplate language:

“We encourage all qualified applicants from all areas of computer science to apply, we are an equal-opportunity employer…”.

However, the specific focus of a department’s search can greatly influence your chances. Below, we break down the two primary types of job ads and how to interpret them.

  1. Specific Focus Areas: Some job postings explicitly state the areas of interest, such as compilers or data mining. If your research aligns with these areas, you have a stronger chance of being considered. If not, it may be difficult to secure an interview. Here are a couple of examples:

    • From Purdue’s 2005 search:

      “The Department of Computer Sciences at Purdue University invites applications for tenure-track positions beginning August 2005. Positions are available at the Assistant Professor level; senior positions will be considered for highly qualified applicants. Applications from outstanding candidates in all areas of computer science will be considered. Of particular interest are candidates in the areas of programming languages and compilers, software engineering, operating systems, data mining, and bioinformatics.

    • From Yale’s 2024 search:

      “The Yale Computer Science Department continues to invite applications for multiple tenure-track faculty positions to start in the 2024-2025 academic year. For this year’s search, we are interested in candidates working in the areas of (1) AI and Trustworthy Computing or (2) Programming Languages. With recent explosive growth of large-language-model based technologies such as ChatGPT, we are particularly interested in candidates who can take on the leadership role and help shape the research and education impact of AI for the rest of the University. Qualified applicants in computer science are invited to apply.

  2. General Calls: Other ads may list a broad range of departmental strengths, leaving you with little specific information about what areas they are truly hiring for.

    • From UVA’s 2005 search:

      The University of Virginia… offers baccalaureate, master, and doctoral degrees in Computer Science and Computer Engineering. The department is undergoing significant growth and programmatic evolution and aims to be one of the top departments in experimental systems research and the leading institution in undergraduate computer science education. Its existing strengths include algorithms, architecture, compilers, distributed systems, graphics, grid computing, mobile computing, networks, operating systems, programming environments, real-time and embedded systems, security, sensor networks, and software engineering.

    Despite the general phrasing, most schools with this type of posting have an internal area-related priority for hiring. However, unless you have a contact at the school, it can be difficult to know if they are hiring in your specific subfield.

Overall, we recommend prioritizing schools with job postings that match your research area. Regarding general calls, we recommend applying only if the school aligns well with your career goals and personal preferences.

One notable exception to this rule is “top 10” schools. Such programs (especially the very large ones) often have multiple hiring lines, and may hire candidates they find exceptional, regardless of research area. Thus, even if their calls are open, it’s probably worth applying, because you never know. For example, CMU’s School of Computer Science is large, with multiple departments. Their job ads are typically very general, and applications are routed based on the area to relevant departments. Claire actually asked Wes if it was even worth sending in an application as “it wasn’t going to happen.” He insisted she apply, which is funny in retrospect. She believes that her sincere belief that she wouldn’t receive an offer from CMU helped during the interview, because she wasn’t especially nervous or stressed about messing up.

  • Madeline Endres, 2023-2024 cycle for Research Academia Positions
    Madeline Endres

    With one exception, all of my interviews were at schools that were either explicitly hiring in Software Engineering, or had historical strength in the area.

    The exception was a top public research institution in the U.S.. While the call was general, at my interview, the department chair told me that software engineering wasn't a designated priority my year. However, he also told me that they reserve about half of their interview spots for exceptional candidates, regardless of their specific research subfield.

    In my opinion, if a school that you'd really like to go to doesn't explicitly list your area as a priority, it can still be worth applying if you believe you're a strong candidate. However, I would still prioritize calls that explicitly mention your research area.

  • Claire Le Goues, 2012-2013 cycle for Research Academia and Industrial Research Positions
    Claire Le Goues

    It is my personal opinion that as a software engineering researcher, where you apply can matter a great deal. It is "accepted wisdom" in the community that SE researchers do not receive invitations to interview for open job calls that do not mention SE (or possibly PL). By and large, I observed this to be true. All but maybe two of my interviews were at places that listed SE or PL in their job ads explicitly. One of the exceptions was Waterloo, which has a long and storied software engineering tradition (as do most Canadian institutions).

    To generalize, I would encourage you to apply to places that you have reason to believe are interested in your research area, either based on word-of-mouth or the job ad copy itself. Examples: in 2012, NC State had an established SE faculty leave for another position, while UIUC had an established SE faculty retire. Both specifically mentioned SE in their 2013 ads. I did apply to a few places with "open calls" based on location (and I would encourage you to do the same), but it mostly didn't pan out.

    One more somewhat editorial note: there's typically a subfield that's "hot" in a given hiring year, such as big data or health care informatics in 2013. Please don't pretend to do these things if you don't. It's tacky and obvious.

The job search process can be challenging, but by taking it step by step, you can find the right fit for your career goals. Now that you know what jobs exist and when and where to apply, the next step is to write and compile your application portfolio.