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