% bandali-cv.tex --- bandali's curriculum vitae -*-latex-*-

% Copyright (C) 2016-2020 Amin Bandali <bandali@uwaterloo.ca>

% This CV is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.

% This CV is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.

% You should have received a copy of the GNU General Public License
% along with this CV.  If not, see <https://www.gnu.org/licenses/>.

% With inspirations from Jason Blevins's CV <https://jblevins.org/cv>.


\documentclass[letterpaper]{article}

\def\name{Amin Bandali}
\def\site{bndl.org}
\def\siteurl{https://\site}
\def\pubs#1{\siteurl/publications\##1}
\def\mail{bandali@uwaterloo.ca}
\def\nday{https://cs.uwaterloo.ca/~nday/}

%% package imports
\usepackage{geometry} % setting page geometry
\usepackage{enumitem} % enumerate with [resume] option
\usepackage{fontspec} % needs LuaTeX
\usepackage{sectsty}  % custom section fonts
\usepackage{hyperref} % for PDF metadata
\usepackage{fancyhdr} % fine control of headers/footers
\usepackage{lastpage} % as the name says :-)

%% PDF metadata
\hypersetup{
  pdfstartview={FitH}, % (H for horizontal)
  pdftitle={\name: Curriculum Vitae},
  pdfauthor={\name},
  pdfsubject={Curriculum Vitae},
  pdfkeywords={formal methods, formal logic, model checking,
    verification, type systems, interactive theorem provers,
    functional programming, lean prover, haskell},
  pdfpagemode=UseNone,
  pdfcreator={GNU Emacs 28.0.50},
  pdflang={English},
  pdfnewwindow=true,
  colorlinks=true,
  urlcolor=black
}

%% page geometry
\geometry{
  %% bottom=1.25in,
  body={6.5in, 9.0in},
  left=1.0in,
  top=1.0in
}

%% footer setup
\pagestyle{fancy}
\fancyhf{}                      % clear existing header/footer
\renewcommand\headrulewidth{0pt}
\cfoot{%
  \textsc{\addfontfeature{Letters=UppercaseSmallCaps,LetterSpace=6.0}%
    Bandali CV \textemdash{} page \thepage{} of \pageref*{LastPage}}}

%% body text font
\usepackage[lining, tabular]{ebgaramond}
\setmonofont[Scale=0.87]{inconsolata}
\setsansfont[Scale=0.95]{Jost}

%% title font
\newfontfamily\titleface{Linux Libertine O}
\newcommand{\titlefont}[1]{{\titleface\large\addfontfeature{LetterSpace=6.0}\MakeUppercase{#1}}}

%% section heading font
\newfontfamily\sectionface{Linux Libertine O}
\sectionfont{\sectionface\mdseries\normalsize\uppercase}
\subsectionfont{\sectionface\mdseries\normalsize\itshape}

%% don't indent paragraphs
\setlength\parindent{0em}

%% omit itemize bullets, set more compact spacing
\renewenvironment{itemize}{
  \begin{list}{}{
      \setlength{\leftmargin}{1.5em}
      \setlength{\itemsep}{0.25em}
      \setlength{\parskip}{0em}
      \setlength{\parsep}{0.25em}
    }
}{
  \end{list}
}
\setlist[enumerate]{itemsep=0.25em}

%% month and year only
\renewcommand{\today}{\ifcase \month \or January\or February\or March%
  \or April\or May \or June\or July\or August\or September\or October%
  \or November\or December\fi%
\space \number \year}

%% various command definitions
\newcommand{\tla}{TLA${}^+$}


\begin{document}

\titlefont{\name}

\bigskip
\today

\medskip
\href{\siteurl}{\addfontfeature{LetterSpace=2.0}\site}\\
\href{mailto:\mail}{\mail}\\

\section*{Education}

\begin{itemize}
  \item Master of Mathematics in Computer Science, University of
    Waterloo, 2020.
    % completed July 14, 2020
    \begin{itemize}
    \item Thesis: A Comprehensive Study of Declarative Modelling
      Languages.
    \item Supervisor: \href{\nday}{Dr. Nancy~A. Day}.  \ GPA: 3.7/4.0.
    \end{itemize}
  \item Bachelor of Science with Honours in Computer Science, York
    University, 2017.
    % completed December 2017
\end{itemize}

\section*{Research Interests}

\begin{itemize}
\item Formal Logic, Model Checking, Theorem Proving, Verification
\end{itemize}

\section*{Publications \& Presentations}

\begin{itemize}
\item \href{\siteurl/mmath}{\textsf{A Comprehensive Study of
    Declarative Modelling Languages}}\\ \href{\siteurl}{Amin Bandali},
  \textit{Master's thesis}, University of Waterloo, 2020.
\item \href{\pubs{DBLP:conf/re/AbbassiBDS18}}{\textsf{A Comparison
    of the Declarative Modelling Languages B, Dash, and \tla}}\\ Ali
  Abbassi, \href{\siteurl}{Amin Bandali}, \href{\nday}{Nancy~A. Day},
  and Jose Serna.  \textit{Proc. MoDRE@RE 2018}.
\item \textsf{The magic of specifications and type systems} {\small{}
  (\href{\pubs{bandali-magic-lassonde-2017}}{poster},
  \href{\pubs{bandali-magic-cucsc-2017}}{slides})}\\ \href{\siteurl}{Amin
  Bandali}, \href{https://github.com/cipher1024}{Simon Hudon}, and
  \href{https://www.eecs.yorku.ca/~jonathan/}{Jonathan S. Ostroff}.
  Presented at the Canadian Undergraduate Computer Science Conference
  2017, and at the 2017 Lassonde Undergraduate Summer Student Research
  Conference.
\end{itemize}

\section*{Work Experience}

\subsection*{Free Software Foundation (FSF)}
\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[spring 2020] Tech team intern

    Working in a sysadmin role on a variety of tasks including
    installation of the Sourcehut free software forge on the FSF
    infrastructure for evaluation for the FSF forge project, as well
    as a series of enhancements for
    \href{https://www.gnu.org}{www.gnu.org}.
  \end{description}
\end{itemize}

\subsection*{Cheriton School of Computer Science, University of Waterloo}
\begin{itemize}
\item TA: Teaching Assistant, marking exams and assignments.  IA:
  Instructional Apprentice, holding tutorials and marking
\item
  \begin{description}[font=\mdseries]
  \item[SE 465 (Software Testing and Quality Assurance)] TA in winter
    2020.
  \item[SE 212 (Logic and Computation)] IA in fall 2019, TA in fall
    2018.
  \item[SE 463 (Software Requirements Specification and Analysis)] TA
    in spring 2019 and 2018.
  \item[CS 136 (Elementary Algorithm Design and Data Abstraction)] TA
    in winter 2018.
  \end{description}
\end{itemize}

\subsection*{Dept. of Electrical Engineering \& Computer Science, York University}
\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[EECS 1012 (Net-Centric Introduction to Computing)] TA in fall
    2017.
  \end{description}
\end{itemize}

\subsection*{Software Engineering Lab, York University}
\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[summer 2017] Research Assistant

    Worked on an implementation of
    \href{https://bertrandmeyer.com/2014/12/07/lampsort/}{\textsf{Lampsort}}
    in Eiffel.  Extended the
    \href{https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/}{\textsf{mathmodels}}
    library, implementing a \textsc{rational} class for working with
    arbitrarily large rational numbers.
  \item[summer 2016] Research Student

    Worked on \textit{Literate Unit-B}, the verifier for Unit-B, a new
    formal method focused on formal verification of reactive,
    concurrent and distributed systems.  From the Literate Unit-B
    codebase (written in Haskell), decoupled the logic module and used
    it to build \textit{Unit-B Web}, a web interface using Literate
    Unit-B to do predicate calculus proofs.  Unit-B Web, also written
    in Haskell, supports the \LaTeX{} syntax of the Unit-B logic,
    renders user input on the page, and calls the sequent prover of
    the logic module, which uses the Z3 SMT solver to check the
    validity of user input.

    Separated Literate Unit-B's type checker from its parser in a
    large refactoring, allowing easier substitution of other type
    checking algorithms, and in preparation for implementing
    subtyping.
  \end{description}
\end{itemize}

\subsection*{Lotek Wireless Inc.}
\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[summer 2016] Software Developer

    Designed and developed an Employee Portal web application in C\#
    and the MVC framework, used by employees for accessing various
    data catalogs and archives.
  \item[summer 2015] Software Developer

    Designed and implemented various applications in C\# and C for
    analyzing and testing a satellite pass prediction algorithm for
    predicting the pass windows of Argos satellites, for scheduling
    send times of data collected by the company's wildlife tracking
    products.
  \end{description}
\end{itemize}

\subsection*{Athlete Builder}
\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[2013--2014] Software Developer

    Developed the Backend of Athlete Builder platform in C\# and MVC.

    Key role in development of the platform core.

    Developed the alpha version of Athlete Builder Android application
    in Java.
  \end{description}
\end{itemize}

\section*{Community Service}

\subsection*{EmacsConf Conference}

\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[\href{https://emacsconf.org}{2019--present}] Chief organizer
    and maintainer of conference infrastructure, including the
    streaming servers.
  \item[\href{https://emacsconf.org/2015/}{2015}\phantom{--present}]
    One of the organizers and in charge of setting up and maintaining
    vital pieces of infrastructure.
  \end{description}
\end{itemize}

\subsection*{Computer Science Club (CSC) of the University of Waterloo}

\begin{itemize}
\item Served as the CSC System Administrator in Winter and Spring
  2020.  Present member of the CSC Systems Committee, overseeing and
  maintaining a large fleet of GNU/Linux servers for CSC members, as
  well as running the CSC mirror for free software projects.

  Notable projects include
  \href{https://mailman.csclub.uwaterloo.ca/pipermail/csc-general/2020-July/000837.html}{launching
    the CSC web IRC client} as part of an effort in bringing modern
  user freedom- and privacy-respecting communication tools to club
  members.
\end{itemize}

\subsection*{Free/Libre Software Contributions}

\begin{itemize}
\item Co-maintainer of
  \href{https://www.gnu.org/software/gnuzilla/gnuzilla.html}{GNUzilla
    and IceCat}, the GNU version of the Mozilla suite and the Firefox
  browser respectively.
\item Maintainer of
  \href{https://www.gnu.org/software/emacs/erc.html}{ERC}, the
  powerful, modular, and extensible IRC client distributed with
  GNU~Emacs.
\item Committer and regular contributor to
  \href{https://www.gnu.org/software/emacs/emacs.html}{GNU~Emacs} and
  \href{https://guix.gnu.org}{GNU~Guix}.
\item
  \href{https://www.gnu.org/people/webmeisters.html#bandali}{GNU~webmaster}
  and
  \href{https://savannah.gnu.org/maintenance/SavannahHacker/}{GNU~Savannah
    hacker}.
\end{itemize}

\subsection*{Volunteer Work}

\begin{itemize}
\item
  \begin{description}[font=\mdseries]
  \item[spring 2013] Application Developer for VONICAL Inc.

    Worked on development of the Employment Accessibility Resource
    Network (EARN) portal using the Anahita social networking
    platform, written in PHP and running on GNU/Linux.
  \end{description}
\item
  \begin{description}[font=\mdseries]
  \item[winter 2013] Mobile \& Web Developer for Hire Works Inc.

    Worked on a variety of web and mobile development projects for
    Hire Works.
  \end{description}
\item
  \begin{description}[font=\mdseries]
  \item[summer 2012] Web Developer for St. Brigid's Summer Camp

    Redesigned and revamped the codebase for the photo gallery section
    of the camp's website in PHP and JavaScript.
  \end{description}
\end{itemize}

%% TODO? \section*{Recent Projects}

%% \section*{Achievements}

%% \begin{itemize}
%% \item Was among the top 1\% incoming students in Carleton University's
%%   undergraduate Computer Science program, and a top student in the
%%   faculty of science.
%% \item Highest standing in Computer Science in grade 11 (92\%) and
%%   grade 12 (100\%) at High school at Glebe~Collegiate~Institute.
%% \item Ranked in the top 25\% in the Canadian Senior Mathematics
%%   Contest held by University of Waterloo, in 2013 (grade 11).
%% \item Graduated from high school with an average of 95\%; and
%%   designated as an Ontario Scholar.
%% \end{itemize}

\section*{Miscellaneous}

\begin{itemize}
\item \textit{Programming Languages:} Haskell, Python, C, Emacs Lisp,
  Guile Scheme, Eiffel, Rust, C\#, Java, JavaScript.
\item \textit{Tools:} GNU Emacs, Git, Alloy, \tla, ProB, \LaTeX,
  continuous integration systems.
\item \textit{Platforms:} GNU/Linux distributions, including Trisquel,
  GNU Guix, Debian.
\item \textit{Languages:} Persian (mother tongue), English (fluent), French
  (beginner).
\end{itemize}

\end{document}
