bandali's curriculum vitae
also available in
and plain text
- upon request via email
Summary of Qualifications
- Experience in building software in diverse areas and platforms
using various programming languages such as C, C++, Python, and
- 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
- 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.
- Master of Mathematics in Computer Science, University of Waterloo,
- Research focus: formal logic, model checking, verification
- Thesis: A Comprehensive Study of Declarative
- Supervisor: Prof. Nancy
- 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
- GPA: 7.84/9.0
formal logic, model checking, theorem proving, type checking,
Publications & Presentations
The complete bibliography of my publications is available as a
- A Comparison of the Declarative Modelling Languages B, DASH, and
Ali Abbassi, Amin Bandali,
Nancy A. Day, Jose Serna
8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018
Copyright © 2018 IEEE. All Rights Reserved. Sadly.
- A Comprehensive Study of Declarative Modelling
University of Waterloo, David R. Cheriton School of Computer Science,
- What's new in Jami
Presented at the LibrePlanet 2023 Conference, 18 March 2023.
- The Net beyond the web
Presented at the LibrePlanet 2022 Conference, 20 March 2022.
- Jami and how it empowers users
Presented at the LibrePlanet 2021 Conference, 20 March 2021.
- The Magic of Specifications and Type Systems
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.
- Introducing YULUG
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
- fall 2022–present | Software Engineer
- As part of the Desktop Team at Canonical, I work mainly on the
maintenance of Ubuntu's Firefox packages, as well as other aspects of
the Ubuntu desktop.
- Savoir-faire Linux
- fall 2020–fall 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, wearing different hats. Some
notable areas and responsibilities include
- maintenance and bug fixes for Jami's GTK-based
jami-gnome C/C++ GUI, and seeing to its gradual
deprecation as the team shifted focus to the development of the new
- 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;
- setting up and maintaining several Jenkins pipelines for
continually testing, validating, and/or deploying different aspects
of Jami's repositories;
- writing, editing, and publishing several articles on the Jami
blog, as well as improving Jami's documentation; and
- 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.
- 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
- Cheriton School of Science, University of Waterloo
- winter 2018–spring 2020 | TA, IA, RA [*]
- SE 465 (Software Testing and Quality Assurance): TA in winter
- SE 212 (Logic and Computation):
IA in Fall 2019, TA in
- SE 463 (Software Requirement Specification and Analysis): TA in
spring 2019 and 2018
- CS 136 (Elementary Algorithm Design and Data Abstraction): TA in
- [*] 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
- 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
in Eiffel. Extended
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
- Athlete Builder
- 2013–2014 | Software Developer
- Developed the Backend of Athlete Builder platform in C# and
- Key role in development of the platform core.
- Developed the alpha version of Athlete Builder Android application
- Programming languages
- C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash,
- GNU Emacs, Git, Alloy, TLA+, ProB, LaTeX,
continuous integration systems
- GNU/Linux distributions including Trisquel
(Ubuntu deriv.), Parabola (Arch deriv.),
GNU Guix, Debian
- Persian (mother tongue), English (native proficiency; IELTS: 9.0),
- GNU Project
- Assistant GNUisance and member of the
- GNU (co)maintainer of
and IceCat (the GNU version of the Mozilla suite and the Firefox
browser respectively) and Jami.
- Maintainer of
powerful, modular, and extensible IRC client distributed with GNU
Emacs and on GNU ELPA.
- Committer and regular contributor
- EmacsConf conference
- Organizer, maintainer of (wholly free) conference
- 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
the CSC web IRC client as part of an effort in bringing modern
user freedom- and privacy-respecting communication tools to club
- Volunteer work
- fall 2022–present | Volunteer for Savoir-faire Linux
- I help with various aspects of the Jami project as a
- 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
- summer 2012 | Web Developer for St. Brigid's Summer Camp
- Redesigned and revamped the codebase for the photo gallery section
Last updated 21 May 2023