various updates
[~bandali/cv] / cv.tex
diff --git a/cv.tex b/cv.tex
index d268d9a..490a720 100644 (file)
--- a/cv.tex
+++ b/cv.tex
@@ -1,35 +1,40 @@
-% Amin Bandali - Curriculum Vitae
+%% cv.tex
+%% Copyright 2016-2019 Amin Bandali <mab@gnu.org>
 %
-% Copyright (C) 2016 Amin Bandali <amin@aminb.org>
-% https://aminb.org/
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
 %
 % Based on Jason R. Blevins's Curriculum Vitae template,
 % Copyright (C) 2004-2016 Jason R. Blevins <jrblevin@sdf.org>
 % http://jblevins.org/
-%
-% You may use use this document as a template to create your own CV
-% and you may redistribute the source code freely.  No attribution is
-% required in any resulting documents.  I do ask that you please leave
-% this notice and the above URL in the source code if you choose to
-% redistribute this file.
 
 \documentclass[12pt,letterpaper]{article}
 
 \usepackage{hyperref}
 \usepackage{geometry}
 \usepackage{enumitem}
+\usepackage{fancyhdr}
+\usepackage{lastpage}
+% To enable correct spacing
+\usepackage{xspace}
+\pagestyle{fancy}
 
 % Fonts
 \usepackage{graphicx}
 \usepackage{fontspec}
-\setmainfont[Numbers=Lining]{EB Garamond}
-\newfontfamily{\smallcaps}[RawFeature={+c2sc,+scmp}]{EB Garamond}
-\newcommand{\amper}{{\fontspec[Scale=.9]{EB Garamond}\selectfont\itshape\&}}
-
-%% Load Microtype with default settings. This will use the
-%% EB-Garamond protrusion definitions if present.
-\usepackage{microtype}
+\setmainfont[Scale=0.95,SmallCapsFont={Equity Caps A},RawFeature=+c2sc]{Equity Text A}
+\setsansfont[SmallCapsFont={Concourse C4}]{Concourse T4}
+\setmonofont[Scale=0.9]{Triplicate T4c}
+\newfontfamily{\tallnums}[RawFeature={+ss02}]{Equity Text A}
+\newfontfamily{\largersans}[Scale=1.05,SmallCapsFont={Concourse C4}]{Concourse T4}
+\newcommand{\amper}{{\fontspec[Scale=.9]{Equity Text A}\selectfont\itshape\&}}
 
+\newcommand{\tla}{TLA${}^+$}
 
 \def\name{Amin Bandali}
 
@@ -38,8 +43,9 @@
   colorlinks = true,
   urlcolor = black,
   pdfauthor = {\name},
-  pdfkeywords = {Programming Languages, Haskell, Rust, Formal Methods, Type
-    Systems, Proof Systems, Automated Provers},
+  pdfkeywords = {Formal Methods, Formal Logic, Model Checking,
+    Verification, Type Systems, Proof Systems, Interactive Provers,
+    Programming Languages, Functional Programming, Haskell, Rust},
   pdftitle = {\name: Curriculum Vitae},
   pdfsubject = {Curriculum Vitae},
   pdfpagemode = UseNone
   top=1.0in
 }
 
-% Customize page headers
-\pagestyle{myheadings}
-\markright{\name}
-\thispagestyle{empty}
+\pagestyle{fancy}
+\fancyhf{}% to clear existing header/footer
+\renewcommand\headrulewidth{0pt}
+\cfoot{\vspace*{-.25em}\textsc{Bandali CV --- page \thepage \xspace of
+    \pageref*{LastPage}}}
 
 % Custom section fonts
 \usepackage{sectsty}
 
 \begin{document}
 
+\vspace*{-3em}
+
 % Place name at left
 {\huge \name}
 
 % Alternatively, print name centered and bold:
 %\centerline{\huge \bf \name}
 
-\bigskip
+\medskip
 
 \begin{minipage}[t]{0.495\textwidth}
