\input eplain % -- custom defs \def\\{\par\noindent\ignorespaces} \def\section#1{{\vskip .75em}\par\noindent{\elevenbf#1}{\vskip .5em}} \def\subsection#1{{\vskip .25em}\par\noindent{\sf#1}{\vskip .25em}} \def\tla{TLA${}^+$} \let\origmarker=\unorderedmarker % -- fonts % \font\sc=cmcsc10 \font\sf=cmss10 \font\sfb=cmssbx10 % \font\eightrm=cmr8 \font\ninerm=cmr9 \font\ninermit=cmti9 \font\ninesf=cmss9 \font\ninesfb=cmssbx10 scaled 900 % at 9pt \font\ninett=cmtt9 % \font\elevenrm=cmr10 scaled \magstephalf % \font\elevensf=cmss10 scaled \magstephalf \font\elevenbf=cmbx10 scaled \magstephalf \font\twelvebf=cmbx12 \font\twelverm=cmr12 % \font\fourteenbf=cmbx12 scaled \magstep1 \font\seventeenbf=cmbx12 scaled \magstep2 % \font\twentybf=cmbx12 scaled \magstep3 % -- packages \beginpackages \usepackage[utf8]{inputenc} \usepackage{color} \endpackages % -- hyperlinks \enablehyperlinks \definecolor{darkblue}{rgb}{.063,.149,.58} \hlopts[hrefext]{bwidth=0,colormodel=,color=darkblue} \hlopts[hrefint]{bwidth=0} % -- pdf metadata \pdfinfo{ /Title (Amin Bandali: Curriculum Vitae) /Author (bandali) /Subject (Curriculum Vitae) /Keywords (formal methods, formal logic, model checking, functional programming, free software, consultant, c, haskell, python)} % -- first page! {\seventeenbf\noindent Amin Bandali} \hfill {\ninesfb Last updated} {\ninerm\today} \bigskip { \def\unorderedmarker{} \abovelistskipamount=0pt \belowlistskipamount=0pt \interitemskipamount=0pt \newdimen\origindent \origindent=\parindent \parindent=0pt \ninerm \unorderedlist \li site \parindent=\origindent \unorderedlist \li \href{https://kelar.org/~bandali/}{\ninett kelar.org/\char`\~bandali} \endunorderedlist \li email \unorderedlist \ninett \li \href{mailto:bandali@gnu.org}{bandali@gnu.org} \li \href{mailto:bandali@kelar.org}{bandali@kelar.org} \li \href{mailto:bandali@uwaterloo.ca}{bandali@uwaterloo.ca} \endunorderedlist \li phone \unorderedlist \li upon request via email \endunorderedlist \endunorderedlist } % <-- contact info \medskip \interitemskipamount=.25em \section {Short Bio} { \def\unorderedmarker{} \unorderedlist \li As a computing scientist and activist for computer user freedom, Amin Bandali is an active participant in various free software projects and communities including the GNU Project and the Free Software Foundation, the Debian and Trisquel GNU/Linux distributions, the EmacsConf conference, and GNU Canada, the Canadian chapter of the GNU Project. Bandali holds a degree of Master of Mathematics in Computer Science from the University of Waterloo, and currently works at Canonical as part of the Ubuntu Desktop team. \endunorderedlist } \section {Summary of Qualifications} \unorderedlist \li Experience in building software in diverse areas and platforms using various programming languages such as C, C++, Python, and Haskell. \li Creating and maintaining packages for programs of varying size and complexity for package systems of several GNU/Linux distributions including Debian, Ubuntu, Trisquel, and Fedora. \li Passionate about applying scientific and engineering methods in design and implementation of software systems. \li Using formal specification techniques to find specification-level bugs early in the design stage rather than implementation. \li GNU/Linux system administration on both the client and the server side. \li Problem-solving and communication skills, honed through research and teaching roles held in graduate school, as well as holding tutorials discussing complex concepts with fellow students and peers throughout undergraduate studies and high school. \li Organizational and teamwork skills, strengthened thanks to community service in form of volunteer activities including organizing the EmacsConf conference and volunteer work for charities such as the Free Software Foundation and St. Brigid's Summer Camp. \endunorderedlist % <-- qualifications \def\unorderedmarker{} \section {Education} \unorderedlist \li Master of Mathematics in Computer Science, University of Waterloo, 2020. % completed July 14, 2020 { \unorderedlist \li Research focus: formal logic, model checking, verification \li Thesis: \href{#mmath}{A Comprehensive Study of Declarative Modelling Languages} \li Supervisor: \href{https://cs.uwaterloo.ca/~nday/}{Dr.\ Nancy~A.\ Day} \li GPA: 3.7/4.0 \endunorderedlist } \li Bachelor of Science with Honours in Computer Science, York University, 2017. % completed December 2017 { \unorderedlist \li Favourite courses: System Specification \& Refinement, Software Requirements Engineering, Software Design, Operating Systems, Computational Complexity, Design \& Analysis of Algorithms \li GPA: 7.84/9.0 \endunorderedlist } \endunorderedlist % <-- education \section {Research Interests} \unorderedlist % \interitemskipamount=1em \li formal logic, model checking, theorem proving, type checking, verification % \li compilers, bootstrapping, reproducible builds \endunorderedlist %%\eject %\vfil\break \section {Publications \& Presentations} The complete bibliography of my publications is available as a Bib\TeX\ bibliography file, \href{https://kelar.org/~bandali/bandali.bib}{bandali.bib}. \unorderedlist \li {\sf Papers} \unorderedlist % \interitemskipamount=1em \li {\sf A Comparison of the Declarative Modelling Languages B, Dash, and \tla} (\href{https://kelar.org/~bandali/papers/modre2018-declarative.pdf}{\sfb pdf}, \href{https://kelar.org/~bandali/papers/modre2018-declarative.bib}{\sf bib})\\ Ali Abbassi, \href{https://kelar.org/~bandali/}{Amin Bandali}, \href{https://cs.uwaterloo.ca/~nday/}{Nancy~A.\ Day}, Jose Serna\\ {\it 8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018}\\ Copyright \copyright\ 2018 IEEE. All Rights Reserved. Sadly. \endunorderedlist % <-- papers \li {\sf Theses} % \interitemskipamount=1em \unorderedlist \li[mmath] {\sf A Comprehensive Study of Declarative Modelling Languages} (\href{https://kelar.org/~bandali/theses/bandali-mmath-thesis.pdf}{\sfb pdf}, \href{https://kelar.org/~bandali/theses/bandali-mmath-thesis.bib}{\sf bib}, \href{https://hdl.handle.net/10012/16059}{\sf hdl}, \href{https://kelar.org/~bandali/theses/mmath.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, {\it Master's thesis}, University of Waterloo, July 2020. \endunorderedlist % <-- theses \li {\sf Talks} \unorderedlist \interitemskipamount=1em \li {\sf State of the shared GNU infrastructure} (\href{https://kelar.org/~bandali/talks/gnu40-infra-slides.txt}{\sfb slides} (pdf soon), \href{https://kelar.org/~bandali/talks/gnu40-infra-notes.txt}{\sfb notes}, \href{https://kelar.org/~bandali/talks/gnu40-infra.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/gnu40-infra.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, {\it For GNU 40th anniversary celebration}, 27 September 2023. \li {\sf What's new in Jami} (\href{https://kelar.org/~bandali/talks/jami-2023.pdf}{\sfb pdf} (\href{https://kelar.org/~bandali/talks/jami-2023-with-notes.pdf}{\sfb with notes}, \href{https://kelar.org/~bandali/talks/jami-2023-only-notes.pdf}{\sfb only notes}), \href{https://kelar.org/~bandali/talks/jami-2023.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/jami-2023.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, {\it LibrePlanet 2023 Conference}, 18 March 2023. \li {\sf The Net beyond the Web} (\href{https://kelar.org/~bandali/talks/net-beyond-web-slides.txt}{\sfb slides} (\href{https://kelar.org/~bandali/talks/net-beyond-web-slides.pdf}{\sfb pdf}), \href{https://kelar.org/~bandali/talks/net-beyond-web-notes.txt}{\sfb notes}, \href{https://kelar.org/~bandali/talks/net-beyond-web.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/net-beyond-web.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, {\it LibrePlanet 2022 Conference}, 20 March 2022. \li {\sf Jami and how it empowers users} (\href{https://kelar.org/~bandali/talks/jami-empowers-users.pdf}{\sfb pdf} (\href{https://kelar.org/~bandali/talks/jami-empowers-users-with-notes.pdf}{\sfb with notes}), \href{https://kelar.org/~bandali/talks/jami-empowers-users.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/jami-empowers-users.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, {\it LibrePlanet 2021 Conference}, 20 March 2021. \li {\sf The Magic of Specifications and Type Systems} (\href{https://kelar.org/~bandali/talks/magic-cucsc-2017-slides.pdf}{\sfb slides}, \href{https://kelar.org/~bandali/talks/magic-eecs4080-poster.pdf}{\sfb poster}, \href{https://kelar.org/~bandali/talks/magic.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/magic.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, \href{https://github.com/cipher1024}{Simon Hudon}, \href{https://www.eecs.yorku.ca/~jonathan/}{Jonathan S.\ Ostroff}\\ Slides presented at the {\it Canadian Undergraduate Computer Science Conference 2017}, University of Toronto, Canada, 15--17 June 2017. Poster presented at the {\it Lassonde Undergraduate Summer Student Research Conference}, York University, Toronto, Canada, 15 August 2017. \li {\sf Introducing YULUG} (\href{https://kelar.org/~bandali/talks/yulug.pdf}{\sfb slides}, \href{https://kelar.org/~bandali/talks/yulug.bib}{\sf bib}, \href{https://kelar.org/~bandali/talks/yulug.html}{\sf info})\\ \href{https://kelar.org/~bandali/}{Amin Bandali}, slides introducing {\sf (GNU/)Linux User Group at York University {\ninesf(YULUG)}} presented at a {\it Computing Students Hub (CSHub)} tech talk, York University, Toronto, Canada, 12 February 2015. \endunorderedlist % <-- talks \endunorderedlist % <-- publications & presentations \section {Work \& Research Experience} \unorderedlist \li {\sf Canonical} \unorderedlist \li fall 2022--present --- Software Engineer \unorderedlist \li As part of the Ubuntu Desktop team at Canonical, I work on various aspects of Ubuntu and its desktop, including \let\unorderedmarker=\origmarker \unorderedlist \li maintenance of Firefox packages in Ubuntu as the default web browser relied upon by millions of users --- I maintain the Firefox snap package in collaboration with Mozilla, and the older Firefox deb package (for Ubuntu 20.04 and previously for 18.04 as well) in collaboration with community member Rico Tzschichholz and Nishit Majithia of Canonical's Ubuntu Security team; \li maintaining several GNOME application and library packages in Ubuntu and upstream in Debian; and \li ``+1 maintenance'' rotations, working on resolving package build issues to ensure the development release remains installable. \endunorderedlist \endunorderedlist \endunorderedlist \li {\sf Savoir-faire Linux} \unorderedlist \li fall 2020--fall 2022 --- Free Software Consultant --- Consultant en logiciel libre \unorderedlist \li As part of the Jami core development team at Savoir-faire Linux, I worked on many aspects of Jami, wearing different hats. Some notable areas and responsibilities include \let\unorderedmarker=\origmarker \unorderedlist \li maintenance and bug fixes for Jami's GTK-based {\tt jami-gnome} C/C++ GUI, and seeing to its gradual deprecation as the team shifted focus to the development of the new Qt-based {\tt jami-qt} GUI; \li maintaining packages of Jami (and some of its dependencies) for the deb, snap, and rpm package systems, helping bring the latest versions of Jami to users across several GNU/Linux distributions including Debian, Ubuntu, Trisquel, Fedora, and openSUSE; \li setting up and maintaining several Jenkins pipelines for continually testing, validating, and/or deploying different aspects of Jami's repositories; \li writing, editing, and publishing several articles on the Jami blog, as well as improving Jami's documentation; and \li serving as community liaison between the Jami core team and the wider free software community of Jami users, helping facilitate communications and relations between the team and the community. \endunorderedlist \endunorderedlist \endunorderedlist \li {\sf Free Software Foundation (FSF)} \unorderedlist \li spring 2020 --- Intern \unorderedlist \li Working with the FSF tech team 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}. \endunorderedlist \endunorderedlist \li {\sf Cheriton School of Computer Science, University of Waterloo} \unorderedlist \li winter 2018--spring 2020 --- TA, IA, RA\numberedfootnote{\ninerm% Teaching Assistant (marking exams and assignments), Instructional Apprentice (holding tutorials and marking), Research Assistant (doing research for/with supervisor)} \unorderedlist \li SE 465 (Software Testing and Quality Assurance): TA in winter 2020. \li SE 212 (Logic and Computation): \href{https://kelar.org/~bandali/teaching/se212/f19/tutorials.html}{IA in fall 2019}, TA in fall 2018. \li SE 463 (Software Requirements Specification and Analysis): TA in spring 2019 and 2018. \li CS 136 (Elementary Algorithm Design and Data Abstraction): TA in winter 2018. \endunorderedlist \endunorderedlist \li {\sf Department of Electrical Engineering \& Computer Science, York University} { \unorderedlist \li fall 2017 --- Teaching Assistant \unorderedlist \li EECS 1012 (Net-Centric Introduction to Computing): TA in fall 2017, running labs and marking labs and exams \endunorderedlist \endunorderedlist } \li {\sf Software Engineering Lab, York University} { \unorderedlist \li summer 2017 --- Research Assistant \unorderedlist \li Worked on an implementation of \href{https://bertrandmeyer.com/2014/12/07/lampsort/}{Lampsort} in Eiffel. Extended the \href{https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/}{mathmodels} library, implementing a rational class for working with arbitrarily large rational numbers. \endunorderedlist \li summer 2016 --- Research Student \unorderedlist \li Worked on {\it 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 {\it 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. \li 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. \endunorderedlist \endunorderedlist } \li {\sf Lotek Wireless Inc.} { \unorderedlist \li winter \& summer 2016 --- Software Developer \unorderedlist \li Designed and developed an Employee Portal web application in C\# and the MVC framework, used by employees for accessing various data catalogs and archives. \endunorderedlist \endunorderedlist \unorderedlist \li summer 2015 --- Computer Programmer \unorderedlist \li 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. \endunorderedlist \endunorderedlist } \li {\sf Athlete Builder} { \unorderedlist \li 2013--2014 --- Software Developer \unorderedlist \li Developed the Backend of Athlete Builder platform in C\# and MVC. \li Key role in development of the platform core. \li Developed the alpha version of Athlete Builder Android application in Java. \endunorderedlist \endunorderedlist } \endunorderedlist % <-- work & research experience \section {Skills} \unorderedlist \li {\sf Programming} \unorderedlist \li C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash, C\#, Java, JavaScript \endunorderedlist \li {\sf Tools} \unorderedlist \li GNU Emacs, Git, Alloy, \tla, ProB, \LaTeX, continuous integration systems \endunorderedlist \li {\sf Platforms} \unorderedlist \li GNU/Linux distributions including Trisquel {\ninerm (Ubuntu deriv.)}, Parabola {\ninerm(Arch deriv.)}, GNU Guix, Debian \endunorderedlist \li {\sf Languages} \unorderedlist \li Persian (mother tongue), English (native proficiency; IELTS: 9.0), French (beginner) \endunorderedlist \endunorderedlist % <-- skills \section {Community Service} \unorderedlist \li {\sf GNU Project} { \let\unorderedmarker=\origmarker \unorderedlist \li Assistant GNUisance and member of the \href{https://www.gnu.org/contact/gnu-advisory.html}{GNU Advisory Committee}. \li GNU (co-)maintainer of \href{https://www.gnu.org/software/gnuzilla/gnuzilla.html}{GNUzilla and IceCat} and \href{https://jami.net}{Jami}. \li \href{https://www.gnu.org/software/emacs/emacs.html}{GNU Emacs} developer and co-maintainer of \href{https://www.gnu.org/software/emacs/erc.html}{ERC}. \li \href{https://savannah.gnu.org/maintenance/SavannahHacker/}{Savannah hacker} and \href{https://www.gnu.org/people/webmeisters.html#bandali}{GNU webmaster}. \li Curator of the monthly \href{https://www.gnu.org/spotlight/}{GNU Spotlight}. \li GNU \href{https://www.gnu.org/server/standards/translations/fa/}{Persian translation team} leader. \li Founder of \href{https://www.gnu.ca}{GNU Canada}. \endunorderedlist } \li {\sf Debian GNU/Linux} \unorderedlist \li fall 2023--present --- Debian Developer \unorderedlist \li I became a Debian Developer in November 2023 with the support and advocacy of my main sponsors Petter Reinholdtsen and Jeremy B\'{\i}cha. As a DD, I maintain Debian's jami, opendht, and restinio packages, help maintain several GNOME packages as a member of the Debian GNOME team, and maintain and contribute to the Debian packaging for various GNU Emacs packages as a member of the Debian Emacsen team. \li I'm grateful to Tobias Frost, the Application Manager for my DD process, for sharing many helpful pieces of information and neat tricks when it comes to working in and around the various parts of Debian as a Developer. \endunorderedlist \li winter 2023--fall 2023 --- Debian Maintainer \unorderedlist \li I became a Debian Maintainer in February 2023 with the support and advocacy of my sponsor Petter Reinholdtsen for my application. As a DM, I maintained Debian's jami, opendht, and restinio packages, and I helped maintain several GNOME packages as a member of the Debian GNOME team, working with Jeremy B\'{\i}cha and other GNOME team members. I was also a member of the Debian Emacsen team, where I contributed a few changes. \li In September 2023 I applied to become a Debian Developer with upload rights. \endunorderedlist \li fall 2020--winter 2023 --- Debian Contributor \unorderedlist \li I first started contributing to Debian in 2020, sending patches for the opendht and jami (ring) packages. I was eventually able to take over the maintenance of these two packages in 2023, after a long period of stagnation due to absence/unavailability of the packages' former maintainer, and got them in good shape and up-to-date again in time for the Bookworm release, with help from my kind sponsor Petter Reinholdtsen. \endunorderedlist \endunorderedlist \li {\sf Trisquel GNU/Linux} \unorderedlist \li spring 2020--present \unorderedlist \li I am a contributor to Trisquel GNU/Linux since 2020 starting with the Trisquel 9.0 "Etiona" release and onwards. \endunorderedlist \endunorderedlist \li {\sf EmacsConf conference} \unorderedlist \li 2019--present \unorderedlist \li Core organizer and systems administrator for the conference's (wholly free) infrastructure. \endunorderedlist \li 2015 \unorderedlist \li One of the organizers and in charge of setting up and maintaining vital pieces of infrastructure. \endunorderedlist \endunorderedlist \li {\sf Computer Science Club (CSC) of the University of Waterloo} { \let\unorderedmarker=\origmarker \unorderedlist \li 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. \li Notable projects include \href{https://mailman.csclub.uwaterloo.ca/hyperkitty/list/csc-general@csclub.uwaterloo.ca/message/ZOFF6Y23T6WLG3ZKB2CKLY3YCMB5LHWK/}{launching the CSC web IRC client} as part of an effort in bringing modern user freedom- and privacy-respecting communication tools to club members. \endunorderedlist } \li {\sf Volunteer work} \unorderedlist \li fall 2022--present --- Volunteer for Savoir-faire Linux \unorderedlist \li I help with various aspects of the Jami project as a volunteer. \endunorderedlist \li spring 2013 --- Application Developer for VONICAL Inc. \unorderedlist \li 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. \endunorderedlist \li winter 2013 --- Mobile \& Web Developer for Hire Works Inc. \unorderedlist \li Worked on a variety of web and mobile development projects for Hire Works. \endunorderedlist \li summer 2012 --- Web Developer for St. Brigid's Summer Camp \unorderedlist \li Redesigned and revamped the codebase for the photo gallery section of the camp's website in PHP and JavaScript. \endunorderedlist \endunorderedlist \endunorderedlist % <-- community service \bye