curriculum vitae

                            Amin Bandali

Last updated 16 May 2025

site
 https://kelar.org/~bandali
email
 [email protected]
 [email protected]
gpg key
 https://kelar.org/~bandali/bandali-pubkey.txt
phone
 upon request via email


Short Bio
---------

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.


Summary of Qualifications
-------------------------

- Experience in building software in diverse areas and platforms
 using various programming languages such as C, C++, Python, and
 Haskell.

- 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.

- Passionate about applying scientific and engineering methods in
 design and implementation of software systems.

- Using formal specification techniques to find
 specification-level bugs early in the design stage
 rather than implementation.

- GNU/Linux system administration on both the client and the
 server side.

- 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.

- 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.


Education
---------

Master of Mathematics in Computer Science,
University of Waterloo, 2020

 Research focus:
   formal logic, model checking, verification
 Thesis:
   A Comprehensive Study of Declarative Modelling Languages
 Supervisor:
   Prof. Nancy A. Day
 GPA:
   3.7/4.0

Bachelor of Science with Honours in Computer Science,
York University, 2017

 Favourite courses:
   System Specification & Refinement, Software Requirements
   Engineering, Software Design, Operating Systems, Computational
   Complexity, Design & Analysis of Algorithms
 GPA:
   7.84/9.0


Research Interests
------------------

formal logic, model checking, theorem proving, type checking,
verification


Publications & Presentations
----------------------------

The complete bibliography of my publications is available
as a BibTeX bibliography file, from
https://kelar.org/~bandali/bandali.bib.

Papers

 A Comparison of the Declarative Modelling Languages B, DASH,
 and TLA+

   Ali Abbassi, Amin Bandali, Nancy A. Day, Jose Serna
   8th IEEE International Model-Driven Requirements
   Engineering Workshop, MoDRE@RE 2018
   Copyright (c) 2018 IEEE.  All Rights Reserved.  Sadly.

   pdf:
     https://kelar.org/~bandali/2018/08/20/modre2018-declarative.pdf
   bib:
     https://kelar.org/~bandali/2018/08/20/modre2018-declarative.bib
   models:
     https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/

Theses

 A Comprehensive Study of Declarative Modelling Languages

   Amin Bandali
   MMath Thesis, University of Waterloo, David R. Cheriton
   School of Computer Science, July 2020.

   https://kelar.org/~bandali/2020/06/30/mmath.html

Talks

 State of the shared GNU infrastructure

   Amin Bandali
   Would have been presented at the GNU 40th anniversary celebration,
   27 September 2023.

   https://kelar.org/~bandali/2023/09/27/gnu40-infra.html

 What's new in Jami

   Amin Bandali
   Presented at the LibrePlanet 2023 Conference, 18 March 2023.

   https://kelar.org/~bandali/2023/03/18/jami-2023.html

 The Net beyond the web

   Amin Bandali
   Presented at the LibrePlanet 2022 Conference, 20 March 2022.

   https://kelar.org/~bandali/2022/03/20/net-beyond-web.html

 Jami and how it empowers users

   Amin Bandali
   Presented at the LibrePlanet 2021 Conference, 20 March 2021.

   https://kelar.org/~bandali/2021/03/20/jami-empowers-users.html

 The Magic of Specifications and Type Systems

   Amin Bandali, Simon Hudon, Jonathan S. Ostroff
   Slides presented at the Canadian Undergraduate Computer
   Science Conference 2017, University of Toronto, Canada,
   June 15-17, 2017.
   Poster presented at the Lassonde Undergraduate Summer Student
   Research Conference, York University, Toronto, Canada,
   15 August 2017.

   https://kelar.org/~bandali/2017/06/17/magic.html

 Introducing YULUG

   Amin Bandali
   Slides introducing YULUG -- (GNU/)Linux User Group at York
   University -- presented at a Computing Students Hub (CSHub)
   tech talk at York University, Toronto, Canada, 12 February
   2015.

   https://kelar.org/~bandali/2015/02/12/yulug.html


Work & Research Experience
--------------------------

Internet Archive

 winter 2025-present | Software Engineer (Search)

   As part of the Internet Archive's Core Infrastructure Engineering
   team, I work on various aspects of the Archive's search systems.

Canonical

 fall 2022-2024 | Software Engineer

   As the sole maintainer of Firefox in Ubuntu Desktop, my duties
   included porting, debugging, and building the Firefox source
   code for the architectures supported by Ubuntu Desktop
   (e.g. amd64 and arm64) and triaging reported issues, to ensure
   new releases of Firefox with security fixes and new features
   are delivered to the millions of users who rely on Firefox as
   their default web browser.

   I also worked on other aspects of Ubuntu and its desktop,
   including maintaining various GNOME applications and libraries
   in Ubuntu and upstream in Debian, and resolving package build
   issues to ensure the current Ubuntu development release
   continues to build and install correctly.