-  Email: \href{mailto:amin9@my.yorku.ca}{amin9@my.yorku.ca} \\
-  Homepage: \href{https://aminb.org}{https://aminb.org} \\
-  Phone: available upon request
+  site: \href{https://bandali.eu.org}{bandali.eu.org} \\
+  email: \href{mailto:bandali@uwaterloo.ca}{bandali@uwaterloo.ca} \\
+  phone: available upon request
 \end{minipage}
 
-\section*{Research Interests}
-
-\begin{itemize}
-\item Functional Programming and functional languages
-\item Formal methods, especially type systems, proof systems, and automated
-  provers
-\item Verification, Haskell, and Rust
-\end{itemize}
+\vspace*{1em}
 
 \section*{Education}
 
 \begin{itemize}
-\item {\large B.Sc. Honours Computer Science}\, |\, {\small 2013--present}
+  \setlength\itemsep{.75em}
+
+\item {\large Master of Mathematics (Computer Science)}\, |\, {\small 2018--present}
+
+  \textit{University of Waterloo}, Canada
 
-  \textit{York University}, Canada
+  \begin{itemize}
+  \item Supervised by Dr. Nancy Day | GPA: 3.7/4.0 | Expected
+    completion: Winter 2020
+  \item Research focusing on formal logic, model checking, and verification.
+  \end{itemize}
+
+\item {\large B.Sc. Honours Computer Science}\, |\, {\small 2013--2017}
+
+  \textit{York University}, Toronto, Canada
 
   \begin{itemize}
-  \item GPA: 7.9/9.0
-  \item Expected completion: December 2017
+  \item GPA: 7.84/9.0
   \item Relevant courses: System Specification \amper\
-    Refinement, Operating System Design, Computational Complexity, Artificial
-    Intelligence \amper\ Logic Programming, Design \amper\ Analysis of
-    Algorithms.
+    Refinement, Software Requirements Eng., Software Design, Operating
+    Systems, Computational Complexity, Design \amper\ Analysis of Algorithms.
   \item Finished first year (2013-14) at \textit{Carleton University} with a GPA
-    of 11.0/12.0 then transferred to \textit{York University} in Fall 2014.
+    of 11.0/12.0, then transferred to \textit{York University} in Fall 2014.
+  \end{itemize}
+
+\end{itemize}
+
+\section*{Publications}
+
+\begin{itemize}
+\item {\large \tallnums MoDRE 2018}
+
+  \begin{itemize}
+  \item {\largersans A Comparison of the Declarative Modelling
+    Languages B, Dash, and \tla}
+    \textsf{\footnotesize
+      (\href{https://bandali.eu.org/papers/modre2018-declarative.pdf}{pdf},
+      \href{https://bandali.eu.org/papers/modre2018-declarative.bib}{bib})}
+
+    Ali Abbassi, Amin Bandali, Nancy A. Day, and Jose Serna\\
+    \textit{2018 IEEE 8th International Model-Driven Requirements
+      Engineering Workshop (MoDRE)}
   \end{itemize}
-  
+
 \end{itemize}
 
-\section*{Research Experience}
+\section*{Work \amper\ Research Experience}
 
 \begin{itemize}
-\item {\large Software Engineering Lab, } York University\, |\, {\small summer 2016}
+
+\item {\large Cheriton School of Computer Science, } University of Waterloo\, |\, {\small 2018--present}
+
+  \textit{Instructional Apprentice (IA), Teaching Assistant (TA)}
+
+  \begin{itemize}
+  \item \textsf{\small SE 212} (Logic and Computation): IA in Fall
+    2019, TA in Fall 2018
+  \item \textsf{\small SE 463} (Software Requirements Specification
+    and Analysis): TA in Summer 2019 and 2018
+  \item \textsf{\small CS 136} (Elementary Algorithm Design and Data
+    Abstraction): TA in Winter 2018
+  \end{itemize}
+
+\item {\large EECS Department, } York University\, |\, {\small fall 2017}
+
+  \textit{Teaching Assistant}
+
+  \begin{itemize}
+  \item I was a TA for \textsf{\small EECS 1012}, Net-Centric
+    Introduction to Computing, taught by Dr. Brown.
+  \end{itemize}
+
+\item {\large Software Engineering Lab, } York University\, |\, {\small summer
+  2017}
+
+  \textit{Research Assistant}
+
+  \begin{itemize}
+  \item I worked on an implementation of
+    \href{https://bertrandmeyer.com/2014/12/07/lampsort/}{\textit{Lampsort}} in
+    Eiffel. I also extended the
+    \href{https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/}{\texttt{mathmodels}}
+    library, implementing a \textsc{RATIONAL} class for working with arbitrarily
+    large rational numbers.
+  \end{itemize}
+
+\item {\large Software Engineering Lab, } York University\, |\, {\small summer
+    2016}
 
   \textit{Research Student}
 
   \begin{itemize}
-  \item Semester project: As an undergraduate research student, I
-    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.
+  \item As an undergraduate research student, I 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), I 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. \linebreak 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.
+    user input on the page, and calls the sequent prover of the logic module,
+    which uses the \textsc{z3 smt} solver to check the validity of user input.
+
+  \item Further, I separated Literate Unit-B's type checker from its parser,
+    allowing easier substitution of other type checking algorithms and in
+    preparation for implementing subtyping.
+  \end{itemize}
+\end{itemize}
 
-  \item Volunteer work: I'm currently working on implementing subtyping for
-    Literate Unit-B.
+\section*{Conference Presentations}
+
+\begin{itemize}
+\item {\large \tallnums CUCSC 2017}
+
+  \begin{itemize}
+  \item {\largersans The Magic of Specifications and Type Systems}
+    (\href{https://bandali.eu.org/talks/cucsc-2017-slides.pdf}{slides}),
+    at Canadian Undergraduate Computer Science Conference, University of
+    Toronto, Canada, Jun 15--17 2017.
   \end{itemize}
+
+\item {\large \tallnums Lassonde USSR Conference 2017}
+
+  \begin{itemize}
+  \item {\largersans The Magic of Specifications and Type Systems}
+    (\href{https://bandali.eu.org/talks/eecs4080-poster.pdf}{poster}),
+    at Lassonde Undergraduate Summer Student Research Conference, York University,
+    Toronto, Canada, August 15, 2017.
   \end{itemize}
 
+\end{itemize}
+
 \section*{Professional Experience}
 \begin{itemize}
-\item {\large Lotek Wireless Inc., } Newmarket, Canada\, |\, {\small 2015--2016}
+\item {\large Lotek Wireless Inc., } Newmarket, Canada\, |\, {\small
+  summer 2015 \amper\ 2016}
 
   \textit{Software Developer}
 
   \end{itemize}
   \vspace{.25em}
 
+\pagebreak  % TODO: remove if necessary
+
 \item {\large Athlete Builder, } Ottawa, Canada\, |\, {\small 2013--2014}
 
   \textit{Software Developer}
 
 \begin{itemize}
 
-\item {\large EmacsConf 2015, } \href{http://emacsconf.org}{emacsconf.org}\, |\,
+\item {\large EmacsConf 2019, } \href{https://emacsconf.org/2019}{emacsconf.org/2019}\, |\,
+  {\small fall 2019}
+
+  \textit{Organizer}
+
+  \begin{itemize}
+  \item I was the chief organizer for EmacsConf 2019, and in charge of
+    maintaining and overseeing the EmacsConf infrastructure, including
+    our streaming servers.
+  \end{itemize}
+  \vspace{.25em}
+
+\item {\large Computer Science Club, } University of Waterloo,
+  Canada\, |\, {\small summer 2019--present}
+
+  \textit{Systems Committee}
+
+  \begin{itemize}
+  \item I'm a member of the Systems Committee (syscom) for the
+    Computer Science Club of the University of Waterloo, which
+    operates and maintains the club's fleet of GNU/Linux servers.
+  \end{itemize}
+  \vspace{.25em}
+
+\item {\large EmacsConf 2015, } \href{https://emacsconf.org/2015}{emacsconf.org/2015}\, |\,
   {\small summer 2015}
 
   \textit{Organizer}
 
   \begin{itemize}
-  \item EmacsConf is a conference about the joy of Emacs and writing Emacs
-    Lisp. I was a key organizer and in charge of setting up and maintaining
-    several vital pieces of the EmacsConf infrastructure.
+  \item I was one of the organizers and in charge of setting up and
+    maintaining several vital pieces of the EmacsConf infrastructure.
   \end{itemize}
   \vspace{.25em}
 
 \end{itemize}
 
 
+\section*{Recent Projects}
+
+\begin{itemize}
+\item \textit{george-mode:} Emacs major mode for editing George
+  files.\\ Source code available at
+  \href{https://git.sr.ht/~bandali/george-mode}{https://git.sr.ht/\textasciitilde{}bandali/george-mode}
+\item \textit{alloy-catalyst:} Framework for performance analysis of
+  Alloy models.\\ Source code available at
+  \href{https://git.uwaterloo.ca/bandali/alloy-catalyst}{https://git.uwaterloo.ca/bandali/alloy-catalyst}
+\item \textit{Unit-B Web:} The web interface for Unit-B, as mentioned in the
+  \textit{Research Experience} section.\\
+  Source code available at
+  \href{https://github.com/unitb/unitb-web}{https://github.com/unitb/unitb-web}
+
+\item \textit{tex2png-hs:} A tool for easily converting \TeX\ and \LaTeX\ to
+  \textsc{PNG} images. \texttt{tex2png-hs} is a Haskell port of Xyne's
+  \texttt{tex2png} tool. It is a wrapper around \texttt{latex} and
+  \texttt{dvipng} and provides several options for modifying its behaviour, such
+  as cropping the whitespace around the content, specifying the \textsc{DPI}, or
+  inputting a full document.
+  Source code available at
+  \href{https://github.com/unitb/tex2png-hs}{https://github.com/unitb/tex2png-hs}
+
+\item For more projects, visit my personal site at
+  \href{https://bandali.eu.org}{https://bandali.eu.org}.
+\end{itemize}
+
 \section*{Miscellaneous}
 
 \begin{itemize}
-\item \textit{Programming Languages:} Haskell, Rust, C, Python, Emacs Lisp,
-  \LaTeX, C\#, Java, JavaScript, C++.
-\item \textit{Platforms:} Arch Linux, Ubuntu and other distros, Android, macOS,
-  Windows.
-\item \textit{Tools:} Emacs, Git, Mercurial, Zsh, CI Systems (e.g. Travis CI),
-  Rodin, SQL DBs.
-\item \textit{Languages:} English (fluent), Persian (native), French (beginner).
+\item \textit{Programming Languages:} Haskell, Python, C, Emacs Lisp,
+  Guile, Eiffel, Rust, C\#, Java, JavaScript.
+\item \textit{Tools:} Emacs, Git, Alloy, \tla, \LaTeX, CI
+  systems, Rodin, Liquid Haskell.
+\item \textit{Platforms:} GNU/Linux distros including but not limited
+  to GNU Guix, Trisquel, Parabola, Debian.
+\item \textit{Languages:} Persian (mother tongue), English (fluent), French
+  (beginner).
 \end{itemize}
 
 
+% \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}
+
+
 % Footer
 \bigskip
 {\small Last updated: \today}