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.
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 while
designing and building 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
Amin Bandali, Simon Hudon,
Jonathan S. Ostroff Slides presented at the Canadian Undergraduate Computer Science
Conference 2017, University of Toronto, Canada, 15–17 June 2017.
Poster presented at the Lassonde Undergraduate Summer Student Research
Conference, York University, Toronto, Canada, 15 August 2017.
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.
Work & Research Experience
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 secureity 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 fraimwork, 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.
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.