Savoir-faire Linux

 fall 2020-2022 | Free Software Consultant
                | Consultant en logiciel libre

   As part of the Jami core development team at Savoir-faire
   Linux, I worked on many aspects of Jami including maintenance
   and bug fixes for Jami's now-deprecated GTK GUI; maintaining
   packages of Jami and some of its dependencies for the Deb,
   Snap, and RPM package systems to bring the latest release of
   Jami to users across several GNU/Linux distributions including
   Debian, Ubuntu, Trisquel, Fedora, and openSUSE; and creating
   and maintaining Jenkins pipelines for continually testing,
   validating, and deploying various parts of Jami's code bases.

   I also helped write, edit, and publish several technical
   articles on the Jami blog about the internals of Jami, worked
   on improving Jami's documentation, and served as community
   liaison between the Jami core team and the wider free software
   community of Jami users to help facilitate communications and
   relations between the two.

Free Software Foundation (FSF)

 spring 2020 | Intern

   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
   www.gnu.org.

Cheriton School of Science, University of Waterloo

 winter 2018-spring 2020 | TA, IA, RA [*]

   SE 465 (Software Testing and Quality Assurance):
     TA in winter 2020
   SE 212 (Logic and Computation):
     IA in Fall 2019, TA in fall 2018
   SE 463 (Software Requirement Specification and Analysis):
     TA in spring 2019 and 2018
   CS 136 (Elementary Algorithm Design and Data Abstraction):
     TA in winter 2018

 [*] Teaching Assistant (marking exams and assignments),
 Instructional Apprentice (holding tutorials and marking),
 Research Assistant (doing research for/with supervisor)

Department of Electrical Engineering & Computer Science, York
University

 fall 2017 | Teaching Assistant

   EECS 1012 (Net-Centric Introduction to Computing):
     TA in fall 2017, running labs and marking labs and exams

Software Engineering Lab, York University

 summer 2017 | Research Assistant

   Worked on an implementation of Lampsort in Eiffel.
   Extended the mathmodels library, implementing a rational
   class for working with arbitrarily large rational numbers.

 summer 2016 | Research Student

   Worked on 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 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.

Lotek Wireless Inc.

 winter & 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.

 summer 2015 | Computer Programmer

   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.

Athlete Builder

 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.


Skills
------

Programming languages
 C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash,
 C#, Java, JavaScript

Tools
 GNU Emacs, Git, Alloy, TLA+, ProB, LaTeX, continuous integration
 systems

Platforms
 GNU/Linux distributions including Trisquel (Ubuntu deriv.),
 Parabola (Arch deriv.), GNU Guix, Debian

Languages
 English (native proficiency; IELTS: 9.0/9.0),
 French (classroom study),
 Persian (mother tongue)


Community Service
-----------------

GNU Project

 Assistant GNUisance and member of the GNU Advisory Committee.
 GNU (co-)maintainer of GNUzilla and IceCat and Jami.
 GNU Emacs developer and co-maintainer of ERC.
 Savannah hacker and GNU webmaster.
 Curator of the monthly GNU Spotlight.
 GNU Persian translation team leader.
 Founder of GNU Canada.

Debian GNU/Linux

 fall 2023-present | Debian Developer

   I became a Debian Developer in November 2023 with the support and
   advocacy of my main sponsors Petter Reinholdtsen and Jeremy Bí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.

   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.

 winter 2023-fall 2023 | Debian Maintainer

   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ícha and other
   GNOME team members.  I was also a member of the Debian Emacsen
   team, where I contributed a few changes.

   In September 2023 I applied to become a Debian Developer with
   upload rights.

 fall 2020-winter 2023 | Debian Contributor

   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.

Trisquel GNU/Linux

 spring 2020-present

   I am a contributor to Trisquel GNU/Linux since 2020 starting with
   the Trisquel 9.0 "Etiona" release and onwards.

EmacsConf conference

 2019-present

   Core organizer and systems administrator for the conference's
   (wholly free) infrastructure.

 2015

   One of the organizers and in charge of setting up
   and maintaining vital pieces of infrastructure.

Computer Science Club (CSC) of the University of Waterloo

 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 launching the CSC web IRC client
 as part of an effort in bringing modern user freedom- and
 privacy-respecting communication tools to club members.

Volunteer work

 fall 2022-present | Volunteer for Savoir-faire Linux

   I help with various aspects of the Jami project as a
   volunteer.

 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.

 winter 2013 | Mobile & Web Developer for Hire Works Inc.

   Worked on a variety of web and mobile development projects for
   Hire Works.

 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.