21 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # gem "jekyll", "~> 4.0.1"
4 |
5 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
6 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
7 | gem "github-pages", group: :jekyll_plugins
8 |
9 | # If you have any plugins, put them here!
10 | group :jekyll_plugins do
11 | gem "jekyll-avatar"
12 | gem "jekyll-last-modified-at"
13 | gem "jekyll-sitemap"
14 | end
15 |
16 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
17 | # and associated library.
18 | install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
19 | gem "tzinfo", "~> 1.2"
20 | gem "tzinfo-data"
21 | end
22 |
23 | # Performance-booster for watching directories on Windows
24 | gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
25 |
26 | group :test do
27 | gem 'rake'
28 | gem 'html-proofer', '~> 3.19.0'
29 | end
30 |
31 | gem "webrick", "~> 1.8"
32 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | activesupport (6.0.6.1)
5 | concurrent-ruby (~> 1.0, >= 1.0.2)
6 | i18n (>= 0.7, < 2)
7 | minitest (~> 5.1)
8 | tzinfo (~> 1.1)
9 | zeitwerk (~> 2.2, >= 2.2.2)
10 | addressable (2.8.7)
11 | public_suffix (>= 2.0.2, < 7.0)
12 | coffee-script (2.4.1)
13 | coffee-script-source
14 | execjs
15 | coffee-script-source (1.11.1)
16 | colorator (1.1.0)
17 | commonmarker (0.23.10)
18 | concurrent-ruby (1.2.2)
19 | dnsruby (1.70.0)
20 | simpleidn (~> 0.2.1)
21 | em-websocket (0.5.3)
22 | eventmachine (>= 0.12.9)
23 | http_parser.rb (~> 0)
24 | ethon (0.16.0)
25 | ffi (>= 1.15.0)
26 | eventmachine (1.2.7)
27 | execjs (2.8.1)
28 | faraday (2.7.8)
29 | faraday-net_http (>= 2.0, < 3.1)
30 | ruby2_keywords (>= 0.0.4)
31 | faraday-net_http (3.0.2)
32 | ffi (1.17.0)
33 | forwardable-extended (2.6.0)
34 | gemoji (3.0.1)
35 | github-pages (228)
36 | github-pages-health-check (= 1.17.9)
37 | jekyll (= 3.9.3)
38 | jekyll-avatar (= 0.7.0)
39 | jekyll-coffeescript (= 1.1.1)
40 | jekyll-commonmark-ghpages (= 0.4.0)
41 | jekyll-default-layout (= 0.1.4)
42 | jekyll-feed (= 0.15.1)
43 | jekyll-gist (= 1.5.0)
44 | jekyll-github-metadata (= 2.13.0)
45 | jekyll-include-cache (= 0.2.1)
46 | jekyll-mentions (= 1.6.0)
47 | jekyll-optional-front-matter (= 0.3.2)
48 | jekyll-paginate (= 1.1.0)
49 | jekyll-readme-index (= 0.3.0)
50 | jekyll-redirect-from (= 0.16.0)
51 | jekyll-relative-links (= 0.6.1)
52 | jekyll-remote-theme (= 0.4.3)
53 | jekyll-sass-converter (= 1.5.2)
54 | jekyll-seo-tag (= 2.8.0)
55 | jekyll-sitemap (= 1.4.0)
56 | jekyll-swiss (= 1.0.0)
57 | jekyll-theme-architect (= 0.2.0)
58 | jekyll-theme-cayman (= 0.2.0)
59 | jekyll-theme-dinky (= 0.2.0)
60 | jekyll-theme-hacker (= 0.2.0)
61 | jekyll-theme-leap-day (= 0.2.0)
62 | jekyll-theme-merlot (= 0.2.0)
63 | jekyll-theme-midnight (= 0.2.0)
64 | jekyll-theme-minimal (= 0.2.0)
65 | jekyll-theme-modernist (= 0.2.0)
66 | jekyll-theme-primer (= 0.6.0)
67 | jekyll-theme-slate (= 0.2.0)
68 | jekyll-theme-tactile (= 0.2.0)
69 | jekyll-theme-time-machine (= 0.2.0)
70 | jekyll-titles-from-headings (= 0.5.3)
71 | jemoji (= 0.12.0)
72 | kramdown (= 2.3.2)
73 | kramdown-parser-gfm (= 1.1.0)
74 | liquid (= 4.0.4)
75 | mercenary (~> 0.3)
76 | minima (= 2.5.1)
77 | nokogiri (>= 1.13.6, < 2.0)
78 | rouge (= 3.26.0)
79 | terminal-table (~> 1.4)
80 | github-pages-health-check (1.17.9)
81 | addressable (~> 2.3)
82 | dnsruby (~> 1.60)
83 | octokit (~> 4.0)
84 | public_suffix (>= 3.0, < 5.0)
85 | typhoeus (~> 1.3)
86 | html-pipeline (2.14.3)
87 | activesupport (>= 2)
88 | nokogiri (>= 1.4)
89 | html-proofer (3.19.4)
90 | addressable (~> 2.3)
91 | mercenary (~> 0.3)
92 | nokogiri (~> 1.13)
93 | parallel (~> 1.10)
94 | rainbow (~> 3.0)
95 | typhoeus (~> 1.3)
96 | yell (~> 2.0)
97 | http_parser.rb (0.8.0)
98 | i18n (1.14.1)
99 | concurrent-ruby (~> 1.0)
100 | jekyll (3.9.3)
101 | addressable (~> 2.4)
102 | colorator (~> 1.0)
103 | em-websocket (~> 0.5)
104 | i18n (>= 0.7, < 2)
105 | jekyll-sass-converter (~> 1.0)
106 | jekyll-watch (~> 2.0)
107 | kramdown (>= 1.17, < 3)
108 | liquid (~> 4.0)
109 | mercenary (~> 0.3.3)
110 | pathutil (~> 0.9)
111 | rouge (>= 1.7, < 4)
112 | safe_yaml (~> 1.0)
113 | jekyll-avatar (0.7.0)
114 | jekyll (>= 3.0, < 5.0)
115 | jekyll-coffeescript (1.1.1)
116 | coffee-script (~> 2.2)
117 | coffee-script-source (~> 1.11.1)
118 | jekyll-commonmark (1.4.0)
119 | commonmarker (~> 0.22)
120 | jekyll-commonmark-ghpages (0.4.0)
121 | commonmarker (~> 0.23.7)
122 | jekyll (~> 3.9.0)
123 | jekyll-commonmark (~> 1.4.0)
124 | rouge (>= 2.0, < 5.0)
125 | jekyll-default-layout (0.1.4)
126 | jekyll (~> 3.0)
127 | jekyll-feed (0.15.1)
128 | jekyll (>= 3.7, < 5.0)
129 | jekyll-gist (1.5.0)
130 | octokit (~> 4.2)
131 | jekyll-github-metadata (2.13.0)
132 | jekyll (>= 3.4, < 5.0)
133 | octokit (~> 4.0, != 4.4.0)
134 | jekyll-include-cache (0.2.1)
135 | jekyll (>= 3.7, < 5.0)
136 | jekyll-last-modified-at (1.3.0)
137 | jekyll (>= 3.7, < 5.0)
138 | posix-spawn (~> 0.3.9)
139 | jekyll-mentions (1.6.0)
140 | html-pipeline (~> 2.3)
141 | jekyll (>= 3.7, < 5.0)
142 | jekyll-optional-front-matter (0.3.2)
143 | jekyll (>= 3.0, < 5.0)
144 | jekyll-paginate (1.1.0)
145 | jekyll-readme-index (0.3.0)
146 | jekyll (>= 3.0, < 5.0)
147 | jekyll-redirect-from (0.16.0)
148 | jekyll (>= 3.3, < 5.0)
149 | jekyll-relative-links (0.6.1)
150 | jekyll (>= 3.3, < 5.0)
151 | jekyll-remote-theme (0.4.3)
152 | addressable (~> 2.0)
153 | jekyll (>= 3.5, < 5.0)
154 | jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
155 | rubyzip (>= 1.3.0, < 3.0)
156 | jekyll-sass-converter (1.5.2)
157 | sass (~> 3.4)
158 | jekyll-seo-tag (2.8.0)
159 | jekyll (>= 3.8, < 5.0)
160 | jekyll-sitemap (1.4.0)
161 | jekyll (>= 3.7, < 5.0)
162 | jekyll-swiss (1.0.0)
163 | jekyll-theme-architect (0.2.0)
164 | jekyll (> 3.5, < 5.0)
165 | jekyll-seo-tag (~> 2.0)
166 | jekyll-theme-cayman (0.2.0)
167 | jekyll (> 3.5, < 5.0)
168 | jekyll-seo-tag (~> 2.0)
169 | jekyll-theme-dinky (0.2.0)
170 | jekyll (> 3.5, < 5.0)
171 | jekyll-seo-tag (~> 2.0)
172 | jekyll-theme-hacker (0.2.0)
173 | jekyll (> 3.5, < 5.0)
174 | jekyll-seo-tag (~> 2.0)
175 | jekyll-theme-leap-day (0.2.0)
176 | jekyll (> 3.5, < 5.0)
177 | jekyll-seo-tag (~> 2.0)
178 | jekyll-theme-merlot (0.2.0)
179 | jekyll (> 3.5, < 5.0)
180 | jekyll-seo-tag (~> 2.0)
181 | jekyll-theme-midnight (0.2.0)
182 | jekyll (> 3.5, < 5.0)
183 | jekyll-seo-tag (~> 2.0)
184 | jekyll-theme-minimal (0.2.0)
185 | jekyll (> 3.5, < 5.0)
186 | jekyll-seo-tag (~> 2.0)
187 | jekyll-theme-modernist (0.2.0)
188 | jekyll (> 3.5, < 5.0)
189 | jekyll-seo-tag (~> 2.0)
190 | jekyll-theme-primer (0.6.0)
191 | jekyll (> 3.5, < 5.0)
192 | jekyll-github-metadata (~> 2.9)
193 | jekyll-seo-tag (~> 2.0)
194 | jekyll-theme-slate (0.2.0)
195 | jekyll (> 3.5, < 5.0)
196 | jekyll-seo-tag (~> 2.0)
197 | jekyll-theme-tactile (0.2.0)
198 | jekyll (> 3.5, < 5.0)
199 | jekyll-seo-tag (~> 2.0)
200 | jekyll-theme-time-machine (0.2.0)
201 | jekyll (> 3.5, < 5.0)
202 | jekyll-seo-tag (~> 2.0)
203 | jekyll-titles-from-headings (0.5.3)
204 | jekyll (>= 3.3, < 5.0)
205 | jekyll-watch (2.2.1)
206 | listen (~> 3.0)
207 | jemoji (0.12.0)
208 | gemoji (~> 3.0)
209 | html-pipeline (~> 2.2)
210 | jekyll (>= 3.0, < 5.0)
211 | kramdown (2.3.2)
212 | rexml
213 | kramdown-parser-gfm (1.1.0)
214 | kramdown (~> 2.0)
215 | liquid (4.0.4)
216 | listen (3.8.0)
217 | rb-fsevent (~> 0.10, >= 0.10.3)
218 | rb-inotify (~> 0.9, >= 0.9.10)
219 | mercenary (0.3.6)
220 | mini_portile2 (2.8.7)
221 | minima (2.5.1)
222 | jekyll (>= 3.5, < 5.0)
223 | jekyll-feed (~> 0.9)
224 | jekyll-seo-tag (~> 2.1)
225 | minitest (5.18.1)
226 | nokogiri (1.16.7)
227 | mini_portile2 (~> 2.8.2)
228 | racc (~> 1.4)
229 | octokit (4.25.1)
230 | faraday (>= 1, < 3)
231 | sawyer (~> 0.9)
232 | parallel (1.25.1)
233 | pathutil (0.16.2)
234 | forwardable-extended (~> 2.6)
235 | posix-spawn (0.3.15)
236 | public_suffix (4.0.7)
237 | racc (1.8.1)
238 | rainbow (3.1.1)
239 | rake (13.0.6)
240 | rb-fsevent (0.11.2)
241 | rb-inotify (0.10.1)
242 | ffi (~> 1.0)
243 | rexml (3.2.5)
244 | rouge (3.26.0)
245 | ruby2_keywords (0.0.5)
246 | rubyzip (2.3.2)
247 | safe_yaml (1.0.5)
248 | sass (3.7.4)
249 | sass-listen (~> 4.0.0)
250 | sass-listen (4.0.0)
251 | rb-fsevent (~> 0.9, >= 0.9.4)
252 | rb-inotify (~> 0.9, >= 0.9.7)
253 | sawyer (0.9.2)
254 | addressable (>= 2.3.5)
255 | faraday (>= 0.17.3, < 3)
256 | simpleidn (0.2.1)
257 | unf (~> 0.1.4)
258 | terminal-table (1.8.0)
259 | unicode-display_width (~> 1.1, >= 1.1.1)
260 | thread_safe (0.3.6)
261 | typhoeus (1.4.1)
262 | ethon (>= 0.9.0)
263 | tzinfo (1.2.11)
264 | thread_safe (~> 0.1)
265 | tzinfo-data (1.2023.3)
266 | tzinfo (>= 1.0.0)
267 | unf (0.1.4)
268 | unf_ext
269 | unf_ext (0.0.8.2)
270 | unicode-display_width (1.8.0)
271 | wdm (0.1.1)
272 | webrick (1.8.1)
273 | yell (2.2.2)
274 | zeitwerk (2.6.17)
275 |
276 | PLATFORMS
277 | ruby
278 |
279 | DEPENDENCIES
280 | github-pages
281 | html-proofer (~> 3.19.0)
282 | jekyll-avatar
283 | jekyll-last-modified-at
284 | jekyll-sitemap
285 | rake
286 | tzinfo (~> 1.2)
287 | tzinfo-data
288 | wdm (~> 0.1.1)
289 | webrick (~> 1.8)
290 |
291 | BUNDLED WITH
292 | 2.3.10
293 |
--------------------------------------------------------------------------------
/Rakefile:
--------------------------------------------------------------------------------
1 | require 'html-proofer'
2 | # rake test
3 | desc "build and test website"
4 | task :test do
5 | sh "bundle exec jekyll build"
6 | HTMLProofer.check_directory("./_site", {
7 | :assume_extension => true,
8 | :check_favicon => true,
9 | :external_only => true,
10 | :only_4xx => true,
11 | :file_ignore => [ '/assets/materials/' ],
12 | :url_ignore => [ ],
13 | :url_swap => { %r{https://csguides.github.io} => '' },
14 | :typhoeus => {
15 | :ssl_verifypeer => false,
16 | :ssl_verifyhost => 0},
17 | verbose => true}).run
18 | end
--------------------------------------------------------------------------------
/_about/about.md:
--------------------------------------------------------------------------------
1 | # Authors
2 |
3 | This guide was written by [Wes Weimer](https://web.eecs.umich.edu/~weimerw/) (University of
4 | Michigan), [Claire Le Goues](https://clairelegoues.com/) (Carnegie Mellon University), Zak Fry (GrammaTech),
5 | [Kevin Leach](https://kjl.name/) (Vanderbilt University), [Yu Huang](https://yuhuang-lab.github.io/) (Vanderbilt University),
6 | [Kevin Angstadt](https://myslu.stlawu.edu/~kangstadt/) (St. Lawrence University), and [Madeline Endres](https://madelineendres.com) (University
7 | of Massachusetts, Amherst). We elicited select input from others, and indicate who/where throughout, where relevant.
8 |
9 | In this Guide, we generally offer collective advice and speak in general terms. However, we will sometimes refer to specific authors by name. We provide
10 | information about each author's search below to provide context.
11 |
12 | * [Wes Weimer](https://web.eecs.umich.edu/~weimerw/): Conducted a 2005 search for a position in programming languages or software
13 | engineering in academia or industry; accepted a position as a tenure track assistant professor at the University of Virginia. He is now a professor at the Univeristy of Michigan.
14 |
15 | * [Claire Le Goues](https://clairelegoues.com/): Conducted a 2013 search for a position in programming languages or software
16 | engineering in research academia or industry; accepted a position as a tenure track assistant professor at Carnegie Mellon University. She has since served on the hiring committee and as Chair of the hiring committee a number of times in her home department at CMU, [S3D](https://s3d.cmu.edu/).
17 |
18 | * Zak Fry: Conducted a 2014 search for industrial research positions in software systems; accepted a role as a Research Scientist at GrammaTech.
19 |
20 | * [Kevin Angstadt](https://myslu.stlawu.edu/~kangstadt/): Conducted a 2019 search for a programming languages position in teaching-focused academia; accepted a position as a tenure track assistant professor at St. Lawrence University.
21 |
22 | * [Kevin Leach](https://kjl.name/): Conducted a two-body (with spouse [Yu Huang](https://yuhuang-lab.github.io/)) 2020 search for a position in software engineering or security in research or teaching-focused academia; accepted a position as a tenure track assistant professor at Vanderbilt University.
23 |
24 | * [Madeline Endres](https://madelineendres.com): Conducted a 2024 search for a software engineering position in research academia; accepted a position as a tenure track assisstant professor at the University of Massachusetts, Amherst.
25 |
26 |
27 | Kevin Angstadt and Madeline Endres are the primary
28 | maintainers of this version of the guide (there are older versions out
29 | there, but we anticipate this site to be most up-to-date).
30 |
31 | # Contributing
32 |
33 | We welcome contributions from the community to this guide. The repository is
34 | [hosted on GitHub]({{site.repo}}). If you have any questions about contributing, please email Madeline Endres at .
35 |
36 | ## Contributing Application Materials
37 |
38 | We are always looking for more application material profiles, especially for job-types or job-locations that are currently under-represented in our guide. These materials are hosted on the [Example Materials tab](exampleMaterials.md), and can help students contextualize their application and deal with imposter syndrome.
39 |
40 | If you are interesting in contributing your materials, please fill out our contribution form available [here](https://docs.google.com/forms/d/e/1FAIpQLSdLHwzuCsOcKHNBZBO9LGiWhVZPbcIE5-VpQ5hL8wQcFRAAMQ/viewform?usp=sf_link). This form includes places to upload PDFs of your materials, as well as add any information you'd like to better contextualize your application for readers. In this form, you can also indicate if you'd like to be kept anonymous. All materials are optional -- we greatly appreciate anything you'd be willing to share!
41 |
42 | ## Problems with the Website
43 |
44 | Did you notice something wrong with the website (something not working or a
45 | typo)? Please [create an issue]({{site.repo}}/issues) on our GitHub project.
46 |
47 | # Acknowledgments
48 |
49 | We would like to acknowledge all of our colleagues who have aided (directly and
50 | indirectly) in the creation of this guide. You may safely assume that all of the
51 | good ideas here come from them and that all bad advice comes from us.
52 |
53 | Many wise and wonderful people were kind enough to grant Wes the boon of their
54 | wisdom on this subject. They include, but are not limited to:
55 |
56 | - Alex Aiken (Stanford)
57 | - Ras Bodik (Berkeley)
58 | - Katherine Compton (Wisconsin)
59 | - Richard Fateman (Berkeley)
60 | - Jill Findeis (PSU)
61 | - Stephen Freund (Williams)
62 | - Patrice Godefroid (Bell Labs)
63 | - Sumit Gulwani (Microsoft)
64 | - Tom Henzinger (EPFL)
65 | - Ranjit Jhala (UCSD)
66 | - Iain Keddie (IBM)
67 | - Jim Larus (Microsoft)
68 | - David Liben-Nowell (Carleton)
69 | - Tessa Lau (IBM)
70 | - Rupak Majumdar (UCLA)
71 | - Wayne McMullen (PSU)
72 | - Greg Morrisett (Harvard)
73 | - George Necula (Berkeley)
74 | - Jens Palsberg (UCLA)
75 | - Sriram Rajamani (Microsoft)
76 | - David Shoenthal (Longwood)
77 | - Raj Varma (Delaware)
78 | - Mark Wegman (IBM)
79 | - Donna Weimer (Juniata)
80 |
81 | [Claire](/grad-job-guide/about#authors) did not consult many people for her contributions to this document, as
82 | she modified it after it had long been written. However, beyond [Wes](/grad-job-guide/about#authors), she would
83 | particularly like to acknowledge the support and assistance of:
84 |
85 | - Katie Stolee (Iowa State)
86 | - Yuriy Brun (UMass-Amherst)
87 | - Reid Holmes (Waterloo)
88 | - Ivan Beschastnikh (UBC)
89 | - Stephanie Forrest (UNM)
90 | - John Knight (UVA)
91 |
92 | ... and the many others who offered advice and support throughout her own job
93 | search.
94 |
95 | Zak had a similarly short list of consultations, as he targeted exclusively
96 | industrial research positions and arguably had a more "homogeneous" job search
97 | experience overall:
98 |
99 | - Wes Weimer (UVA)
100 | - Lori Pollock (UD)
101 | - Stephanie Forrest (UNM)
102 | - John Knight (UVA)
103 | - Pieter Hooimeijer (Facebook)
104 | - Ray Buse (Google)
105 | - Joel Coffman (Johns Hopkins APL)
106 |
107 | # License
108 |
109 | The text of this guide is released under the [Creative Commons
110 | Attribution-ShareAlike 4.0 International (CC BY-SA
111 | 4.0)](https://creativecommons.org/licenses/by-sa/4.0/) license.
112 |
113 | This guide includes some publicly-available application materials for comparison
114 | and convenience. You could get them off of archive.org yourself if you so
115 | desired. All application materials remain the property of their respective
116 | authors and are shared here by permission.
117 |
--------------------------------------------------------------------------------
/_applying/cover-letter.md:
--------------------------------------------------------------------------------
1 | # Cover Letters
2 |
3 | Getting a cover letter wrong can have significant consequences. A
4 | poorly crafted cover letter can lead to your entire application being misfiled
5 | or overlooked.
6 |
7 | [Claire Le Goues](/grad-job-guide/about#authors), who was Chair of the S3D Tenure Track Hiring Committee at CMU
8 | from 2019 to 2022, has learned that cover letters are much more important now
9 | than they were in prior decades. She suggests that applicants not treat cover
10 | letters as an afterthought.
11 |
12 | Your cover letter should be brief and to the point. It should:
13 |
14 | 1. Quickly introduce who you are (e.g., name, current institution and title).
15 | 2. Specify the job you are applying for (including any reference numbers).
16 | 3. Give a high-level overview of your research focus.
17 | 4. Indicate why you are excited about the position, why you are a good fit,
18 | and why you are likely to accept an offer.
19 | 5. Mention any special circumstances (e.g., two-body problem).
20 |
21 | Limit the overview of your research focus to a paragraph or two;
22 | your [research statement](#research-statement) is the place for detail.
23 | This is particularly important when applying to large schools
24 | that may have many independent
25 | searches but only one application portal. If you find it difficult to
26 | summarize, [Wes](/grad-job-guide/about#authors) recommends prioritizing outcomes (e.g., awards) over
27 | lower-level mechanisms (e.g., mentioning that you use a particular
28 | type of dataflow analysis). **Make it easy for a hiring chair in
29 | your area to quickly realize you're one of theirs!**
30 |
31 | If a portal asks you to select research area keywords, it is to your
32 | advantage to be accurate. At many institutions, different groups of faculty will
33 | read different applications: for example, architecture faculty may read
34 | and evaluate architecture applications. If you are an architecture candidate
35 | who has one theory publication, checking both the architecture and theory boxes runs the risk that your
36 | application will be evaluated by theory professors, who may or may not know if
37 | ASPLOS and MICRO are good venues. This issue can be difficult to navigate for
38 | interdisciplinary applicants, and we recommend talking to your advisor about how to position yourself
39 | and using other mechanisms available to you (such as your cover letter and research statement) to
40 | further clarify your expertise.
41 |
42 | Reasons you are excited about the position can include the type of
43 | school (public vs. private, R1 vs. liberal arts), the location,
44 | specific initiatives or centers related to your research, and
45 | past collaborations you've had with faculty at the institution.
46 | **If someone on the inside told you to apply, be sure to mention it
47 | in your cover letter.**
48 |
49 | [Kevin Leach](/grad-job-guide/about#authors) notes that he prepared a generalized cover letter and then changed
50 | sentences to specialize it to each department, such as by listing faculty he knew. [Kevin Angstadt](/grad-job-guide/about#authors)
51 | notes that teaching-focused and research-focused positions may merit different cover letter contents.
52 |
53 | {% capture quote %}
54 | I was wrong to treat cover letters as unimportant when I was on the market. Especially for applicants to
55 | large departments/schools, they're critical to helping hiring committees
56 | identify candidates relevant to a particular search focus, and ensure
57 | materials are read by people with expertise.
58 |
59 | That said, seriously, please don't go crazy with the detail: make it easy for me to
60 | skim and quickly/accurately figure out your research area.
61 | {% endcapture %}
62 | {% include quote.html content=quote user="legoues" %}
63 |
64 |
65 | For examples of cover letters, see the [Example Materials](/grad-job-guide/exampleMaterials) tab.
66 |
--------------------------------------------------------------------------------
/_applying/publications.md:
--------------------------------------------------------------------------------
1 | # Selecting Indicative Publications
2 |
3 | Some schools will ask for you to submit up to three indicative publications.
4 | As discussed earlier, most interviewers will go to your website first to look
5 | at your materials. As a result, the specific publications that you choose
6 | to include in your application may not be too important.
7 |
8 | However, it is worth being a little strategic. We recommend picking publications
9 | that are published in higher-tier venues and align with how you are positioning
10 | yourself on the job market. For example, if you are aiming for Software Engineering
11 | positions, you might want to focus on publications from venues
12 | like the International Conference on Software Engineering (ICSE) or Transactions
13 | on Software Engineering (TSE) that you plan to focus on in your job talk.
14 | We recommend that you include at least one first-authored paper. However,
15 | not all of them need to be first-authored (at least if you are in PL or SE).
--------------------------------------------------------------------------------
/_applying/resume.md:
--------------------------------------------------------------------------------
1 | # Preparing Your Resume
2 |
3 | Resume-writing is well-established, although many of the standard
4 | techniques aren't as applicable at the Ph.D. level. For example, it's our
5 | impression that your previous work experience may not matter as much.
6 | Instead, you
7 | want to emphasize your publications and any teaching experience you might
8 | have. Also list all of your references---sometimes people
9 | actually call your references to get more information.
10 |
11 | A typical academic resume contains sections for publications, teaching,
12 | and service (e.g., paper reviewing, serving on departmental committees, or
13 | conference organizing). You might also include information on your
14 | experience with grant-writing, research mentorship, industrial internships,
15 | and any media coverage of your research.
16 |
17 | Here are some concrete tips for organizing your resume or CV:
18 |
19 | * **Have an Opening Tag Line:** We recommend using a short phrase at the top
20 | of your resume to contextualize your application. For example,
21 | [Madeline](/grad-job-guide/about#authors) led with:
22 |
23 | > Combining **software engineering** with human factors and **programming
24 | languages** techniques to **improve programmer productivity and wellbeing**
25 |
26 | * **Emphasize Publications:** Your publications and publication venues are
27 | very important. We recommend summarizing your publications in a
28 | sentence or two. As one example, [Madeline](/grad-job-guide/about#authors) wrote:
29 |
30 | > 16 peer-reviewed publications: 13 conference papers (ICSE,
31 | ESEC/FSE, PLDI, ASE, OOPSLA, etc.) including a distinguished
32 | paper award at ESEC/FSE, 3 peer-reviewed workshop papers. Four papers
33 | with undergraduate advisees, including three with student first
34 | authors. Three papers with interdisciplinary collaborators.
35 |
36 | [Wes](/grad-job-guide/about#authors) did not include this type of summary. If he were to apply again, he would
37 | include one because he saw people at interviews skim his resume for exactly
38 | this summary while he sat before them.
39 |
40 | * **Separate by Publication Type:** We recommend organizing your
41 | publications by type (e.g., "Journal Articles," "Refereed Conference
42 | Publications," "Invited Articles", "Workshops," etc.). Listing all
43 | publications chronologically without distinguishing by venue
44 | type can appear disingenuous, and it can be annoying for the reader
45 | to spend time mentally sorting the list (since workshops
46 | "count less" than other venue types). To that end, be sure to separate short/workshop from full conference/journal publications.
47 | Claire included journal impact factors and conference
48 | acceptance rates. She also highlighted venue acronyms and applicable
49 | awards in the left-hand column of her publication list. These
50 | decisions were intended to make her CV easier to scan for this type
51 | of information, because interviewers look for it.
52 |
53 | * **Consider Section Summaries:**
54 | [Kevin Leach](/grad-job-guide/about#authors) had applied to jobs as a
55 | "cross-disciplinary" researcher with a few years of postdoctoral experience.
56 | This led to a complicated list of publications and grants.
57 | Kevin found it helpful to have summaries at the top of each section to
58 | highlight which venues were relevant to which areas, which classes he had
59 | taught, and which grants were received at each institution.
60 |
61 | * **Teaching Qualifications:** If you are applying for teaching
62 | positions (e.g., top-tier teaching academia, liberal arts
63 | college, instructor position), you should highlight your teaching
64 | qualifications---such as courses taught, courses designed, and numerical
65 | evaluation scores---early in your resume.
66 |
67 | As with reserach-focused position, the selectivity of a teaching-focused
68 | position will vary with context, including the quality and reputation
69 | of the school. For top-tier liberal arts colleges,
70 | [Wes](/grad-job-guide/about#authors)'s were the bare
71 | minimum required (e.g., they sufficed to get him an interview at
72 | Wesleyan) but they were mentioned as a concern (until he was able to
73 | convince them with his presentation) and he has no doubt that other teaching
74 | places rejected him because of them. By contrast,
75 | [Kevin Angstadt](/grad-job-guide/about#authors)'s
76 | and
77 | [Hammad Ahmad](/grad-job-guide/about#authors)'s materials represent more of
78 | an upper bound, resulting in very successful searches with multiple offers.
79 |
80 | Teaching jobs will also want multiple
81 | numerical evaluations. For example, [Wes](/grad-job-guide/about#authors) was asked explicitly what his numerical teaching
82 | evaluations were at Wesleyan, committees are also quite serious about it at other departments.
83 |
84 | **The importance of your resume:** At many institutions, your resume
85 | might be the only document that makes it through the application process
86 | to the interviewers. During interviews, [Wes](/grad-job-guide/about#authors) often observed people
87 | reviewing his resume as he entered the room or while he was sitting
88 | down. In contrast, his research statement was rarely mentioned.
89 | [Claire](/grad-job-guide/about#authors) had similar experiences but notes that at some schools,
90 | interviewers had read at least one of her publications before meeting
91 | with her.
92 |
93 | **Example Resumes:** For concrete examples of resumes and CVs, see the
94 | [Example Materials](/grad-job-guide/exampleMaterials) tab.
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/_applying/submitting.md:
--------------------------------------------------------------------------------
1 | # Submitting Your Application
2 |
3 | Nothing surprising here. Email it in or otherwise make use of the online form
4 | system in question. Often they will ask for everything to be in PDF
5 | format. Sometimes they'll even want everything in a single PDF file, so be
6 | prepared to be able to combine PDFs if needed.
7 |
8 | {% capture quote %}
9 |
10 | I found it helpful to just make a copy of my materials
11 | for each institution, then edit the copy accordingly. Version control
12 | was also super helpful -- since the application process spanned months,
13 | some of my materials changed slightly over time. By the time my
14 | interviews were scheduled, I found it really helpful to be able to "go
15 | back in time" to recall which materials I had submitted where.
16 |
17 | {% endcapture %}
18 | {% include quote.html content=quote user="kleach" %}
19 |
20 |
21 | Now that you have written and submitted your application materials, the next step is [interviewing](/grad-job-guide/interviewing)!.
22 |
23 |
24 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 |
2 | # Site settings
3 | # These are used to personalize your new site. If you look in the HTML files,
4 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
5 | # You can create any custom variable you would like, and they will be accessible
6 | # in the templates via {{ site.myvariable }}.
7 |
8 | title: "CS Grad Job and Interview Guide"
9 | author: "Kevin Angstadt"
10 | author2: "Madeline Endres"
11 | email: kangstadt@stlawu.edu
12 | email2: mendres@umass.edu
13 | description: >- # this means to ignore newlines until "baseurl:"
14 | This document summarizes experience, opinions, and advice (and advice received
15 | from others) on looking for jobs in academia and industrial research labs in the
16 | field of computer science.
17 | baseurl: "/grad-job-guide" # the subpath of your site, e.g. /blog
18 | url: "https://csguides.github.io" # the base hostname & protocol for your site, e.g. http://example.com
19 | # twitter_username:
20 | github_username: csguides
21 | # google_analytics: G-PNQ65W15RF # kevin's
22 | google_analytics: G-V6DRFB5162 # Maddy's
23 |
24 | repo: https://github.com/csguides/grad-job-guide
25 | comments: false
26 |
27 | header_pages:
28 | - index.md
29 | - jobs.md
30 | - applying.md
31 | - interviewing.md
32 | - deciding.md
33 | - misc.md
34 | - exampleMaterials.md
35 | - about.md
36 |
37 | footer_pages:
38 | - about.md
39 |
40 | # Build settings
41 | plugins:
42 | - jeckyll-last-modified-at
43 | - jekyll-sitemap
44 |
45 | sass:
46 | style: compact
47 |
48 | # Exclude from processing.
49 | # The following items will not be processed, by default.
50 | # Any item listed under the `exclude:` key here will be automatically added to
51 | # the internal "default list".
52 | #
53 | # Excluded items can be processed by explicitly listing the directories or
54 | # their entries' file path in the `include:` list.
55 | #
56 | # exclude:
57 | # - .sass-cache/
58 | # - .jekyll-cache/
59 | # - gemfiles/
60 | # - Gemfile
61 | # - Gemfile.lock
62 | # - node_modules/
63 | # - vendor/bundle/
64 | # - vendor/cache/
65 | # - vendor/gems/
66 | # - vendor/ruby/
67 |
--------------------------------------------------------------------------------
/_data/README.md:
--------------------------------------------------------------------------------
1 | Make sure to update this Yml file, and also update assets/contributors.json
2 |
--------------------------------------------------------------------------------
/_data/people.yml:
--------------------------------------------------------------------------------
1 | # This file contains configuration information for each dossier hosted on the
2 | # grad job guide.
3 | #
4 | # Materials should be placed under `assets/materials/`
5 | # where is a unique identifier for each contributor. We recommend using
6 | # your last name as the id, but in the case of conflicts, additional information
7 | # (e.g., first initial) may be necessary.
8 | #
9 | # Please only submit PDF documents
10 |
11 | ######################################
12 | # Dossier Fields #
13 | ######################################
14 | #
15 | # Per standard YAML syntax, each dossier begins with a hyphen (-) to denote an
16 | # item in the list. Indented under this hyphen are the following fields
17 | #
18 | # ** Required **
19 | #
20 | # id: unique identifier (typically last name); must be the same as the assets
21 | # directory
22 | # display: the name that should appear on the guide's pages
23 | # employer: current employer
24 | #
25 | # ** Optional **
26 | # *note* that these are all realative to `assets/materials/`
27 | #
28 | # cycle: Academic year of the job search (e.g., Wes is 2004-2005)
29 | # target: a comma-separated list of job target tags. Please choose from the
30 | # following:
31 | # - research: research academia
32 | # - teaching: teaching academia (e.g., lecturer, professor of practice)
33 | # - slac: small liberal arts colleges
34 | # - industry: industrial research or development
35 | # - postdoc: postdoctoral researcher
36 | # timeline: name of json file containing interview timeline
37 | # resume: a list of resume files; each item contains upt to two pieces:
38 | # file: the file name of the resume
39 | # description: (optional) text displayed on the guide describing this item
40 | # research: a list of research statements (see resume)
41 | # teaching: a list of research statements (see resume)
42 | # diversity: a list of diversity statements (see resume)
43 | # cover: a list of cover letters (see resume)
44 | #
45 | # *note* only include multiple statements if there is something noticably
46 | # different that you wish to draw attention to
47 |
48 | #####################################
49 | # Author Fields #
50 | #####################################
51 | #
52 | # Authors have a few extra fields for configuration:
53 | # avatar: image file for use in quotes
54 | # color: color of the speech bubble
55 |
56 | # Authors (with dossiers)
57 |
58 | - id: weimer
59 | display: Wes Weimer
60 | employer: University of Michigan
61 | avatar: weimerw.jpg
62 | color: "#990033"
63 | cycle: "2004-2005"
64 | timeline: timeline.json
65 | target: Research Academia, Teaching Academia, and Industrial Research Positions
66 | resume:
67 | - file: weimer-resume.pdf
68 | research:
69 | - file: weimer-research.pdf
70 | teaching:
71 | - file: weimer-teaching.pdf
72 | cover:
73 | - file: weimer-cover-letter.pdf
74 | description: Generic
75 | - file: weimer-cover-letter-umass.pdf
76 | description: UMass-Amherst, including job search number
77 |
78 | - id: legoues
79 | display: Claire Le Goues
80 | employer: Carnegie Mellon University
81 | avatar: claire.jpg
82 | color: "#0099FF"
83 | cycle: "2012-2013"
84 | target: Research Academia and Industrial Research Positions
85 | timeline: timeline.json
86 | resume:
87 | - file: legoues-cv.pdf
88 | research:
89 | - file: legoues-research-statement.pdf
90 | teaching:
91 | - file: legoues-teaching-statement.pdf
92 |
93 |
94 | - id: fry
95 | display: Zak Fry
96 | employer: GrammaTech
97 | avatar: zak.jpeg
98 | color: "#008000"
99 | cycle: "2013-2014"
100 | target: Industrial Research Positions
101 | resume:
102 | - file: fry-cv.pdf
103 | research:
104 | - file: ZakFry_ResearchStatement.pdf
105 |
106 | - id: angstadt
107 | display: Kevin Angstadt
108 | employer: St. Lawrence University
109 | avatar: angstadt.jpg
110 | color: "#993300"
111 | cycle: "2019-2020"
112 | timeline: timeline.json
113 | target: Teaching Academia and Instructor Positions
114 | resume:
115 | - file: angstadt-cv-f2019.pdf
116 | description: Organized for a teaching-focused application
117 | research:
118 | - file: angstadt-research-statement.pdf
119 | description: Targets an undergraduate-serving institution
120 | teaching:
121 | - file: angstadt-teaching-philosophy.pdf
122 | description: Long-format more suitable for teaching-focused positions
123 | - file: angstadt-teaching-diversity-philosophy.pdf
124 | description: Includes brief diversity statement
125 | - file: angstadt-teaching-philosophy-grad.pdf
126 | description: Short-format used for research-focused positions
127 | diversity:
128 | - file: angstadt-diversity-statement.pdf
129 | cover:
130 | - file: angstadt-bowdoin-cover-letter.pdf
131 | description: Bowdoin College, organized for teaching-focused job posting
132 |
133 | - id: kleach
134 | display: Kevin Leach
135 | emloyer: Vanderbilt University
136 | avatar: kleach.jpg
137 | color: "#ff9933"
138 | cycle: "2020-2021"
139 | timeline: timeline.json
140 | target: Research Academia and Instructor Positions
141 | resume:
142 | - file: kleach-cv-2020.pdf
143 | description: Organized for a tenure-track position. I used this both for teaching- and tenure-track positions.
144 | research:
145 | - file: kleach-research-statement.pdf
146 | description: Tenure-track research statement.
147 | teaching:
148 | - file: kleach-teaching-statement.pdf
149 | description: Two pages, plus a table of teaching at the end. I spent a good deal of postdoc time teaching.
150 | diversity:
151 | - file: kleach-diversity-statement.pdf
152 | cover:
153 | - file: kleach-cover-letter.pdf
154 | description: I generalized the letter here. Each submission included additional sentences specific to the department (e.g., faculty I knew of).
155 |
156 | - id: endremad
157 | display: Madeline Endres
158 | emloyer: University of Massachusetts Amherst
159 | avatar: Endres_headshot.jpeg
160 | color: "#7600bc"
161 | cycle: "2023-2024"
162 | target: Research Academia Positions
163 | resume:
164 | - file: Endres_cv_feb.pdf
165 | research:
166 | - file: Endres_researchStatement.pdf
167 | description: Tenure-track research statement.
168 | teaching:
169 | - file: Endres_teachingStatement.pdf
170 | description: Three pages, split between classroom instruction and graduate student mentoring.
171 | diversity:
172 | - file: Endres_diversityStatement.pdf
173 | cover:
174 | - file: Endres_coverLetter.pdf
175 | description: Generalized cover letter.
176 |
177 |
178 | ################################################################################
179 | # Dossiers begin here (add to end of list)
180 |
181 | - id: begel
182 | display: Andy Begel
183 | employer: Microsoft Research
184 | resume:
185 | - file: begel-cv.pdf
186 | research:
187 | - file: begel-research.pdf
188 | teaching:
189 | - file: begel-teaching.pdf
190 |
191 | - id: jhala
192 | display: Ranjit Jhala
193 | employer: UCSD
194 | research:
195 | - file: Jhala-Research.pdf
196 | teaching:
197 | - file: Jhala-Teaching.pdf
198 | cover:
199 | - file: rj-cover-generic3.pdf
200 |
201 | - id: lerner
202 | display: Sorin Lerner
203 | employer: UCSD
204 | resume:
205 | - file: lerner-cv.pdf
206 | research:
207 | - file: lerner-research.pdf
208 | teaching:
209 | - file: lerner-teaching.pdf
210 |
211 | - id: whaley
212 | display: John Whaley
213 | employer: UnifyID
214 | resume:
215 | - file: whaley-cv.pdf
216 | research:
217 | - file: whaley-research.pdf
218 | teaching:
219 | - file: whaley-teaching.pdf
220 |
221 | - id: hammada
222 | display: Hammad Ahmad
223 | timeline: timeline.json
224 | cycle: 2023-2024
225 | target: Teaching Academia and Instructor Positions
226 |
--------------------------------------------------------------------------------
/_deciding/deadlines.md:
--------------------------------------------------------------------------------
1 | # Deadlines and Hard-Sell Tactics
2 |
3 | Official offers will often come with deadlines, especially if you are the
4 | institution's current first choice but they have others "in line" in case you
5 | reject the offer. This can lead to uncomfortable situations where you have to
6 | decide on one offer without knowing about your other potential offers.
7 |
8 | It is basically impossible to avoid this by scheduling all of your interviews in
9 | one massive clump. Your interview offers will trickle in at a varying rate, and
10 | even if all of the dates are available for you, not all of
11 | the dates will be available at every university. Moreover,
12 | the practical limit is about 2.5 interviews per week -- and 2 is much
13 | more reasonable. The travel time and the effort of being "on" for the
14 | entire interview are hard to appreciate until you've actually done it. [Claire](/grad-job-guide/about#authors)
15 | only had one 2-interview week, and she strongly encourages you to avoid it.
16 |
17 | Another way to cope is to ask for more time. If you explain the situation
18 | honestly, many places will push back their deadlines. For example, Purdue was
19 | willing to push their deadline for [Wes](/grad-job-guide/about#authors) back to effectively May 2.
20 | Unfortunately, that can often still not be long enough (it wasn't for [Wes](/grad-job-guide/about#authors), as
21 | his timeline indicates). Waterloo extended [Claire](/grad-job-guide/about#authors)'s decision deadline to give
22 | her the chance to do a second visit at UIUC.
23 |
24 | Finally, certain classes of offers rarely come with deadlines. Industrial
25 | research labs (e.g., IBM and Microsoft) can typically afford to sit on an offer
26 | for as long as you would reasonably like once it has been extended to you.
27 | [Claire](/grad-job-guide/about#authors)'s Lincoln Labs offer had a basically infinitely-extensible deadline.
28 | Similarly, some academic offers effectively say "you are our first choice and
29 | there is no one we will extend an offer to this year if you turn us down, so
30 | take as long as you like to think about it."
31 |
32 | That said, it is reasonable to turn down a position as soon as you know you
33 | are not going to accept it. You don't have to/shouldn't wait until right up
34 | against their deadline "just to be polite." The sooner they know, the easier it
35 | is for them to make an offer to their next-favorite candidate.
36 |
37 | {% capture quote %}
38 | It is my *personal opinion* (as opposed to the rest of this, but this
39 | bit is really an editorial) that any offer with a deadline that you view as too
40 | restrictive should be rejected. I realize that there are economic realities and
41 | that most offers come with eventual deadlines, but you owe it to yourself to
42 | check out all of your options. In essence, an offer that says "you're so
43 | impressive to us that I want you to come here, get tenure, and work with us for
44 | the rest of your life, but I'm not willing to give you another two weeks to get
45 | all of the relevant information and think about things" is saying "I don't want
46 | you to use you brain or it isn't worth it to me to let you use you brain, and I
47 | think that my best shot at hiring you involves pressuring you into a situation
48 | where you will make a snap judgment in my favor." Morality and honor typically
49 | involve restricting your actions for some higher goal and often come with a
50 | price (e.g., deciding not to steal rules out a bunch of actions that could get
51 | you more money, choosing not to lie can make it difficult to explain certain
52 | situations). For me, the price of potentially losing a more lucrative (or
53 | otherwise better-appearing) potential job is one that I am willing to pay in
54 | order to take the "honorable" action of avoiding such hard sell tactics. In the
55 | end, I wouldn't want to work at a place that didn't want me to take my time and
56 | use my mind when considering where to work.
57 | {% endcapture %}
58 | {% include quote.html content=quote user="weimer" %}
59 |
60 | {% capture quote %}
61 | I feel perhaps slightly less strongly on this issue, though I
62 | never faced the choice of having to turn down one offer without another offer in
63 | hand. I have been told by various people that this behavior is more common from
64 | and attractive to "lower ranked" schools, because they typically have to work
65 | harder to interview and attract candidates. Put differently: Stanford can be
66 | reasonably confident that a candidate will accept their offer.
67 | Ranked-75th-University may have to put out more offers to get a bite.
68 | This is a difficult feature of the job search and I wish schools
69 | could synchronize their schedules a bit more to avoid it; but ultimately, a
70 | system like the medical school "match" process disadvantages applicants (it's an
71 | explicitly legal cartel!), so we may just have to accept that we live in the
72 | best of all possible worlds.
73 | {% endcapture %}
74 | {% include quote.html content=quote user="legoues" %}
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/_deciding/deciding.md:
--------------------------------------------------------------------------------
1 | # Deciding
2 |
3 | If you're having a hard time deciding, it's quite legitimate to go on a second
4 | visit (or two). [Claire](/grad-job-guide/about#authors) found these quite informative. She and her partner went
5 | on such visits together and arranged a "date night" at each one in an effort
6 | to simulate what it might be like to live in the place in question. As
7 | mentioned, [Claire](/grad-job-guide/about#authors)'s partner also did onsite interviews with companies or otherwise consulted
8 | with department members or others about employment opportunities on such visits.
9 |
10 | {% capture quote %}
11 | Talk to everyone. Don't forget to consult yourself. I
12 | can't really help you here generically.
13 | {% endcapture %}
14 | {% include quote.html content=quote user="weimer" %}
15 |
16 | {% capture quote %}
17 | I waited to have complete information for all offers before
18 | making a decision. I also asked for advice from as many people as possible,
19 | though for the most part this didn't help. I did not choose my position on rank
20 | alone, and it's unlikely that you should. [Wes](/grad-job-guide/about#authors) suggests that I should say more
21 | on this because I ended up at highly-ranked CMU. This decision is mostly
22 | related to what matters to you in life and what makes you happy. I
23 | sincerely believe that I could have worked and lived happily in all of my
24 | options. In the end, some combination of department quality and
25 | composition and, very critically, location, led CMU to win the day. I like
26 | cities, and Pittsburgh is cool, and it is conveniently located for both my
27 | family and my partner's family. It also has a fairly large tech scene,
28 | allowing my spouse to get a job. The fact that CMU CS is a highly ranked
29 | department was not irrelevant, but it is not the only reason I accepted the
30 | position.
31 |
32 | I found deciding very difficult. You will end up connecting, hanging out,
33 | and talking with a large number of people at every school, and it's hard to turn
34 | down new friends. One aspect of the job decision process that surprised me was
35 | how much time I spent on the phone with faculty at various departments,
36 | discussing their lives. Unlike negotiation, writing the "turn down the offers"
37 | emails never got any easier.
38 | {% endcapture %}
39 | {% include quote.html content=quote user="legoues" %}
40 |
41 |
42 | {% capture quote %}
43 | Talk to everyone, several times. I
44 | had my mind made up based on my assumptions about both places from which I
45 | had offers. After talking to [Wes](/grad-job-guide/about#authors) a lot, I was contacted by the place I had
46 | decided not to go to and, after two subsequent conversations, I now work
47 | there. It's impossible to ask all the right questions or get all the
48 | information about any given place, but if you have concerns about a certain
49 | place then talk to them about it. They should be more than eager to talk to
50 | you about things (if not, that's a bad sign) and you might find that you
51 | made hasty, or even incorrect, assumptions in this difficult, emotional
52 | time.
53 | {% endcapture %}
54 | {% include quote.html content=quote user="fry" %}
55 |
56 | {% capture quote %}
57 | Having a dual-career situation made this really difficult. In addition,
58 | all of our interviews were remote during COVID-19, and we only visited one
59 | place in-person. My advice is to visit places multiple times if
60 | possible (you can also negotiate for extensions on offers if you ask to
61 | visit again in person, though this may be a bigger ask post-COVID).
62 |
63 | We tried to characterize what we wanted both together and
64 | separately. Clear communication is key -- we had to eliminate offers
65 | that were not good for both of us even though they were optimal for one
66 | of us.
67 | {% endcapture %}
68 | {% include quote.html content=quote user="kleach" %}
69 |
--------------------------------------------------------------------------------
/_deciding/rejection.md:
--------------------------------------------------------------------------------
1 | # Dealing With Rejection
2 |
3 | After you have had an interview with a place there are basically only two
4 | reasons for them to reject you:
5 |
6 | - They "couldn't build a consensus." Variants on this phrase are common.
7 | - You were their second or third choice, and one of the candidates they offered
8 | the job to first, accepted.
9 |
10 | Many of the factors that can lead those situations have nothing to do with you.
11 | For example, research area is often a big concern in hiring. If there's only one
12 | position available, and there was also a really amazing Theory candidate, and
13 | the existing theory faculty won the argument, you may be out of luck, no matter
14 | how great you were.
15 |
16 | Additionally, hiring decisions aren't _typically_ decided by a strict majority
17 | vote. A new hire is a big investment of departmental time and energy, especially
18 | since they'll (hopefully) be around for a long time (e.g., with tenure). It's
19 | therefore important that everyone be more or less on board. Perfect agreement
20 | amongst a group of professors is rare-to-unheard-of, but if more than a couple
21 | of people are relatively less enthusiastic (or a couple of people are opposed
22 | outright), no matter the reason, a department is unlikely to be able to make an
23 | offer.
24 |
25 | Rejection can be hard. Try to remember that the fact that you were offered an
26 | interview at all means that at least a few people there think highly of you, and
27 | almost certainly still do.
28 |
29 | You should tread carefully in the time period after your interviews but
30 | before your official offers. Many department chairs have told [Wes](/grad-job-guide/about#authors) that they
31 | view it as part of their job (or their responsibility to the department) to
32 | put the brightest face on this possible and essentially to "string you
33 | along" or "never say no" (and thus keep as many good options for the
34 | department open as possible). Thus a department chair saying "we're still
35 | deliberating" may well mean "we've made a job offer to someone else already
36 | and we're waiting to see how that goes". It has been suggested that
37 | grad students who are naive about the interview process will interpret
38 | "we'll get back to you in a week or two" the wrong way and may thus end up
39 | waiting too long for a job offer that never arrives. In such a case you
40 | should talk to your host or other department members in your area to get
41 | the inside scoop.
42 |
43 | {% capture quote %}
44 | It is my *personal opinion (and experience)* that this isn't really
45 | the case. All of the places that said to me variants of "we're still
46 | interviewing candidates and we'll have our faculty meeting to decide in 2
47 | weeks" ended up making me an offer in 2 weeks -- it wasn't some sort of
48 | smokescreen. Similarly, places that didn't think they were going to be able
49 | to make me an offer (e.g. McGill) told me the rumor early (e.g., "we're
50 | having trouble building consensus, I can't give you any reason to wait for
51 | us") when I asked -- long before they sent an official reject letter.
52 | This is another case where being more direct or honorable can cost you job offers.
53 | I was willing to deal with people in good faith and assume that they were
54 | not lying to me when they said they would get back to me later. For me it
55 | turned out that they were not lying, but I was willing to take the risk
56 | that they were (and thus that I would wait too long for something that
57 | would never materialize and lose my good offers along the way). A place
58 | that mentions that they play the "positive spin, never say no" game may
59 | well be dealing intelligently with a harsh economic reality, but you may
60 | not want to work there (cf. office politics).
61 | {% endcapture %}
62 | {% include quote.html content=quote user="weimer" %}
63 |
64 | {% capture quote %}
65 | Similarly, I found that most
66 | schools and chairs were very straightforward with my position on their
67 | "list" and the likelihood of an offer.
68 | {% endcapture %}
69 | {% include quote.html content=quote user="legoues" %}
70 |
71 | {% capture quote %}
72 | I found chairs to be fairly straightforward, especially in light of a
73 | dual-career search.
74 |
75 | While most institutions would notify us together of decisions affecting
76 | the other, I did find that some institutions would
77 | transitively notify one body of another's decision. That is, I had to hear
78 | from my wife that both our applications were rejected, and vice versa.
79 | {% endcapture %}
80 | {% include quote.html content=quote user="kleach" %}
81 |
--------------------------------------------------------------------------------
/_deciding/timelines.md:
--------------------------------------------------------------------------------
1 | # The Waiting Game
2 |
3 | You probably submitted your materials in the fall semester. However, for
4 | research-focused roles, you
5 | won't really hear anything from anyone until at least the middle of January when
6 | the faculty can get together and review the applications. Be sure to check your
7 | email during this time, including your spam folder! At the end of
8 | December 2004, Michigan sent [Wes](/grad-job-guide/about#authors) an email saying that there was a mix up with his
9 | application and asking him to resend his letters of recommendation. Unfortunately,
10 | it was sorted to his spam folder and he didn't find it until March, at which
11 | point it was too late. Try to avoid losing potential interviews for reasons not
12 | related to your merits.
13 |
14 | While you're waiting you may receive a bunch of emails that say "we
15 | received your application, we're starting a folder for it" or "we have
16 | received all of your letters of recommendation".
17 |
18 | {% capture quote %}
19 | Try to resist compulsively checking your website's stats
20 | on where your pageviews are coming from, because it will not make you feel
21 | better, even though it is at least a little bit fascinating.
22 | {% endcapture %}
23 | {% include quote.html content=quote user="legoues" %}
24 |
25 | {% capture quote %}
26 | I disabled my google analytics so that I would stop obsessing over them!
27 | It really helped my mental health.
28 | {% endcapture %}
29 | {% include quote.html content=quote user="endremad" %}
30 |
31 | ## Example Timelines
32 |
33 | Here are several application timelines (including information about acceptances and rejections):
34 |
35 | {% include timeline.html %}
36 |
37 | There are a few things to notice about these otherwise-boring timelines:
38 | - The spread of dates on the interview
39 | invitations is wide. Between [Wes](/grad-job-guide/about#authors)'s first (Jan 11) and last (Apr
40 | 4) there were almost three entire months.
41 | - Even the spread between an interview invitation and an offer from one
42 | department can be long (see: [Claire](/grad-job-guide/about#authors) and Georgia Tech). Sometimes you are
43 | the first of many candidates to interview. Other times, you are choice #3
44 | for a department with two slots, and they need to make offers to options #1 and
45 | #2 first. It is legitimate to email your host or the chair to let them
46 | know about your other deadlines.
47 | - Many official offers will require answers before
48 | you have heard all of your offers, conducted all of your interviews (such as
49 | Purdue for [Wes](/grad-job-guide/about#authors) or NC State or UNM for [Claire](/grad-job-guide/about#authors)), or even received all of your
50 | interview invitations. CMU called to invite [Claire](/grad-job-guide/about#authors) to interview *after she
51 | had concluded what she thought was her last interview (WUSTL).* You may be
52 | forced into the uncomfortable position of rejecting a "known good" offer in
53 | favor of only the potential of a better offer later. This can be scary, and if
54 | you get the one job you really want you should take it, but [Claire](/grad-job-guide/about#authors) notes the
55 | opportunities she would have missed if she'd signed an offer too early. See
56 | below on hard-sell tactics.
57 | - Sadly, explicit rejection notices are rare (especially
58 | without an interview) and are rarely early. Many places just never get back to
59 | you. [Claire](/grad-job-guide/about#authors) didn't even track which schools that did not interview her
60 | officially rejected her and when.
61 |
62 | {% capture quote %}
63 | I will elide my timeline, as it does
64 | not add much beyond the information already present.
65 | However, to echo an earlier point: the industrial positions I
66 | applied to did not follow a very neat schedule. I had to ask to extend an
67 | offer by more than a month to allow for ample time to hear back from
68 | other companies. The company in question was mostly happy to oblige a
69 | reasonable extension (as I'm told most are), but this is a part of the
70 | process to be aware of, as it can be tedious. I'd agree with [Wes](/grad-job-guide/about#authors)'s
71 | sentiments that any place that imposes an overly strict deadline may not be
72 | a fun place to work, unless they are in a very advantageous bargaining
73 | position.
74 | {% endcapture %}
75 | {% include quote.html content=quote user="fry" %}
76 |
77 | {% capture quote %}
78 | I applied during the COVID-19 pandemic. My timeline differs
79 | substantially in that I generally found it to be more accelerated. My
80 | phone screens were all Zoom calls and occurred fairly early. My first
81 | real interview was the first week of January.
82 |
83 | I also applied to both teaching and tenure-track positions to be
84 | flexibile with my wife's concurrent tenure-track search. All told, we
85 | each interviewed at more than 15 institutions, most of which overlapped.
86 | We received 5 official joint offers, 3 of which were for tenure-track
87 | positions. We also received 3 more verbal joint tenure-track offers
88 | before ultimately deciding on Vanderbilt.
89 | {% endcapture %}
90 | {% include quote.html content=quote user="kleach" %}
91 |
--------------------------------------------------------------------------------
/_exampleMaterials/cardFiltering.md:
--------------------------------------------------------------------------------
1 |
2 | # Searchable Materials
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Tag Search Type
18 |
22 |
23 | AND
24 | OR
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
Full Application Profiles
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
Title
45 |
Cycle
46 |
47 |
48 |
49 |
52 |
53 |
--------------------------------------------------------------------------------
/_exampleMaterials/contributionGuide.md:
--------------------------------------------------------------------------------
1 | # Comparisons, Nuance, and A Technique
2 |
3 | While these example materials can be helpful, we encourage you to consider them
4 | with care, lest they mislead you. [Wes](/grad-job-guide/about#authors) notes
5 | that most academics suffer from [imposter
6 | syndrome](https://en.wikipedia.org/wiki/Impostor_syndrome). Other job
7 | applicants' materials can easily lead to a mental trap wherein you read them and
8 | think "I have fewer publications than Person A and less teaching experience than
9 | Person B, I'll never get a job!" You may not have noticed that Person A had no
10 | teaching experience, or that Person B, no service contributions. Beware of
11 | comparing your entire self to only the best attributes of others, and remember
12 | that application materials serve to highlight the best, most hirable properties
13 | of a candidate. They effectively never include mistakes, failures or
14 | weaknesses. (Consider Melanie Stefan's notion of a [CV of
15 | Failures](https://www.nature.com/articles/nj7322-467a) as a useful contrast!)
16 |
17 | This page provides neither a random nor indicative sample of applicants, and the
18 | materials are biased towards top-tier outcomes across multiple categories of
19 | positions. These may be the right kinds of jobs for you to consider, but they
20 | also might not be, for your career and personal goals! As a concrete example, Stephanie Forrest
22 | received R1 tenure-track offers from both the University of Michigan and also
23 | the University of Arizona and accepted the offer at Arizona because it was a
24 | better fit for her context.
25 |
26 | In evaluating your own choices and possible outcomes, we encourage you to
27 | consider:
28 | - _Opportunity costs_ relative to the job you're actually seeking.
29 | There is simply not enough time to do everything during your
30 | graduate career. If you are looking for a
31 | teaching-focused position, at a certain point, serving as instructor of record
32 | in a course may be more useful than any number of additional peer-reviewed
33 | publications. Conversely, if you are looking for an industrial research
34 | position, spending a summer or two interning is likely much more useful than
35 | teaching a class. Etc.
36 | - Grounded information about the relationship between department selectivity and general
37 | applicant profile. Leaving aside the
38 | (important) conversation about whether rankings mean anything/are moral/useful,
39 | etc, higher-ranked/"bigger-named" institutions often, on average, expect "more" of
40 | successful faculty applicants.
41 | One way you can get a feeling for this in academia is to go to the
42 | websites of schools you are considering, find recently-hired
43 | faculty, download their CVs/check DBLP, and then _only consider the resume
44 | items and publications they had by the year they were hired_. For example, you
45 | might compare recently-hired faculty at the University of Michigan to
46 | those at the Univeristy of New Mexico to develop a broad sense
47 | of expectations.
48 |
49 | The latter suggestion serves to help you mitigate your imposter syndrome while
50 | giving you the information necessary to make good job search and career choices.
51 | [Wes](/grad-job-guide/about#authors) recommends that applicants seeking
52 | academic jobs sit down (perhaps with their advisors) and determine that "on
53 | average, my record is comparable to people who are hired at schools ranked
54 | XYZ". Then start, as a baseline, by applying to other schools in a
55 | distribution around XYZ, but also include some "safety schools" that may be less
56 | selective, and some "aspirational schools" that may be more selective, plus
57 | schools that are particularly interested in (e.g., are building a center in,
58 | have a history of strength in, etc.) an area that aligns with their expertise.
59 |
60 | {% capture quote %}
61 | This guide originally started as a more internal project with a smaller scope
62 | (e.g., writing down advice we would share with friends
63 | seeking certain types of jobs). It has grown to reach a wider
64 | audience, but some aspects of it (e.g., some of the older materials, some of the
65 | framing and writing) still have that old bias. I recommend that you
66 | not view these materials as
67 | a lower bound when considering your own situation; instead, you should view them
68 | as upper bounds.
69 | {% endcapture %}
70 | {% include quote.html content=quote user="weimer" %}
71 |
72 | # How to Contribute Materials
73 |
74 | We are always looking for more application material profiles, especially for job-types or job-locations that are currently under-represented in our guide.
75 |
76 | If you are interesting in contributing your materials, please fill out our contribution form available [here](https://docs.google.com/forms/d/e/1FAIpQLSdLHwzuCsOcKHNBZBO9LGiWhVZPbcIE5-VpQ5hL8wQcFRAAMQ/viewform?usp=sf_link). This form includes places to upload PDFs of your materials, as well as add any information you'd like to better contextualize your application for readers. In this form, you can also indicate if you'd like to be kept anonymous. All materials are optional -- we greatly appreciate anything you'd be willing to share!
77 |
78 | If you have any questions about contributing, please email Madeline Endres at .
79 |
--------------------------------------------------------------------------------
/_exampleMaterials/overview.md:
--------------------------------------------------------------------------------
1 | # Overview of Materials
2 |
3 | Writing application materials for post-doctoral positions can be challenging.
4 | To help you get started, this page offers a variety of examples and
5 | resources tailored for different types of jobs, including:
6 |
7 | * R1 Tenure-Track Positions
8 | * Liberal Arts Tenure-Track Positions
9 | * Industrial Research Positions
10 |
11 | We provide examples of the main application components, as well as
12 | complete application portfolios. The portfolios are organized by date,
13 | with the newest listed first. Additionally, all materials can be
14 | filtered by key attributes, such as primary research area(s),
15 | dual career situations, and job type. Please consider our
16 | [advice
17 | on nuance when comparing to these materials](#comparisons-nuance-and-a-technique).
18 |
19 |
20 | We thank everyone who contributed their materials to this project. If you
21 | are interested in contributing your materials, please see our
22 | [contribution guide](#how-to-contribute-materials).
23 |
--------------------------------------------------------------------------------
/_includes/dropdown.html:
--------------------------------------------------------------------------------
1 |
14 | {%- endif -%}
15 | {%- endfor -%}
16 |
--------------------------------------------------------------------------------
/_interviewing/phoneScreen.md:
--------------------------------------------------------------------------------
1 | # Phone Screening
2 |
3 | In our experience, about half of institutions will reach out for a phone
4 | screening before inviting you to an in-person interview.
5 |
6 | Most institutions will give you a list of
7 | everyone who will be on the call a few days before the interview. This will
8 | typically include a couple members of the hiring committee.
9 | **If the institution doesn't let you know who is on the call, it is totally
10 | legitimate to email and ask.** Knowing who will be on the call is
11 | important because it allows you to look up their publications and
12 | committee appointments. This can help you formulate thoughtful questions and
13 | demonstrate your interest in the school. For example, if you see
14 | that one of your interviewers is a member of a center you're interested in,
15 | you can ask:
16 |
17 | > "I was looking through your website, and I noticed that you are a member
18 | of **Center X. I am interested in this center because Y**. What has your
19 | experience been with...."
20 |
21 | **We recommend that you have several questions prepared before the interview.**
22 | [Madeline](/grad-job-guide/about#authors) found it helpful to write her questions on a notepad on her computer,
23 | so that she could refer to them if needed.
24 |
25 | In our experience, screenings typically last 20-40 minutes, and are conducted
26 | via video conferencing. You will often start by introducing
27 | yourself and your research (some institutions may ask you to
28 | prepare slides). Then, for the next 10-15 minutes, your interviewers
29 | will ask you questions about your career goals and research. Finally, the last
30 | 5-10 minutes are typically reserved for any questions that you have for the interviewers.
31 |
32 | Perhaps counterintuitively, the goal of a phone screening isn't always just to see
33 | if your research is above bar. *If you've made it to the screening stage, the committee
34 | already likes your application!* Instead, the goal is to determine how well
35 | you can articulate your research in a social setting and assess
36 | whether you would be a good fit for the department.
37 | When a university or a research lab hires a colleague, they
38 | are hiring someone that they might work with for decades; they want to ensure
39 | the person is a good fit for their team and culture.
40 |
41 | Phone screenings are also used by institutions to gauge your genuine
42 | interest in the position and whether you would likely accept an offer if given.
43 | This is especially the case for smaller
44 | institutions that can only afford a limited
45 | number of in-person interviews or that are in less desirable locations that may struggle
46 | to attract new hires. **Before your screening, do your research!** Make sure you know
47 | basic information about the location, and have answers prepared regarding what
48 | excites you about the area and why you applied. You might be surprised
49 | how many candidates fail the interview at this stage. For example, [Madeline](/grad-job-guide/about#authors) was told
50 | that a candidate at UMass Amherst had not passed to the next round
51 | because they indicated that they were excited about living in Boston
52 | (Amherst is two hours west of Boston and is a small town with 30,000 people).
53 |
54 | {% capture quote %}
55 | Out of the six schools that I heard back from in some form, four of them
56 | invited me to a phone screening. For the other two, I was invited directly
57 | to an in-person interview.
58 |
59 | All of my screening interviews were conducted over Zoom, and they were
60 | mostly with two or three members of the hiring committee. The one exception
61 | was my phone screening with Purdue, which included the full hiring committee
62 | on the call. I generally preferred the smaller phone screenings, as I had
63 | fun talking to each interviewer more directly. However, it's good
64 | to be prepared for either format.
65 | {% endcapture %}
66 | {% include quote.html content=quote user="endremad" %}
--------------------------------------------------------------------------------
/_interviewing/questions.md:
--------------------------------------------------------------------------------
1 | # Individual Meeting Questions
2 |
3 | As mentioned [above](#the-different-types-of-interview-meetings),
4 | the majority of your interview will consist of one-on-one sessions
5 | with senior researchers or faculty members you've likely never met before.
6 | Expect the worst-case scenario: you
7 | will have to fill the entire 30-60 minutes yourself by asking questions.
8 | To help, here are some questions (and follow-ups) that at least one of
9 | us has asked during interviews, along with typical responses you might encounter:
10 |
11 | **Questions you can ask:**
12 |
13 | Generally, try to have a set of questions lined up. For two days,
14 | people will repeatedly ask you if you have questions for them. [Claire](/grad-job-guide/about#authors) just
15 | repeated hers when necessary.
16 |
17 | * *What's the funding situation like here?* Have you had good luck with
18 | grants recently? When you were a new faculty member,
19 | did you get much help with grant-writing? Do you know of senior faculty collaborating with junior faculty, for example?
20 |
21 | * *What's your least favorite part about working here?*
22 | Everyone has only great things to say about this place.
23 |
24 | * *What can you tell me about the quality of the graduate students here?*
25 | How did you go about picking your first few grad students? I've heard
26 | rumors that a bad grad student can be a significant drain on a new professor---how
27 | do you avoid that?
28 | * *Answer at schools outside the top 15:*
29 | > The average graduate student here isn't as
30 | good as the average graduate student at Berkeley, so you can't always just take
31 | one from the pool and be assured of getting a winner. However, the best grad
32 | students here are just as good as the best ones anywhere else---it's just that
33 | the tail of the distribution is longer.
34 | * *Answer at schools from 5-15:*
35 | > The students here are great, but we lose our best candidates to Berkeley/MIT/CMU.
36 | * *Answer at schools in the top 5:*
37 | > The students here are stellar.
38 |
39 | * *How important is technology transfer or working with the product
40 | divisions?* What's the funding model here? What happens if I pick something
41 | to work on and no one in development seems to like it? How do I make
42 | contacts with developers? How much academic freedom is there?
43 |
44 | * *What's the tenure process like here?* Can I suggest my own
45 | letter-writers? Are there mid-point reviews? Is there a "magic formula"?
46 | How many people have failed to get tenure in the last 10 to 15 years?
47 | * *Common Research Academia Answer:*
48 | > There's no magic formula. Teaching, research and
49 | service are all important. Officially, you must excel at
50 | two of the three and be adequate in the third. However, you can't
51 | really pick research (or
52 | teaching) as the one to be bad at. Teaching can hurt you---if
53 | your teaching evaluations are below a certain threshold,
54 | you may fail to get tenure. Otherwise, we largely ignore teaching.
55 | The amount of grant money you bring in might be a factor, but we
56 | care more about paper and venue quality than quantity. One or two
57 | journal papers help. Before going up for tenure, you should teach at
58 | least one undergraduate class.
59 |
60 | * Friends of mine who are professors at other universities have *had to
61 | hide their teaching awards when they went up for tenure*. The subtext was
62 | that if you had that much time to be spending on teaching you should have
63 | spent it on research. *What are things like here?*
64 |
65 | * *What's the teaching load?* Does it change after you get tenure? Can you
66 | "buy out" of a class? What does that cost? Who decides what you teach?
67 |
68 | * *What's it like being a new single/married faculty member here?* How did
69 | you make friends when you first came to the area? Was it easy to find
70 | things to do?
71 |
72 | * *Are the faculty young or old?* Is the university structured and
73 | hierarchical? Do decisions come down from on high? How much power do young
74 | faculty members have? How much do young faculty shoulder the service/teaching load?
75 |
76 | * *What's it like to live here?* How long is your commute?
77 |
78 | * *What's the worst example of office politics you've run into here?* What
79 | do people fight over?
80 | * *Common Answer:*
81 | > We're very collegial. We don't really have office politics.
82 | No one gets mad at anyone else. We sometimes squabble over space.
83 |
84 | * *What's the general view on (your research area) here?*
85 | Is it a second-class citizen? Is theory emphasized? Practice? Building big systems? Is the department planning to grow the area beyond this hire?
86 |
87 | **Questions they may ask you:**
88 |
89 | You should also be prepared to answer questions that interviewers might
90 | ask you during these individual meetings. Here are some examples:
91 |
92 | * Tell me how your interests are aligned with some of the faculty here.
93 | Who could you work with?
94 | * This was by far the most common question. We encourage you to write
95 | down in an obvious place (e.g., at the top of your notebook) the name
96 | of anyone you think you could collaborate with so that you can answer
97 | this question intelligently.
98 |
99 | * *Are you married? Do you have a two-body problem?*
100 | * See below on the [two-body problem](#dual-career-couples).
101 |
102 | * *What will your CAREER proposal be about?*
103 |
104 | * *What will your first student's Ph.D. topic be?* How many students do you plan to have?
105 |
106 | * *What courses would you be willing to teach?* Are you interested in
107 | creating new courses?
108 |
109 | * *How will you divide your time between research, teaching and service?*
110 |
111 | * *Where will you get most of your funding?* The NSF? Other government agencies?
112 | Corporate funding?
113 |
114 | * What sort of research will you be doing in the future?
115 | * This is also a very common question. Nominally your job talk will have
116 | addressed this, but they may ask again in a more general sense---do you think
117 | you'll be in (your research area) forever, or do you see yourself
118 | shifting to (another area)? Take this opportunity to distance yourself from
119 | your advisor---you want to argue that you can pursue your own work
120 | for tenure. In [Claire](/grad-job-guide/about#authors)'s experience, the more prestigious the institution, the
121 | more emphasis they give to this sort of question, sometimes phrased explicitly
122 | as *"What do you envision your tenure case looking like?"*
123 |
124 |
125 | **Several of these questions are secretly trying to determine if you know how a
126 | faculty job works**, especially regarding the aspects to which
127 | graduate students are not always exposed. For example, *"have you considered
128 | funding sources for your work?"* is mostly an attempt to determine if you have
129 | have any idea how the grant system works.
130 |
131 | [Wes](/grad-job-guide/about#authors) typically used up almost all of the time asking questions of the other
132 | person. Remember, you are there to interview them as well. Moreover,
133 | there are candidates who can't keep a conversation going after the first
134 | five minutes, which is the kiss of (awkward) death ([Claire](/grad-job-guide/about#authors) heard this from
135 | people interviewing her in several departments). You want to convince your
136 | potential colleagues that you are someone they wouldn't mind working
137 | with or sharing a hallway with. Being able to hold a reasonable
138 | conversation for 30 minutes is a good start.
139 |
140 |
141 | {% capture quote %}
142 | From my perspective on the other side, I will echo the above and say, having
143 | some questions/being able to hold a conversation is a genuinely good thing.
144 | _However_, please make sure to let your interviewers get a word in edgewise. A
145 | candidate who _never_ lets an interviewer ask a question can frustrate a search committee.
146 | {% endcapture %}
147 | {% include quote.html content=quote user="legoues" %}
148 |
149 | {% capture quote %}
150 | I would first note that for any type of interview, having looked up the people
151 | on your schedule and noted at least some work they've done recently goes a long
152 | way in the one-on-one interviews. Many people seemed genuinely surprised when I
153 | brought up a recent paper and had questions and comments about it.
154 | Additionally, I cannot speak to the types of questions asked in academic job
155 | interviews, but I was somewhat surprised at the number and range of technical
156 | questions asked of me during interviews. Studying up on common interview topics
157 | (theory and algorithms, mostly) will only benefit you in the regard.
158 | {% endcapture %}
159 | {% include quote.html content=quote user="fry" %}
160 |
161 |
162 | {% capture quote %}
163 | I have two thoughts here:
164 |
165 | First, as I applied during COVID-19, it was
166 | easy enough to keep a spreadsheet of topics to talk about with each
167 | interviewer off to the side in another window during my Zoom calls.
168 | I found this totally necessary because I noticed that most of my
169 | interview questions were some variant of "do you have questions for me?"
170 |
171 | Secondly, and this may not translate post-COVID, but I encourage saving time in each
172 | interview to ask about life in the city in which the institution is
173 | located. You can pick up on tips (or red flags) about the city and what
174 | to avoid (e.g., if you are trying to minimize commute time).
175 | {% endcapture %}
176 | {% include quote.html content=quote user="kleach" %}
177 |
--------------------------------------------------------------------------------
/_interviewing/talk.md:
--------------------------------------------------------------------------------
1 | # Preparing Your Job Talk
2 |
3 | If you are applying for Research Academia or Industrial Research positions,
4 | you will likely be asked to give a presentation on your research for
5 | around 50 minutes.
6 |
7 | **Structuring Your Job Talk:** The general structure and content of a job
8 | talk can be easily found through a quick Google search
9 | (e.g., "academic job talk, computer science, structure").
10 |
11 | If you are lucky enough to be at a department that hires
12 | regularly, attend all the talks in the year before you go on the market,
13 | *especially* the ones outside your field.
14 | Take notes on how much introductory material, related work, detailed material,
15 | and future work are presented. Then, forget about it for nine months until you
16 | have to craft your own. In general, your job talk will discuss two to three
17 | papers that you worked on in grad school, connected into an overall narrative.
18 | You'll also want to include a future work section.
19 |
20 | Although the average time is "fifty minutes for the talk and ten minutes for
21 | questions", different places will have different time requirements. At one stop,
22 | [Wes](/grad-job-guide/about#authors) was asked to fit the entire thing into 50 minutes. At another, he had 75
23 | minutes. [Claire](/grad-job-guide/about#authors) found a similar spread. Prepare your talk in a modular manner
24 | so that you can add or remove sections. Bonus points if you can do
25 | this on the fly---frequent interruptions are common and can consume a lot
26 | of time. Try to avoid giving lengthy answers to questions posed in the middle
27 | of your talk (answer the question, but be succinct). At one venue, [Wes](/grad-job-guide/about#authors) actually
28 | had audio-visual difficulties that delayed (and
29 | thus shortened) his talk by ten minutes (!). [Claire](/grad-job-guide/about#authors) recommends traveling with your
30 | own laptop and VGA/HDMI/USB-C adapter to defend against such hassles. The exception is the
31 | FFRDCs (like Lincoln Labs), where defense department rules will require you to
32 | email your slides as PDFs ahead of time.
33 |
34 | [Claire](/grad-job-guide/about#authors) changed her talk modestly between interviews. Moving things around a bit
35 | between presentations helped keep the talk fresh. After you've done it a few
36 | times, the jokes become very unfunny to you. Do what you can to avoid boring
37 | yourself.
38 |
39 | {% capture quote %}
40 | **Being able to adjust your timing on the fly during your job talk is really helpful**.
41 |
42 | My talk was divided into three main sections, and I paused briefly for
43 | questions after each one. The number of questions varied between schools,
44 | so having a "short version" and a "long version" of a couple of slides
45 | helped me always finish my talk on time.
46 |
47 | Additionally, most schools will give you about 30 minutes before the
48 | talk to check the audio-visual setup. **I recommend that you try and
49 | arrive at the room early during this time. It's better to be ready ahead
50 | of schedule than to risk running late.** I brought my own laptop and
51 | adapter to all my interviews. However, the setup varied from school
52 | to school due to different recording systems. For example, some
53 | schools asked me to share my screen via Zoom, while others used an
54 | integrated room system. At one school, it took almost 25 minutes to
55 | get everything working.
56 | {% endcapture %}
57 | {% include quote.html content=quote user="endremad" %}
58 |
59 |
60 | **Practice, Practice, Practice!** Make sure that you schedule a practice
61 | job talk of some sort, even if only with your
62 | local research group. Everyone there will be able to give you advice on it. Make
63 | sure that people who are not in your field or office come to your practice
64 | talk. During your actual job talks, at most one or two other people
65 | will be from your field. The rest of the room will be made up of people from
66 | other domains within computer science. Besides, the people in your subfield are
67 | probably the reason you're being interviewed; people outside your subfield need
68 | to be convinced. The exception to this is industry. In large industrial
69 | research labs, you will basically only present to people in your
70 | general area.
71 |
72 | If possible, also try to do a dry run at a school to which you're not applying. For example, [Claire](/grad-job-guide/about#authors) gave a colloquium talk at Virginia Tech about three months before
73 | submitting her applications. It wasn't nearly so intense as a real interview, and it was nice to practice the talk with an unfamiliar audience before doing it for real.
74 |
75 | **The "One-Third Rule":** A common piece of advice suggests that one-third of your talk should
76 | be understood by everyone in the room, one-third should be understood by
77 | people in your general area (e.g., graphics, programming languages,
78 | systems) and one-third should be understood "only by you". However, this advice is
79 | a bit controversial.
80 |
81 | The trick here is that your job talk must serve many purposes. It must
82 | convince them that you are a good lecturer (i.e., the talk must be engaging
83 | and speak to your teaching abilities). It will also be their first exposure
84 | to your work (as above, many people will be reading you resume at the
85 | beginning of your interview -- unless you're at a small department, don't
86 | expect anyone beyond your host to know anything about you or your work
87 | unless you say it to them) and must help to convince them that your
88 | research has substance. This point is actually somewhat tricky, because if
89 | they asked you for an interview they probably already believe your work is
90 | good enough (based on you resume, letters, and the local evaluation of the
91 | department members closest to your subfield).
92 |
93 | It is our *personal opinion*
94 | that basically the entire talk should be understandable to everyone in the room.
95 | Motivation is key. Remind people of why your research area is worth considering.
96 | As a random example, a tenured AI professor
97 | may well think that "compilers are a solved problem". It won't hurt
98 | to remind such a person that your work is exciting. [Claire](/grad-job-guide/about#authors)
99 | often used the phrase:
100 | > "This is really exciting because..."
101 |
102 | to help her audience roadmap key contributions. Keeping everyone interested will help to convince
103 | them of you teaching potential. In addition, if people cannot understand your
104 | talk they have no way to spot potential collaborations.
105 |
106 | Most of us designed our job talks to be easily understood by everyone (heavy on motivation, context,
107 | analogies and pictures). [Claire](/grad-job-guide/about#authors), [Wes](/grad-job-guide/about#authors), and [Madeline](/grad-job-guide/about#authors) all received comments about
108 | how understandable they were, and we also got quite a few offers for
109 | collaboration based on them (e.g., graphics and database people were able to see
110 | possible fits, not just PL/SE people). The exception here is for industrial research
111 | (e.g., Microsoft, IBM): if your audience is be more closely aligned to your research
112 | area, you can
113 | sometimes skimp on motivation. However, including it anyways
114 | probably won't count against you (because they explicitly mention that they
115 | realize that no one prepares two job talks, and that they know that the intro is appropriate in
116 | academia) but you can possibly earn bonus points by tailoring your talk to those
117 | audiences.
118 |
119 | [Wes](/grad-job-guide/about#authors) specifically asked people after his
120 | talk if the lack of "Greek letters" or "complicated-looking material" hurt his
121 | case. Typical responses included *"it wasn't a problem because were able to see
122 | how intelligently you handled yourself when answering the questions"* or *"it was
123 | fine because we already know how good your work is"* or *"no, not at all."*
124 | However, [Claire](/grad-job-guide/about#authors) was advised of the 1/3-1/3-1/3 rule many times throughout her
125 | job search. Thus we cannot give you a blanket guarantee that following our
126 | approach won't hurt your employability. **We were willing to take that risk to
127 | stand up for something we believed in. We encourage you to consider it
128 | carefully.**
129 |
130 | # Preparing Your Teaching Talk
131 |
132 | If you are interviewing for a teaching-focused position, you will likely
133 | be asked to give an example undergraduate lecture instead of (or sometimes in addition to) a research-focused job talk.
134 |
135 | Unlike with a Research Job Talk, the topic and time limit of a teaching talk
136 | can vary widely between schools. Some might ask for a lecture on a specific
137 | topic, while others leave it up to you. You may not be able to use the
138 | same lecture topic at all of your interviews.
139 |
140 | While most common for teaching-focused positions, even for a research faculty position,
141 | some schools will ask you to
142 | prepare either a short commentary on your teaching style (in 2013, Iowa State
143 | requested 10 minutes of the job talk be dedicated to teaching), or an actual
144 | teaching demo (Waterloo requested a 20-30 minute example lecture, given
145 | separately from the job talk). [Claire](/grad-job-guide/about#authors) advises you to not skimp on
146 | teaching demo preparation. It can make a big difference in helping you stand
147 | out from the crowd, the rest of which probably did skimp.
148 |
149 | {% capture quote %}
150 | I found the research talks to be fairly standard, but the teaching-track
151 | talks were all unique and required significantly more prep. Some
152 | institutions required a talk about a pre-selected topic. Others let you
153 | pick your own. One required submitting a recording. All of them had
154 | different timing requirements (from 25 minutes to 90 minutes). Some had students present.
155 | Some schools wanted active learning, others wanted standard slides.
156 | As a result, it was more difficult to incorporate everyone's feedback.
157 | Part of this may have been reaction to the pandemic, but
158 | I tend to believe teaching-track faculty talks are more
159 | difficult to prepare for than tenure-track research talks.
160 | {% endcapture %}
161 | {% include quote.html content=quote user="kleach" %}
162 |
--------------------------------------------------------------------------------
/_interviewing/twobody.md:
--------------------------------------------------------------------------------
1 | # Dual-Career Couples
2 |
3 | *In this section, we talk about strategies for dual-career couples, and if
4 | you should disclose your partnered status.*
5 | The advice in this section applies to both regular dual-career couples and those
6 | facing the actual *academic two-body problem*.
7 |
8 | For context, [Wes](/grad-job-guide/about#authors) and
9 | [Kevin Angstadt](/grad-job-guide/about#authors)
10 | were single when they were on the market; [Claire](/grad-job-guide/about#authors)
11 | and [Hammad](/grad-job-guide/about#authors)
12 | had partners who were
13 | planning to move with them and find a job in the software industry; [Kevin Leach](/grad-job-guide/about#authors)
14 | and Yu were partners seeking academic positions together in
15 | the same department (the traditional two-body problem);
16 | [Madeline](/grad-job-guide/about#authors) had a partner who wanted to be in a location where
17 | they could pursue their career in the arts. [Wes](/grad-job-guide/about#authors), [Kevin Leach](/grad-job-guide/about#authors), and [Yu](/grad-job-guide/about#authors)
18 | mentioned their relationship statuses in their cover letters;
19 | [Claire](/grad-job-guide/about#authors), [Madeline](/grad-job-guide/about#authors)
20 | and
21 | [Hammad](/grad-job-guide/about#authors)
22 | did not.
23 |
24 | You may be asked about your marital or relationship status during your
25 | interviews, though [Claire](/grad-job-guide/about#authors) never was, and believes that interviewers have become more attuned to this issue in general (especially with candidates who present as female). Regardless,
26 | the question is illegal.
27 |
28 | {% capture quote %}
29 | Everyone will want to know. I put it at the top of my CV and I am
30 | fairly sure my marital status was mentioned in at least one of my
31 | letters. We did not want any confusion over what we wanted together.
32 |
33 | The risk I see with revealing this status is that you will have
34 | institutions reject you outright because they simply cannot hire two
35 | people at once. In that regard, it may give one body less negotiating
36 | power later with institutions that do make offers together. *However*,
37 | I believe the flip side is that institutions interested in helping you
38 | resolve your dual-career issue will be receptive if you mention it
39 | outright (e.g., they will move more quickly if one body has a deadline).
40 | It also made other discussions easier later (scheduling
41 | interviews, and negotiating salary and startup).
42 | {% endcapture %}
43 | {% include quote.html content=quote user="kleach" %}
44 |
45 | {% capture quote %}
46 | *Everyone may ask anyway* (even if you have put the answer
47 | explicitly on the front of your resume). Just deal with it. I have at least two
48 | data points of people being put in very awkward positions here (one was loosely
49 | "we have a lot of great women on campus and if you can't find someone within a
50 | few years there's something wrong with you" and the other was loosely "what's
51 | you religion and sexual orientation?"). Have a nice way to back out of such
52 | conversational cul-de-sacs. If you are asked anything more intrusive than "are
53 | you married?" feel free to mention it to your host. It's better to point this
54 | out to someone who likes you than to have the evil questioner's possibly
55 | negative opinion of you hurt your chances.
56 | {% endcapture %}
57 | {% include quote.html content=quote user="weimer" %}
58 |
59 | {% capture quote %}
60 | *Everyone really wants to know and you should
61 | almost certainly tell them.* During my interviews, I would
62 | find a way to drop my partner's existence and job ambitions into an early
63 | conversation. *In every case*, I was met with a relieved "Oh I'm so glad
64 | you told me that because we really want to know and we can't ask." I strongly
65 | encourage you to be open and honest about any two-body or dual-career situation
66 | you may have. The sooner a department knows about your partner's job needs, the
67 | more likely it is that they can find something for your partner in time to
68 | convince you that accepting the position is beneficial for you and your family.
69 | There is a school of thought that one should wait until one knows a department
70 | is interested before divulging a two-body situation. However, I have seen this
71 | backfire for other couples more than once, at multiple places, in that by the time an offer is on
72 | the table, it is too late to arrange for an interview with another department.
73 | This is obviously a bigger problem if your partner is also in academia.
74 |
75 | I freely admit that I am lucky in that my spouse has made very portable career
76 | choices. That said, I was extremely upfront about my partner and his job
77 | aspirations, and departments that made me offers simultaneously made connections
78 | for him at local companies. He even did some onsite interviews during second
79 | visits.
80 |
81 | The interview process is a giant two-party courtship exercise in which the
82 | interviewee is trying to convince the department to make a job offer, and the
83 | interviewer is trying to convince the interviewee that the department/location
84 | is the ideal place to live/work. As such, a legitimate department at which you
85 | want to work should fall over backwards to convince you that they can get your
86 | spouse/partner a job. Anecdotal example: The dean at UIUC opened his meeting
87 | with me by saying "I am not interested in your family circumstances, and it
88 | would be inappropriate and illegal for me to ask you about them. However, I
89 | would like to share with you unprompted all of UIUC's policies regarding
90 | dual-career couples..."
91 |
92 | Look at it this way: The only reason not to be up front about this issue is that
93 | you are worried that doing so will hurt your job prospects. However, if a
94 | department (illegally) decides not to hire you because your spouse needs a job,
95 | you probably would not have gone there anyway, because
96 | *your spouse would not have had a job in time for the decision to be
97 | reasonable.* Moreover, and I freely admit that this statement arises from my
98 | privileged position of working in an academic field that is, by and large,
99 | hiring: I personally do not want to work with people who will not hire me
100 | because I am in a romantic partnership or because I have or may one day have
101 | family obligations. If anyone decided not to interview me or offer me a
102 | position for these reasons, they would have saved me the trouble of having to
103 | uncover their misogyny some other way.
104 | {% endcapture %}
105 | {% include quote.html content=quote user="legoues" %}
106 |
107 | {% capture quote %}
108 | I pre-filtered the schools that I applied to based on location constraints for
109 | both me and my partner (a classical music composer). However, some locations
110 | were still better on paper than others.
111 |
112 | As a result, I also tried to drop my partner into conversations at schools.
113 | When I mentioned that he was a composer,
114 | interviewers at every school offered to put me in contact with
115 | local musical contacts. From these connections, my partner and I were able to better
116 | understanding of the musical environment around each school.
117 |
118 | *If you are planning to relocate with a partner, I highly recommend that you ask
119 | about opportunities and support during your interview.*
120 | {% endcapture %}
121 | {% include quote.html content=quote user="endremad" %}
122 |
123 | {% capture quote %}
124 | On the topic of being honest about things and covering somewhat personal topics,
125 | I feel as though I should mention that coming across like a real person is
126 | helpful in a heavily technical field like ours. While I may be biased, as I
127 | felt like I came from a somewhat less-strong technical foundation, I found that
128 | people genuinely appreciated me trying to make idle conversation and be
129 | personable. There are plenty of tips in, for instance, the business world about
130 | being personable, but I think people in all industries look for potential
131 | employees that they think they could work with every day on a personal level.
132 | {% endcapture %}
133 | {% include quote.html content=quote user="fry" %}
134 |
135 | One final note on partners and jobs: emigrating to Canada with a partner appears
136 | to be pretty trivial, based on [Claire](/grad-job-guide/about#authors)'s (serious) conversations with Waterloo on
137 | the subject. The Canadian immigration system remains straightforward, at least compared to
138 | the US, and their HR departments are practiced in
139 | providing support for the process.
140 |
141 | Now that you've finished your interviews, it's time to [make a decision](/grad-job-guide/deciding)
142 | and accept an offer.
143 |
--------------------------------------------------------------------------------
/_jobs/subfields.md:
--------------------------------------------------------------------------------
1 | # Academic Positions: Research Area and Where to Apply
2 |
3 | Academic job postings may or may not be research-area specific.
4 | Most academic job ads use similar boilerplate language:
5 |
6 | > "We encourage all qualified applicants from all
7 | > areas of computer science to apply, we are an equal-opportunity employer...".
8 |
9 |
10 | **However, the specific focus of a department's search can greatly influence your
11 | chances.** Below, we break down the two primary types of job ads and
12 | how to interpret them.
13 |
14 | 1. **Specific Focus Areas**: Some job postings explicitly state the areas of interest,
15 | such as compilers or data mining. If your research aligns with these areas,
16 | you have a stronger chance of being considered. If not, it may be difficult to secure
17 | an interview. Here are a couple of examples:
18 |
19 | - From Purdue's 2005 search:
20 | > "The Department of Computer Sciences at Purdue University invites
21 | applications for tenure-track positions beginning August 2005. Positions
22 | are available at the Assistant Professor level; senior positions will be
23 | considered for highly qualified applicants. Applications from outstanding
24 | candidates in all areas of computer science will be considered. **Of
25 | particular interest are candidates in the areas of programming languages
26 | and compilers, software engineering, operating systems, data mining, and
27 | bioinformatics.**"
28 |
29 | - From Yale's 2024 search:
30 | > "The Yale Computer Science Department
31 | continues to invite applications for multiple tenure-track faculty positions to start in
32 | the 2024-2025 academic year. **For this year’s search, we are interested in candidates working
33 | in the areas of (1) AI and Trustworthy Computing or (2) Programming Languages.** With recent
34 | explosive growth of large-language-model based technologies such as ChatGPT, we are
35 | particularly interested in candidates who can take on the leadership role and help shape the
36 | research and education impact of AI for the rest of the University.
37 | Qualified applicants in computer science are invited to apply.
38 |
39 | 2. **General Calls**: Other ads may list a broad range of departmental strengths, leaving you with
40 | little specific information about what areas they are truly hiring for.
41 |
46 |
47 | - From UVA's 2005 search:
48 | > The University of Virginia... offers baccalaureate, master,
49 | and doctoral degrees in Computer Science
50 | and Computer Engineering. The department is undergoing significant growth
51 | and programmatic evolution and aims to be one of the top departments in
52 | experimental systems research and the leading institution in
53 | undergraduate computer science education. **Its existing strengths include
54 | algorithms, architecture, compilers, distributed systems, graphics, grid
55 | computing, mobile computing, networks, operating systems, programming
56 | environments, real-time and embedded systems, security, sensor networks,
57 | and software engineering.**
58 |
59 | Despite the general phrasing, *most schools with this type of posting have an
60 | internal area-related priority for hiring*. However,
61 | unless you have a contact at the school, it can be difficult to know if they are hiring in
62 | your specific subfield.
63 |
64 |
65 | **Overall, we recommend prioritizing schools with job postings that match your
66 | research area.** Regarding general calls, we recommend applying only if the
67 | school aligns well with your career goals and personal preferences.
68 |
69 | **One notable exception to this rule is "top 10" schools.** Such programs
70 | (especially the very large ones) often have multiple hiring lines, and may
71 | hire candidates they find exceptional, regardless of research area.
72 | *Thus, even if their calls are open, it's probably worth applying, because
73 | you never know.* For example, CMU's School of Computer Science is large,
74 | with multiple departments. Their job ads are typically very general, and
75 | applications are routed based on the area to relevant departments. [Claire](/grad-job-guide/about#authors)
76 | actually asked [Wes](/grad-job-guide/about#authors) if it was even worth sending in an application as "it wasn't
77 | going to happen." He insisted she apply, which is funny in retrospect. She believes
78 | that her sincere belief that she wouldn't receive an offer from CMU helped during
79 | the interview, because she wasn't especially nervous or stressed about messing up.
80 |
81 | {% capture quote %}
82 | With one exception, all of my interviews were at schools that were either explicitly hiring in Software Engineering,
83 | or had historical strength in the area.
84 |
85 | The exception was a top public research institution in the U.S.. While the call was general, at my interview,
86 | the department chair told me that software engineering wasn't a designated priority my year.
87 | *However, he also told me that they reserve about half of their interview spots for exceptional
88 | candidates, regardless of their specific research subfield.*
89 |
90 | In my opinion, if a school that you'd really like to go to doesn't explicitly
91 | list your area as a priority,
92 | it can still be worth applying if you believe you're a strong candidate. However, I would still
93 | prioritize calls that explicitly mention your research area.
94 | {% endcapture %}
95 | {% include quote.html content=quote user="endremad" %}
96 |
97 |
98 | {% capture quote %}
99 | It is my *personal opinion* that as a software engineering
100 | researcher, where you apply can matter a great deal. It is "accepted wisdom" in
101 | the community that SE researchers do not receive invitations to interview for
102 | open job calls that do not mention SE (or possibly PL). By and large, I
103 | observed this to be true. All but maybe two of my interviews were at places
104 | that listed SE or PL in their job ads explicitly. One of the exceptions was
105 | Waterloo, which has a long and storied software engineering tradition (as do
106 | most Canadian institutions).
107 |
108 | To generalize, I would encourage you to apply to places that you have
109 | reason to believe are interested in your research area, either based on
110 | word-of-mouth or the job ad copy itself. Examples: in 2012, NC State had an
111 | established SE faculty leave for another position, while UIUC had an established
112 | SE faculty retire. Both specifically mentioned SE in their 2013 ads. I
113 | did apply to a few places with "open calls" based on location (and I would
114 | encourage you to do the same), but it mostly didn't pan out.
115 |
116 | One more somewhat editorial note: there's typically a subfield that's "hot" in a
117 | given hiring year, such as big data or health care informatics in 2013. Please
118 | don't pretend to do these things if you don't. It's tacky and
119 | obvious.
120 | {% endcapture %}
121 | {% include quote.html content=quote user="legoues" %}
122 |
123 |
124 | The job search process can be challenging, but by taking it step by step, you can find the right
125 | fit for your career goals. Now that you know what jobs exist and when and where to apply, the
126 | next step is to [write and compile
127 | your application portfolio](/grad-job-guide/applying).
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 | {% include header.html %}
8 |
9 | {%- if page.title -%}
10 |
11 |
12 |
{{ page.title }}
13 | {%- if page.description -%}
14 |
15 | {{ page.description }}
16 |
17 | {%- endif -%}
18 |
19 |
20 | {%- endif -%}
21 |
22 |
23 |
24 |
25 |
26 |
27 |
34 |
35 |
36 | {{ content }}
37 |
38 |
39 |
40 |
41 |
42 |
43 | {% include footer.html %}
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/_misc/misc.md:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 |
3 | We list here tidbits, advice, high-level observations, or trivia that, for whatever reason, we couldn't find a place for elsewhere.
4 |
5 | Statistics:
6 | - We recommend that you read the CRA Taulbee survey. It's also tremendously useful as you progress through faculty life. About halfway through, it lists salary averages across a variety of department types.
7 | - The University of Michigan's Computer Science and Engineering division publishes faculty search statistics in its annual DEI Reports. You can find them on the web. For example:
8 | > [In Academic Year 2023-2024] CSE received 591 applications for faculty positions, of which 562 were for tenure-track positions and 29 were for teaching faculty positions. ... We invited 38 of those 591 applicants (6%) to interview. ... CSE extended job offers to 15 candidates.
9 | - And:
10 | > [In Academic Year 2022-2023] CSE received 442 applications for faculty positions ... We invited 44 of those 442 applicants (10%) to interview. ... CSE extended job offers to 27 candidates.
11 | - The Michigan CSE DEI reports also contain demographic information (not reproduced here) and go back a few more years.
12 | - For a more historical perspective, in 2005 Purdue received 380 applicants for 3 job spots in CS and held 14
13 | interviews. In programming languages alone they received 20 applicants and held
14 | 6-7 interviews for one spot. In 2005 Virginia received 457 applicants for 4
15 | faculty positions.
16 |
17 | Other Advice:
18 | - This is easily one of the top three pieces of job search advice Claire was
19 | given: Collude with other people in your field on the market, if you can.
20 | The departments are colluding; you should too. You can even share details about
21 | the offers, which keeps things in perspective. Also, it's a really long/tiring
22 | process, so it's nice to have someone to commiserate with. At first you may
23 | resist, mistakenly believing that you are in competition with these people and
24 | that it is weird. In our opinion, this is not the correct conclusion.
25 | Making friends at this stage can be quite good.
26 | - Many people will tell you that if all else fails, use rankings to break
27 | ties. Better ranked schools will have better grad students and will find it
28 | easier to get grant money. One problem with this is that different people
29 | remember the rankings differently. Whenever you ask someone for advice, ask
30 | for a relative ranking of your schools. You'll be surprised at how many
31 | complete inversions you receive.
32 | - A personal recommendation or inside champion can be a great boost and can
33 | help in case of a tie. If you are trying to end up at school X and you know
34 | someone at Y who is friend with someone at X, having Y reach out
35 | and briefly mention you positively to X won't hurt you.
36 |
37 |
--------------------------------------------------------------------------------
/_sass/_cards.scss:
--------------------------------------------------------------------------------
1 | .card {
2 | display: flex;
3 | flex-direction: column;
4 | justify-content: space-between;
5 | height: 100%;
6 | box-sizing: border-box; /* Ensures padding is included in the width */
7 | }
8 |
9 | .card-section {
10 | flex-grow: 1;
11 | }
12 |
13 | .more-button-container {
14 | display: flex;
15 | justify-content: flex-end;
16 | flex-wrap: wrap;
17 | margin-top: 0px;
18 | margin-right: 10px;
19 | margin-bottom: 0px;
20 | font-size: 0.7em;
21 |
22 | }
23 |
24 | .cell {
25 | padding-bottom: 15px;
26 | }
27 |
28 | .thumbnail {
29 | width: 50%;
30 | margin-right: auto;
31 | margin-left: auto;
32 | margin-top: 10px;
33 | margin-bottom: 0;
34 |
35 | align-items: center;
36 | border: none;
37 | }
38 |
39 | .smallheadshot {
40 | width: 30%;
41 | margin-right: auto;
42 | margin-left: auto;
43 | margin-top: 10px;
44 | margin-bottom: 10px;
45 | align-items: center;
46 | border: none;
47 |
48 | }
49 |
50 |
51 | /* Ensure the modal and overlay do not affect the background */
52 | .reveal-overlay {
53 | z-index: 9999; /* Ensure the overlay is above other content */
54 | overflow: hidden;
55 | }
56 |
57 | .reveal {
58 | z-index: 10000; /* Ensure the modal is above the overlay */
59 | /*top: 0 !important; Prevent manual top adjustments */
60 | }
61 |
62 | /* Ensure the body and html do not shift when the modal is open */
63 | html.is-reveal-open {
64 | //overflow: hidden;
65 | //position: fixed;
66 | }
67 |
68 | html.is-reveal-open, body.is-reveal-open {
69 | overflow: hidden;
70 | /*position: fixed; Def not workable*/
71 | width: 100%;
72 | }
--------------------------------------------------------------------------------
/_sass/_linkCell.scss:
--------------------------------------------------------------------------------
1 | .link-cell {
2 | font-size: 0.875rem; /* Smaller font size */
3 | margin: 0; /* Remove margin */
4 | padding: 5px 0; /* Reduce padding to decrease white space */
5 | line-height: 1.2; /* Adjust line height for less vertical space */
6 | }
7 |
8 | .link-cell a {
9 | color: #007BFF; /* change link color */
10 | text-decoration: none; /* remove underline from links */
11 | }
12 |
13 | .link-cell a:hover {
14 | text-decoration: underline; /* add underline on hover */
15 | }
--------------------------------------------------------------------------------
/_sass/_navBar.scss:
--------------------------------------------------------------------------------
1 | .navbar-brand {
2 | font-size: 1.8vw;
3 | max-width: 100%; /* Ensure it doesn't overflow */
4 | white-space: normal;
5 | display: flex;
6 | align-items: center;
7 | margin-right: 0px;
8 | }
9 |
10 | .navbar-brand span {
11 | font-size: calc(0.8em + 0.8vw); /* Dynamic size with a base of 1em plus viewport width */
12 | max-width: 100%;
13 | display: inline-block;
14 | }
15 |
16 | .navbar-brand img {
17 | max-height: 60px;
18 | height: auto; /* Ensure the logo scales with the font */
19 | margin-right: 5px; /* Adjust the spacing between logo and text */
20 | max-width: 100%; /* Ensure it doesn't overflow */
21 | display: flex;
22 | }
23 |
24 | @media (max-width: 680px) {
25 | .navbar-brand {
26 | font-size: 1.2em; /* Adjust for very small screens */
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/_sass/_quotes.scss:
--------------------------------------------------------------------------------
1 | .thumb {
2 | object-fit:scale-down;
3 | object-position: center;
4 | max-width: 60px;
5 | max-height: 60px;
6 | margin-bottom: 1rem;
7 | }
8 |
9 | // .chat .chat-history {
10 | // padding: 30px 30px 20px;
11 | // border-bottom: 2px solid white;
12 | // }
13 | .chat .chat-history .message-data {
14 | margin-bottom: 15px;
15 | }
16 | .chat .chat-history .message-data-time {
17 | color: #a8aab1;
18 | padding-left: 6px;
19 | }
20 | .chat .chat-history .message {
21 | color: white;
22 | padding: 18px 20px;
23 | line-height: 26px;
24 | font-size: 16px;
25 | border-radius: 5px;
26 | margin-bottom: 30px;
27 | width: 90%;
28 | position: relative;
29 | }
30 | .chat .chat-history .message:after {
31 | content: "";
32 | position: absolute;
33 | top: -15px;
34 | left: 20px;
35 | border-width: 0 15px 15px;
36 | border-style: solid;
37 | border-color: #CCDBDC transparent;
38 | display: block;
39 | width: 0;
40 | }
41 | .chat .chat-history .you-message {
42 | background: #CCDBDC;
43 | color:#003366;
44 | }
45 |
46 | .chat .chat-message {
47 | padding: 30px;
48 | }
49 | .chat .chat-message .fa-file-o, .chat .chat-message .fa-file-image-o {
50 | font-size: 16px;
51 | color: gray;
52 | cursor: pointer;
53 | }
54 |
55 | .chat-ul li{
56 | list-style-type: none;
57 | }
58 |
59 | .align-left {
60 | text-align: left;
61 | }
62 |
63 | .align-right {
64 | text-align: right;
65 | }
66 |
67 | .message a {
68 | color: white;
69 | text-decoration: underline;
70 | }
71 |
72 | .message a:hover {
73 | color: lightblue;
74 | text-decoration: underline;
75 | }
76 |
77 | .message-data-flex {
78 | display: flex;
79 | align-items: center;
80 | gap: 10px;
81 | justify-content: flex-end; /* Aligns the content to the right */
82 | }
83 |
84 | .message-data-info {
85 | background-color: #3b3b3b; /* Or any other color you prefer */
86 | padding: 5px 10px;
87 | border-radius: 4px;
88 | color: white;
89 | flex: 0 0 auto; /* Prevents the box from growing beyond the text width */
90 | max-width: 80%; /* Ensures it doesn't exceed the container width */
91 | margin-right: 10px; /* Adds space between the text box and the avatar */
92 | }
93 |
94 | .thumb {
95 | max-height: 70px;
96 | border-radius: 50%;
97 | flex-shrink: 0;
98 | }
99 |
--------------------------------------------------------------------------------
/_sass/_searchToggle.scss:
--------------------------------------------------------------------------------
1 | .toggle-container {
2 | display: flex;
3 | flex-direction: column;
4 | align-items: center;
5 | margin-left: 10px;
6 | }
7 |
8 | .toggle-label {
9 | margin-bottom: 5px;
10 | font-weight: bold;
11 | }
12 |
13 | .switch {
14 | position: relative;
15 | display: block;
16 | width: 80px;
17 | height: 24px; /* Adjust height for the slider bar */
18 | margin-bottom: 20px; /* Add some space between the slider and labels */
19 | margin-top: -20px; /* Add some space between the slider and labels */
20 |
21 | }
22 |
23 | .switch input {
24 | opacity: 0;
25 | width: 0;
26 | height: 0;
27 | }
28 |
29 | .slider {
30 | position: absolute;
31 | cursor: pointer;
32 | top: 0;
33 | left: 0;
34 | right: 0;
35 | bottom: 0;
36 | height: 100%;
37 | background-color: blueviolet; /* Color of the slider bar */
38 | transition: .4s;
39 | border-radius: 17px; /* Rounded corners to match the slider height */
40 | }
41 |
42 | .slider:before {
43 | position: absolute;
44 | content: "";
45 | height: 20px; /* Height of the slider knob */
46 | width: 20px; /* Width of the slider knob */
47 | left: 2px;
48 | bottom: 2px; /* Centering the slider knob vertically */
49 | background-color: white;
50 | transition: .4s;
51 | border-radius: 50%; /* Make the slider knob rounded */
52 | }
53 |
54 | input:checked + .slider {
55 | background-color: rgb(173, 66, 107); /* Updated color */
56 | }
57 |
58 | input:checked + .slider:before {
59 | transform: translateX(55px);
60 | }
61 |
62 | .label-container {
63 | display: flex;
64 | justify-content: space-between;
65 | width: 70%;
66 | }
67 |
68 | .and-label, .or-label {
69 | font-size: 16px;
70 | color: #333;
71 | font-weight: bolder;
72 | }
73 |
74 | .and-label {
75 | color: blueviolet;
76 | }
77 |
78 | .or-label {
79 | color: rgb(173, 66, 107);
80 | }
81 |
82 | .tag-container {
83 | display: flex;
84 | flex-wrap: wrap;
85 | }
86 |
--------------------------------------------------------------------------------
/_sass/_tags.scss:
--------------------------------------------------------------------------------
1 | .tag {
2 | display: inline-block;
3 | background-color: #e0e0e0; /* This will be overridden by inline styles */
4 | border-radius: 12px; /* Rounded corners for tags */
5 | padding: 5px 10px;
6 | margin-right: 5px;
7 | margin-top: 1px;
8 | margin-bottom: 1px;
9 |
10 | font-size: 0.7em;
11 | color: #fff; /* Ensure the text color is white for better contrast */
12 | }
13 |
14 | .tag-filter {
15 | margin: 5px;
16 | cursor: pointer;
17 | color: #fff; /* Ensure the text color is white for better contrast */
18 | background-color: #a2a2a2; /* Grey background when not selected */
19 | border: 2px solid; /* Explicitly set no border */
20 | border-radius: 12px; /* Rounded corners for tag filters */
21 | border-color: black;
22 | }
23 |
24 | .tag-filter:hover {
25 | border: 2px solid; /* Ensure no border on hover */
26 | border-color: black;
27 | }
28 |
29 | .tag-filter:focus {
30 | border: 2px solid; /* Ensure no border on focus */
31 | outline: none; /* Remove focus outline */
32 | }
33 |
34 | .tag-filter:active {
35 | border: 2px solid; /* Ensure no border on active state */
36 | border-color: black;
37 | }
38 |
39 | .tag-filter.selected {
40 | border: 2px solid; /* Remove border when selected */
41 | border-color: black;
42 | }
43 |
44 |
45 |
--------------------------------------------------------------------------------
/_sass/_timeline.scss:
--------------------------------------------------------------------------------
1 | .guide-timeline {
2 | .timeline-header {
3 | cursor: pointer; // Change cursor to pointer to indicate it's clickable
4 | }
5 |
6 | .invitation {
7 | color: purple;
8 | }
9 |
10 | .interview {
11 | color: blue;
12 | }
13 |
14 | .offer {
15 | color: green;
16 | }
17 |
18 | .reject {
19 | color: red;
20 | }
21 | }
22 |
23 | .toggle-timeline {
24 | color: #007BFF;
25 | text-decoration: underline;
26 | cursor: pointer;
27 | }
--------------------------------------------------------------------------------
/_sass/_toc.scss:
--------------------------------------------------------------------------------
1 | /* css for the sidebar */
2 | /* https://afeld.github.io/bootstrap-toc/ */
3 |
4 | // nav[data-toggle='toc'] {
5 | // padding-top: 28px;
6 | // }
7 |
8 | nav[data-toggle='toc'] .nav > li > a:hover,
9 | nav[data-toggle='toc'] .nav-link.active,
10 | nav[data-toggle='toc'] .nav-link.active:focus,
11 | nav[data-toggle='toc'] .nav-link.active:hover,
12 | nav[data-toggle='toc'] .nav > li > a:focus {
13 | color: #007bff;
14 | border-left: 1px solid #007bff;
15 | }
16 | nav[data-toggle='toc'] .nav > .active > a,
17 | nav[data-toggle='toc'] .nav > .active:hover > a,
18 | nav[data-toggle='toc'] .nav > .active:focus > a {
19 | color: #007bff;
20 | border-left: 2px solid #007bff;
21 | }
--------------------------------------------------------------------------------
/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: About Us
4 | nav: About Us
5 | permalink: /about/
6 | description: Learn all about the CS Grad Job and Interview Guide.
7 | ---
8 |
9 | {% include_relative _about/about.md %}
--------------------------------------------------------------------------------
/applying.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Preparing Your Application
4 | nav: Application Materials
5 | description: >-
6 | This portion of the guide describes the materials needed for applications as
7 | well as some tips for their preparation.
8 | permalink: /applying/
9 | ---
10 |
11 | # What Materials Do You Need?
12 |
13 | Now that you know what jobs exist, as well as when
14 | and where to apply, it's time to prepare your application materials!
15 |
16 | Your applications will almost certainly require the following materials:
17 |
18 | 1. References or [Letters of Recommendation](#letters-of-recommendation) (three to five)
19 | 2. A [Cover Letter](#cover-letter)
20 | 3. A [CV or Resume](#preparing-your-resume)
21 | 4. A [Research Statement](#research-statement)
22 |
23 | Many positions will also ask for:
24 |
25 | 5. A [Teaching Statement](#teaching-statement) (required for academic applications)
26 | 6. A [Diversity Statement](#diversity-statement)
27 | 7. Three [Indicative Publications](#selecting-indicative-publications)
28 |
29 | Some international universities have extremely structured templates,
30 | such as this
31 | "CV template for the employment and promotion of teachers"
32 | from KTH Royal Institute of Technology in Sweden.
33 |
34 | *On the rest of this tab, we’ll provide an overview and tips to help you get started on each part of your application.*
35 |
36 | We also include select examples of successful materials from each category. *More examples are available
37 | on the [Example Materials](exampleMaterials.md) tab.*
38 |
39 | {% include_relative _applying/recommendations.md %}
40 | {% include_relative _applying/cover-letter.md %}
41 | {% include_relative _applying/resume.md %}
42 | {% include_relative _applying/statements.md %}
43 | {% include_relative _applying/publications.md %}
44 | {% include_relative _applying/submitting.md %}
45 |
--------------------------------------------------------------------------------
/assets/css/bootstrap-toc.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
3 | * Copyright 2015 Aidan Feldman
4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */nav[data-toggle=toc] .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}nav[data-toggle=toc] .nav>li>a:focus,nav[data-toggle=toc] .nav>li>a:hover{padding-left:19px;color:#563d7c;text-decoration:none;background-color:transparent;border-left:1px solid #563d7c}nav[data-toggle=toc] .nav-link.active,nav[data-toggle=toc] .nav-link.active:focus,nav[data-toggle=toc] .nav-link.active:hover{padding-left:18px;font-weight:700;color:#563d7c;background-color:transparent;border-left:2px solid #563d7c}nav[data-toggle=toc] .nav-link+ul{display:none;padding-bottom:10px}nav[data-toggle=toc] .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}nav[data-toggle=toc] .nav .nav>li>a:focus,nav[data-toggle=toc] .nav .nav>li>a:hover{padding-left:29px}nav[data-toggle=toc] .nav .nav>li>.active,nav[data-toggle=toc] .nav .nav>li>.active:focus,nav[data-toggle=toc] .nav .nav>li>.active:hover{padding-left:28px;font-weight:500}nav[data-toggle=toc] .nav-link.active+ul{display:block}
--------------------------------------------------------------------------------
/assets/css/styles.scss:
--------------------------------------------------------------------------------
1 | ---
2 | # this should make it be processed
3 | ---
4 |
5 | summary {
6 | font-style: italic;
7 | display: list-item;
8 | list-style-type: disclosure-closed;
9 | cursor: pointer;
10 | }
11 |
12 | details {
13 | background-color: rgb(238, 216, 248);
14 | border-radius: 0.5em 0.5em;
15 | padding: 5px;
16 | margin-bottom: 15px;
17 |
18 | }
19 |
20 | blockquote p {
21 | color: #44077d;
22 | font-style: italic;
23 | font-size: smaller;
24 |
25 | }
26 |
27 | .site-footer {
28 | background-color: #f5f5f5;
29 | }
30 |
31 | .csg-nav {
32 | font-size: .9rem;
33 | }
34 |
35 |
36 | .highlight {
37 | background-color:rgb(241, 209, 255);
38 | margin: 0 -0.4em;
39 | padding: 0.1em 0.4em;
40 | border-radius: 0.8em 0.3em;
41 | background: transparent;
42 | background-image: linear-gradient(
43 | to right,
44 | rgba(221, 141, 255, 0.2),
45 | rgba(221, 141, 255, 0.7) 4%,
46 | rgba(221, 141, 255, 0.4)
47 | );
48 | -webkit-box-decoration-break: clone;
49 | box-decoration-break: clone;
50 | }
51 |
52 | .highlight-link {
53 | background-color:rgb(241, 209, 255);
54 | margin: 0 -0.4em;
55 | padding: 0.1em 0.4em;
56 | border-radius: 0.8em 0.3em;
57 | background: transparent;
58 | background-image: linear-gradient(
59 | to right,
60 | rgba(221, 141, 255, 0.2),
61 | rgba(221, 141, 255, 0.7) 4%,
62 | rgba(221, 141, 255, 0.4)
63 | );
64 | -webkit-box-decoration-break: clone;
65 | box-decoration-break: clone;
66 | color: #1779ba;
67 | }
68 |
69 | .student-q {
70 | color: DarkMagenta;
71 | font-style: italic;
72 | padding: 0.2em;
73 | border-radius: 0.2em;
74 | }
75 |
76 | @import "quotes";
77 |
78 | {%- for member in site.data.people -%}
79 | {%- if member.color -%}
80 |
81 | .chat .chat-history .{{ member.id }}-message {
82 | background: {{ member.color }};
83 | }
84 | .chat .chat-history .{{ member.id }}-message:after {
85 | border-color: {{ member.color }} transparent;
86 | right: 20px;
87 | top: -15px;
88 | left: auto;
89 | bottom:auto;
90 | }
91 |
92 | .{{ member.id }} {
93 | color: {{ member.color }};
94 | }
95 | {%- endif -%}
96 | {%- endfor -%}
97 |
98 | @import "timeline";
99 |
100 | @import "toc";
101 |
102 | @import "cards";
103 |
104 | @import "tags";
105 |
106 | @import "linkCell";
107 |
108 | @import "searchToggle";
109 |
110 | @import "navBar";
--------------------------------------------------------------------------------
/assets/javascript/anchor.min.js:
--------------------------------------------------------------------------------
1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
2 | //
3 | // AnchorJS - v4.2.2 - 2019-11-14
4 | // https://www.bryanbraun.com/anchorjs/
5 | // Copyright (c) 2019 Bryan Braun; Licensed MIT
6 | //
7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=p(A=A||"h2, h3, h4, h5, h6")).length)return this;for(!function(){if(null!==document.head.querySelector("style.anchorjs"))return;var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A);e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}});
9 | // @license-end
--------------------------------------------------------------------------------
/assets/javascript/bootstrap-toc.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/)
3 | * Copyright 2015 Aidan Feldman
4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */
5 | !function(a){"use strict";window.Toc={helpers:{findOrFilter:function(e,t){var n=e.find(t);return e.filter(t).add(n).filter(":not([data-toc-skip])")},generateUniqueIdBase:function(e){return a(e).text().trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,64).replace(/^-+|-+$/gm,"").toLowerCase()||e.tagName.toLowerCase()},generateUniqueId:function(e){for(var t=this.generateUniqueIdBase(e),n=0;;n++){var r=t;if(0')},createChildNavList:function(e){var t=this.createNavList();return e.append(t),t},generateNavEl:function(e,t){var n=a('');n.attr("href","#"+e),n.text(t);var r=a("");return r.append(n),r},generateNavItem:function(e){var t=this.generateAnchor(e),n=a(e),r=n.data("toc-text")||n.text();return this.generateNavEl(t,r)},getTopLevel:function(e){for(var t=1;t<=6;t++){if(1= colors.length) {
25 | let hash = 0;
26 | for (let i = 0; i < lowerCaseTag.length; i++) {
27 | hash = lowerCaseTag.charCodeAt(i) + ((hash << 5) - hash);
28 | }
29 | const index = Math.abs(hash % colors.length);
30 | colorAssignment[lowerCaseTag] = colors[index];
31 | } else {
32 | for (let color of colors) {
33 | if (!Object.values(colorAssignment).includes(color)) {
34 | colorAssignment[lowerCaseTag] = color;
35 | break;
36 | }
37 | }
38 | }
39 |
40 | return colorAssignment[lowerCaseTag];
41 | }
42 |
43 | function extractStartYear(cycle) {
44 | const match = cycle.match(/(\d{4})/);
45 | return match ? parseInt(match[1], 10) : 0;
46 | }
47 |
48 | function createTimeline(events) {
49 | var items = events.map(function(event, index) {
50 | return {
51 | id: index + 1,
52 | content: event.description,
53 | start: `2020-${event.date}`,
54 | className: event.type
55 | };
56 | });
57 |
58 | var options = {
59 | width: '100%',
60 | height: '300px',
61 | margin: {
62 | item: 10
63 | }
64 | };
65 |
66 | //var timeline = new vis.Timeline(document.getElementById('timeline'), new vis.DataSet(items), options);
67 | }
68 |
69 | function generateContentSections(types, data) {
70 | // Sort the data by year
71 | data.sort(function(a, b) {
72 | const aYear = extractStartYear(a.cycle || '');
73 | const bYear = extractStartYear(b.cycle || '');
74 | return bYear - aYear;
75 | });
76 |
77 | var allTags = new Set();
78 |
79 | // Loop through the data and generate the necessary HTML
80 | data.forEach(function(item) {
81 | if (item.tags) {
82 | item.tags.forEach(tag => allTags.add(tag.toLowerCase()));
83 | }
84 |
85 | var tagHtml = item.tags ? item.tags.map(tag => `${tag}`).join(' ') : '';
86 |
87 | var cardHtml = `
88 |
89 |
90 | ${item.profileImageLoc ? `` : ''}
91 |
92 |
${item.name}
93 |
${item.cycle} cycle
94 | ${tagHtml}
95 |
96 |
97 |
98 |
99 |
100 |
101 | `;
102 |
103 | $("#peopleContent").append(cardHtml);
104 |
105 | // Populate sections dynamically based on contributionTypes.json
106 | Object.keys(types).forEach(key => {
107 | if (item[key]) {
108 | var sectionHtml = `