| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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] |
| 382 | \item[summer 2012] Web Developer for St.~Brigid's Summer Camp |
| 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 | |
| 405 | \end{document} |