Commit | Line | Data |
---|---|---|
88457a37 AB |
1 | % bandali-cv.tex --- bandali's curriculum vitae -*-latex-*- |
2 | ||
3 | % Copyright (C) 2016-2020 Amin Bandali <bandali@uwaterloo.ca> | |
4 | ||
5 | % This CV is free software: you can redistribute it and/or modify | |
6 | % it under the terms of the GNU General Public License as published by | |
7 | % the Free Software Foundation, either version 3 of the License, or | |
8 | % (at your option) any later version. | |
9 | ||
10 | % This CV is distributed in the hope that it will be useful, | |
11 | % but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | % GNU General Public License for more details. | |
14 | ||
15 | % You should have received a copy of the GNU General Public License | |
16 | % along with this CV. If not, see <https://www.gnu.org/licenses/>. | |
17 | ||
18 | % With inspirations from Jason Blevins's CV <https://jblevins.org/cv>. | |
19 | ||
20 | ||
21 | \documentclass[letterpaper]{article} | |
22 | ||
23 | \def\name{Amin Bandali} | |
24 | \def\site{bndl.org} | |
25 | \def\siteurl{https://\site} | |
26 | \def\pubs#1{\siteurl/publications\##1} | |
27 | \def\mail{bandali@uwaterloo.ca} | |
28 | \def\nday{https://cs.uwaterloo.ca/~nday/} | |
29 | ||
30 | %% package imports | |
31 | \usepackage{geometry} % setting page geometry | |
32 | \usepackage{enumitem} % enumerate with [resume] option | |
33 | \usepackage{fontspec} % needs LuaTeX | |
34 | \usepackage{sectsty} % custom section fonts | |
35 | \usepackage{hyperref} % for PDF metadata | |
36 | \usepackage{fancyhdr} % fine control of headers/footers | |
37 | \usepackage{lastpage} % as the name says :-) | |
38 | ||
39 | %% PDF metadata | |
40 | \hypersetup{ | |
41 | pdfstartview={FitH}, % (H for horizontal) | |
42 | pdftitle={\name: Curriculum Vitae}, | |
43 | pdfauthor={\name}, | |
44 | pdfsubject={Curriculum Vitae}, | |
45 | pdfkeywords={formal methods, formal logic, model checking, | |
46 | verification, type systems, interactive theorem provers, | |
47 | functional programming, lean prover, haskell}, | |
48 | pdfpagemode=UseNone, | |
49 | pdfcreator={GNU Emacs 28.0.50}, | |
50 | pdflang={English}, | |
51 | pdfnewwindow=true, | |
52 | colorlinks=true, | |
53 | urlcolor=black | |
54 | } | |
55 | ||
56 | %% page geometry | |
57 | \geometry{ | |
58 | %% bottom=1.25in, | |
59 | body={6.5in, 9.0in}, | |
60 | left=1.0in, | |
61 | top=1.0in | |
62 | } | |
63 | ||
64 | %% footer setup | |
65 | \pagestyle{fancy} | |
66 | \fancyhf{} % clear existing header/footer | |
67 | \renewcommand\headrulewidth{0pt} | |
68 | \cfoot{% | |
69 | \textsc{\addfontfeature{Letters=UppercaseSmallCaps,LetterSpace=6.0}% | |
70 | Bandali CV \textemdash{} page \thepage{} of \pageref*{LastPage}}} | |
71 | ||
72 | %% body text font | |
73 | \usepackage[lining, tabular]{ebgaramond} | |
74 | \setmonofont[Scale=0.87]{inconsolata} | |
75 | \setsansfont[Scale=0.95]{Jost} | |
76 | ||
77 | %% title font | |
78 | \newfontfamily\titleface{Linux Libertine O} | |
79 | \newcommand{\titlefont}[1]{{\titleface\large\addfontfeature{LetterSpace=6.0}\MakeUppercase{#1}}} | |
80 | ||
81 | %% section heading font | |
82 | \newfontfamily\sectionface{Linux Libertine O} | |
83 | \sectionfont{\sectionface\mdseries\normalsize\uppercase} | |
84 | \subsectionfont{\sectionface\mdseries\normalsize\itshape} | |
85 | ||
86 | %% don't indent paragraphs | |
87 | \setlength\parindent{0em} | |
88 | ||
89 | %% omit itemize bullets, set more compact spacing | |
90 | \renewenvironment{itemize}{ | |
91 | \begin{list}{}{ | |
92 | \setlength{\leftmargin}{1.5em} | |
93 | \setlength{\itemsep}{0.25em} | |
94 | \setlength{\parskip}{0em} | |
95 | \setlength{\parsep}{0.25em} | |
96 | } | |
97 | }{ | |
98 | \end{list} | |
99 | } | |
100 | \setlist[enumerate]{itemsep=0.25em} | |
101 | ||
102 | %% month and year only | |
103 | \renewcommand{\today}{\ifcase \month \or January\or February\or March% | |
104 | \or April\or May \or June\or July\or August\or September\or October% | |
105 | \or November\or December\fi% | |
106 | \space \number \year} | |
107 | ||
108 | %% various command definitions | |
109 | \newcommand{\tla}{TLA${}^+$} | |
110 | ||
111 | ||
112 | \begin{document} | |
113 | ||
114 | \titlefont{\name} | |
115 | ||
116 | \bigskip | |
117 | \today | |
118 | ||
119 | \medskip | |
120 | \href{\siteurl}{\addfontfeature{LetterSpace=2.0}\site}\\ | |
121 | \href{mailto:\mail}{\mail}\\ | |
122 | ||
dadec8ef AB |
123 | \section*{Summary of Qualifications} |
124 | ||
125 | %% \begin{enumerate}[label=\raisebox{-0.25ex}{\textbullet}] | |
126 | \begin{itemize} | |
127 | \item Experience with building software in diverse areas and for | |
128 | various platforms, including GNU/Linux and Windows. | |
129 | \item Passionate about applying scientific and engineering methods | |
130 | while designing and building software systems. | |
131 | \item Using formal specification techniques to find | |
132 | specification-level bugs early in the design stage rather than | |
133 | implementation. | |
134 | \item GNU/Linux system administration on both the client and the | |
135 | server side. | |
136 | \item Problem-solving and communication skills, honed through research | |
137 | and teaching roles held in graduate school, as well as holding | |
138 | tutorials discussing complex concepts with fellow students and peers | |
139 | throughout undergraduate studies and high school. | |
140 | \item Organizational and teamwork skills, strengthened thanks to | |
141 | community service in form of volunteer activities including | |
142 | organizing the EmacsConf conference and volunteer work for charities | |
143 | such as the Free Software Foundation and St.~Brigid's Summer Camp. | |
144 | \end{itemize} | |
145 | %% \end{enumerate} | |
146 | ||
88457a37 AB |
147 | \section*{Education} |
148 | ||
149 | \begin{itemize} | |
150 | \item Master of Mathematics in Computer Science, University of | |
151 | Waterloo, 2020. | |
152 | % completed July 14, 2020 | |
153 | \begin{itemize} | |
154 | \item Thesis: A Comprehensive Study of Declarative Modelling | |
155 | Languages. | |
156 | \item Supervisor: \href{\nday}{Dr. Nancy~A. Day}. \ GPA: 3.7/4.0. | |
157 | \end{itemize} | |
158 | \item Bachelor of Science with Honours in Computer Science, York | |
159 | University, 2017. | |
160 | % completed December 2017 | |
161 | \end{itemize} | |
162 | ||
163 | \section*{Research Interests} | |
164 | ||
165 | \begin{itemize} | |
166 | \item Formal Logic, Model Checking, Theorem Proving, Verification | |
167 | \end{itemize} | |
168 | ||
169 | \section*{Publications \& Presentations} | |
170 | ||
171 | \begin{itemize} | |
172 | \item \href{\siteurl/mmath}{\textsf{A Comprehensive Study of | |
173 | Declarative Modelling Languages}}\\ \href{\siteurl}{Amin Bandali}, | |
174 | \textit{Master's thesis}, University of Waterloo, 2020. | |
175 | \item \href{\pubs{DBLP:conf/re/AbbassiBDS18}}{\textsf{A Comparison | |
176 | of the Declarative Modelling Languages B, Dash, and \tla}}\\ Ali | |
177 | Abbassi, \href{\siteurl}{Amin Bandali}, \href{\nday}{Nancy~A. Day}, | |
178 | and Jose Serna. \textit{Proc. MoDRE@RE 2018}. | |
179 | \item \textsf{The magic of specifications and type systems} {\small{} | |
180 | (\href{\pubs{bandali-magic-lassonde-2017}}{poster}, | |
181 | \href{\pubs{bandali-magic-cucsc-2017}}{slides})}\\ \href{\siteurl}{Amin | |
182 | Bandali}, \href{https://github.com/cipher1024}{Simon Hudon}, and | |
183 | \href{https://www.eecs.yorku.ca/~jonathan/}{Jonathan S. Ostroff}. | |
184 | Presented at the Canadian Undergraduate Computer Science Conference | |
185 | 2017, and at the 2017 Lassonde Undergraduate Summer Student Research | |
186 | Conference. | |
187 | \end{itemize} | |
188 | ||
189 | \section*{Work Experience} | |
190 | ||
191 | \subsection*{Free Software Foundation (FSF)} | |
192 | \begin{itemize} | |
193 | \item | |
194 | \begin{description}[font=\mdseries] | |
195 | \item[spring 2020] Tech team intern | |
196 | ||
197 | Working in a sysadmin role on a variety of tasks including | |
198 | installation of the Sourcehut free software forge on the FSF | |
199 | infrastructure for evaluation for the FSF forge project, as well | |
200 | as a series of enhancements for | |
201 | \href{https://www.gnu.org}{www.gnu.org}. | |
202 | \end{description} | |
203 | \end{itemize} | |
204 | ||
205 | \subsection*{Cheriton School of Computer Science, University of Waterloo} | |
206 | \begin{itemize} | |
207 | \item TA: Teaching Assistant, marking exams and assignments. IA: | |
208 | Instructional Apprentice, holding tutorials and marking | |
209 | \item | |
210 | \begin{description}[font=\mdseries] | |
211 | \item[SE 465 (Software Testing and Quality Assurance)] TA in winter | |
212 | 2020. | |
213 | \item[SE 212 (Logic and Computation)] IA in fall 2019, TA in fall | |
214 | 2018. | |
215 | \item[SE 463 (Software Requirements Specification and Analysis)] TA | |
216 | in spring 2019 and 2018. | |
217 | \item[CS 136 (Elementary Algorithm Design and Data Abstraction)] TA | |
218 | in winter 2018. | |
219 | \end{description} | |
220 | \end{itemize} | |
221 | ||
222 | \subsection*{Dept. of Electrical Engineering \& Computer Science, York University} | |
223 | \begin{itemize} | |
224 | \item | |
225 | \begin{description}[font=\mdseries] | |
226 | \item[EECS 1012 (Net-Centric Introduction to Computing)] TA in fall | |
227 | 2017. | |
228 | \end{description} | |
229 | \end{itemize} | |
230 | ||
231 | \subsection*{Software Engineering Lab, York University} | |
232 | \begin{itemize} | |
233 | \item | |
234 | \begin{description}[font=\mdseries] | |
235 | \item[summer 2017] Research Assistant | |
236 | ||
237 | Worked on an implementation of | |
238 | \href{https://bertrandmeyer.com/2014/12/07/lampsort/}{\textsf{Lampsort}} | |
239 | in Eiffel. Extended the | |
240 | \href{https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/}{\textsf{mathmodels}} | |
241 | library, implementing a \textsc{rational} class for working with | |
242 | arbitrarily large rational numbers. | |
243 | \item[summer 2016] Research Student | |
244 | ||
245 | Worked on \textit{Literate Unit-B}, the verifier for Unit-B, a new | |
246 | formal method focused on formal verification of reactive, | |
247 | concurrent and distributed systems. From the Literate Unit-B | |
248 | codebase (written in Haskell), decoupled the logic module and used | |
249 | it to build \textit{Unit-B Web}, a web interface using Literate | |
250 | Unit-B to do predicate calculus proofs. Unit-B Web, also written | |
251 | in Haskell, supports the \LaTeX{} syntax of the Unit-B logic, | |
252 | renders user input on the page, and calls the sequent prover of | |
253 | the logic module, which uses the Z3 SMT solver to check the | |
254 | validity of user input. | |
255 | ||
256 | Separated Literate Unit-B's type checker from its parser in a | |
257 | large refactoring, allowing easier substitution of other type | |
258 | checking algorithms, and in preparation for implementing | |
259 | subtyping. | |
260 | \end{description} | |
261 | \end{itemize} | |
262 | ||
263 | \subsection*{Lotek Wireless Inc.} | |
264 | \begin{itemize} | |
265 | \item | |
266 | \begin{description}[font=\mdseries] | |
267 | \item[summer 2016] Software Developer | |
268 | ||
269 | Designed and developed an Employee Portal web application in C\# | |
270 | and the MVC framework, used by employees for accessing various | |
271 | data catalogs and archives. | |
272 | \item[summer 2015] Software Developer | |
273 | ||
274 | Designed and implemented various applications in C\# and C for | |
275 | analyzing and testing a satellite pass prediction algorithm for | |
276 | predicting the pass windows of Argos satellites, for scheduling | |
277 | send times of data collected by the company's wildlife tracking | |
278 | products. | |
279 | \end{description} | |
280 | \end{itemize} | |
281 | ||
282 | \subsection*{Athlete Builder} | |
283 | \begin{itemize} | |
284 | \item | |
285 | \begin{description}[font=\mdseries] | |
286 | \item[2013--2014] Software Developer | |
287 | ||
288 | Developed the Backend of Athlete Builder platform in C\# and MVC. | |
289 | ||
290 | Key role in development of the platform core. | |
291 | ||
292 | Developed the alpha version of Athlete Builder Android application | |
293 | in Java. | |
294 | \end{description} | |
295 | \end{itemize} | |
296 | ||
dadec8ef AB |
297 | \section*{Skills} |
298 | ||
299 | \begin{itemize} | |
300 | \item \textit{Programming Languages:} Haskell, Python, C, Emacs Lisp, | |
301 | Guile Scheme, Eiffel, Bash, C\#, Java, JavaScript. | |
302 | \item \textit{Tools:} GNU Emacs, Git, Alloy, \tla, ProB, \LaTeX, | |
303 | continuous integration systems. | |
304 | \item \textit{Platforms:} GNU/Linux distributions, including Trisquel, | |
305 | GNU Guix, Debian. | |
306 | \item \textit{Languages:} Persian (mother tongue), English (fluent), French | |
307 | (beginner). | |
308 | \end{itemize} | |
309 | ||
88457a37 AB |
310 | \section*{Community Service} |
311 | ||
312 | \subsection*{EmacsConf Conference} | |
313 | ||
314 | \begin{itemize} | |
315 | \item | |
316 | \begin{description}[font=\mdseries] | |
317 | \item[\href{https://emacsconf.org}{2019--present}] Chief organizer | |
318 | and maintainer of conference infrastructure, including the | |
319 | streaming servers. | |
320 | \item[\href{https://emacsconf.org/2015/}{2015}\phantom{--present}] | |
321 | One of the organizers and in charge of setting up and maintaining | |
322 | vital pieces of infrastructure. | |
323 | \end{description} | |
324 | \end{itemize} | |
325 | ||
326 | \subsection*{Computer Science Club (CSC) of the University of Waterloo} | |
327 | ||
328 | \begin{itemize} | |
329 | \item Served as the CSC System Administrator in Winter and Spring | |
330 | 2020. Present member of the CSC Systems Committee, overseeing and | |
331 | maintaining a large fleet of GNU/Linux servers for CSC members, as | |
332 | well as running the CSC mirror for free software projects. | |
333 | ||
334 | Notable projects include | |
335 | \href{https://mailman.csclub.uwaterloo.ca/pipermail/csc-general/2020-July/000837.html}{launching | |
336 | the CSC web IRC client} as part of an effort in bringing modern | |
337 | user freedom- and privacy-respecting communication tools to club | |
338 | members. | |
339 | \end{itemize} | |
340 | ||
341 | \subsection*{Free/Libre Software Contributions} | |
342 | ||
343 | \begin{itemize} | |
344 | \item Co-maintainer of | |
345 | \href{https://www.gnu.org/software/gnuzilla/gnuzilla.html}{GNUzilla | |
346 | and IceCat}, the GNU version of the Mozilla suite and the Firefox | |
347 | browser respectively. | |
348 | \item Maintainer of | |
349 | \href{https://www.gnu.org/software/emacs/erc.html}{ERC}, the | |
350 | powerful, modular, and extensible IRC client distributed with | |
351 | GNU~Emacs. | |
352 | \item Committer and regular contributor to | |
353 | \href{https://www.gnu.org/software/emacs/emacs.html}{GNU~Emacs} and | |
354 | \href{https://guix.gnu.org}{GNU~Guix}. | |
355 | \item | |
356 | \href{https://www.gnu.org/people/webmeisters.html#bandali}{GNU~webmaster} | |
357 | and | |
358 | \href{https://savannah.gnu.org/maintenance/SavannahHacker/}{GNU~Savannah | |
359 | hacker}. | |
360 | \end{itemize} | |
361 | ||
362 | \subsection*{Volunteer Work} | |
363 | ||
364 | \begin{itemize} | |
365 | \item | |
366 | \begin{description}[font=\mdseries] | |
367 | \item[spring 2013] Application Developer for VONICAL Inc. | |
368 | ||
369 | Worked on development of the Employment Accessibility Resource | |
370 | Network (EARN) portal using the Anahita social networking | |
371 | platform, written in PHP and running on GNU/Linux. | |
372 | \end{description} | |
373 | \item | |
374 | \begin{description}[font=\mdseries] | |
375 | \item[winter 2013] Mobile \& Web Developer for Hire Works Inc. | |
376 | ||
377 | Worked on a variety of web and mobile development projects for | |
378 | Hire Works. | |
379 | \end{description} | |
380 | \item | |
381 | \begin{description}[font=\mdseries] | |
dadec8ef | 382 | \item[summer 2012] Web Developer for St.~Brigid's Summer Camp |
88457a37 AB |
383 | |
384 | Redesigned and revamped the codebase for the photo gallery section | |
385 | of the camp's website in PHP and JavaScript. | |
386 | \end{description} | |
387 | \end{itemize} | |
388 | ||
389 | %% TODO? \section*{Recent Projects} | |
390 | ||
391 | %% \section*{Achievements} | |
392 | ||
393 | %% \begin{itemize} | |
394 | %% \item Was among the top 1\% incoming students in Carleton University's | |
395 | %% undergraduate Computer Science program, and a top student in the | |
396 | %% faculty of science. | |
397 | %% \item Highest standing in Computer Science in grade 11 (92\%) and | |
398 | %% grade 12 (100\%) at High school at Glebe~Collegiate~Institute. | |
399 | %% \item Ranked in the top 25\% in the Canadian Senior Mathematics | |
400 | %% Contest held by University of Waterloo, in 2013 (grade 11). | |
401 | %% \item Graduated from high school with an average of 95\%; and | |
402 | %% designated as an Ontario Scholar. | |
403 | %% \end{itemize} | |
404 | ||
88457a37 | 405 | \end{document} |