1 <!doctype html
><html lang=
"en"><head>
2 <meta charset=
"utf-8" />
3 <meta name=
"author" content=
"bandali" />
4 <meta name=
"viewport" content=
"width=device-width, initial-scale=1" />
5 <title>curriculum vitae
— bandali
</title>
6 <link rel=
"icon" href=
"data:,">
7 <link rel=
"canonical" href=
"https://bndl.org/cv.html" />
8 <link rel=
"alternate" href=
"bandali-cv.txt" title=
"plain text" type=
"text/plain" />
10 body{margin:
0 auto;max-width:
37.5em;}p,li,dt,dd{line-height:
1.6}
11 h1{font-size:
1.5em}h2{font-size:
1.3em}h3{font-size:
1.1em}
12 .box{background:#f8f8f8;border:
1px solid #e6e6e6;border-radius:
4px;
13 font-size:
0.95em;padding:
0.6em
0.9em;}
14 #link-grid{display:grid;grid:none / auto
1fr;gap:
0.2em
1em;}
15 #link-grid dd{margin-left:
0}
16 .tex{font-family:
"Tex Gyre Termes",serif;text-transform:uppercase;}
17 .tex span{font-size:
0.75em;margin-left:-
0.05em;margin-right:-
0.20em;}
18 .tex sub{font-size:
1em;margin-left:-
0.1667em;margin-right:-
0.125em;
19 vertical-align:-
0.5ex;}.tex sup{font-size:
0.85em;margin-left:-
0.36em;
20 margin-right:-
0.15em;vertical-align:
0.15em;}
21 #copy,#license{font-size:
0.84em;line-height:
1.3;}
22 #copy{margin-bottom:
0.5em}#license{margin-top:
0.5em}
23 @media(prefers-color-scheme:dark){body{background:#
1c1c1c;color:white;}
24 a:link{color:#acdeff}a:visited{color:#f8f}a:active{color:#e00}
25 .box{background:#
1b1d1e;border-color:#
373c34;}}
28 <h1><a href=
".">bandali
</a>'s curriculum vitae
</h1>
30 <p class=
"box">also available in plain text
31 as
<a href=
"bandali-cv.txt">bandali-cv.txt
</a></p>
35 <dd><a href=
"https://bndl.org">bndl.org
</a></dd>
37 <dd>bandali@gnu.org
<br />bandali@uwaterloo.ca
</dd>
39 <dd>available upon request via email
</dd>
41 <dd>November
1,
2021</dd>
44 <h2>Summary of Qualifications
</h2>
47 <li>Experience in building software for diverse areas and platforms in
48 various programming languages such as C, Python, and Haskell.
</li>
49 <li>Passionate about applying scientific and engineering methods while
50 designing and building software systems.
</li>
51 <li>Using formal specification techniques to find specification-level
52 bugs early in the design stage rather than implementation.
</li>
53 <li>GNU/Linux system administration on both the client and the server
55 <li>Problem-solving and communication skills, honed through research
56 and teaching roles held in graduate school, as well as holding
57 tutorials discussing complex concepts with fellow students and peers
58 throughout undergraduate studies and high school.
</li>
59 <li>Organizational and teamwork skills, strengthened thanks to
60 community service in form of volunteer activities including organizing
61 the EmacsConf conference and volunteer work for charities such as the
62 Free Software Foundation and St. Brigid's Summer Camp.
</li>
68 <dt>Master of Mathematics in Computer Science, University of Waterloo,
70 <dd>Research focus: formal logic, model checking, verification
</dd>
71 <dd>Thesis:
<a href=
"#mmath">A Comprehensive Study of Declarative
72 Modelling Languages
</a></dd>
73 <dd>Supervisor:
<a href=
"https://cs.uwaterloo.ca/~nday/">Prof. Nancy
77 <dt>Bachelor of Science with Honours in Computer Science,
78 York University,
2017</dt>
79 <dd>Favourite courses: System Specification
& Refinement,
80 Software Requirements Engineering, Software Design, Operating Systems,
81 Computational Complexity, Design
& Analysis
83 <dd>GPA:
7.84/
9.0</dd>
86 <h2 id=
"research">Research Interests
</h2>
88 <p>formal logic, model checking, theorem proving, verification
</p>
90 <h2>Publications
& Presentations
</h2>
92 <p>The complete bibliography of my publications is available as a
93 <span class=
"tex">B
<span>ib
</span>T
<sub>e
</sub>X
</span> bibliography
94 file,
<a href=
"bandali.bib">bandali.bib
</a>.
</p>
99 <dt>A Comparison of the Declarative Modelling Languages B, DASH, and
102 [
<a href=
"papers/modre2018-declarative.pdf">pdf
</a>
103 |
<a href=
"papers/modre2018-declarative.bib">bib
</a>
104 |
<a href=
"https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/">models
</a>
109 Ali Abbassi,
<a href=
"https://bndl.org">Amin Bandali
</a>,
110 <a href=
"https://cs.uwaterloo.ca/~nday/">Nancy A. Day
</a>, Jose Serna
<br />
111 <em>8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE
2018</em><br />
112 Copyright
© 2018 IEEE. All Rights Reserved. Sadly.
119 <dt id=
"mmath">A Comprehensive Study of Declarative Modelling
122 [
<a href=
"theses/bandali-mmath-thesis.pdf">pdf
</a>
123 |
<a href=
"theses/bandali-mmath-thesis.bib">bib
</a>
124 |
<a href=
"https://hdl.handle.net/10012/16059">hdl
</a>
125 |
<a href=
"theses/mmath.html">http
</a>
130 <a href=
"https://bndl.org">Amin Bandali
</a><br />
131 <em><abbr title=
"Master of Mathematics">MMath
</abbr> Thesis,
132 University of Waterloo, David R. Cheriton School of Computer Science,
140 <dt>Jami and how it empowers users
142 [
<a href=
"talks/libreplanet-2021-jami.pdf">pdf
</a>
143 (
<a href=
"talks/libreplanet-2021-jami-with-notes.pdf">with
145 |
<a href=
"talks/libreplanet-2021-jami.bib">bib
</a>
146 |
<a href=
"talks/libreplanet-2021-jami.html">http
</a>
151 <a href=
"https://bndl.org">Amin Bandali
</a><br />
152 <em>Presented at the LibrePlanet
2021 Conference, March
20,
2021.
</em>
155 <dt>The Magic of Specifications and Type Systems
157 [
<a href=
"https://p.bndl.org/cucsc-2017-slides.pdf">slides
</a>
158 |
<a href=
"https://p.bndl.org/eecs4080-poster.pdf">poster
</a>
163 <a href=
"https://bndl.org">Amin Bandali
</a>,
164 <a href=
"https://github.com/cipher1024">Simon Hudon
</a>,
165 <a href=
"https://www.eecs.yorku.ca/~jonathan/">Jonathan S. Ostroff
</a><br />
166 <em>Slides presented at the Canadian Undergraduate Computer Science
167 Conference
2017, University of Toronto, Canada, June
15–17,
2017.
<br />
168 Poster presented at the Lassonde Undergraduate Summer Student Research
169 Conference, York University, Toronto, Canada, August
15,
2017.
</em>
172 <dt>Introducing YULUG
</dt>
174 <a href=
"https://bndl.org">Amin Bandali
</a><br />
175 <em>Slides introducing YULUG
— (GNU/)Linux User Group at York
176 University
— presented at a Computing Students Hub (CSHub) tech
177 talk at York University, Toronto, Canada, February
12,
2015.
</em>
181 <h2>Work
& Research Experience
</h2>
184 <dt>Savoir-faire Linux
</dt>
185 <dd>fall
2020–present | Free Software Consultant | Consultant en
189 <dd>I am part of the Jami core development team at Savoir-faire Linux,
190 where I work on various parts of Jami as a Free Software Consultant.
191 These include working on and maintaining the GTK-based jami-gnome
192 client application written in C++ and C, and packaging Jami for
193 various GNU/Linux distributions and other platforms. I also serve as
194 a community liaison between the Jami core team and the wider free
195 software community around Jami, with the goal of helping facilitate
196 the communications and relations between the two.
</dd>
200 <dt>Free Software Foundation (FSF)
</dt>
201 <dd>spring
2020 | Intern
</dd>
204 <dd>Working with the FSF tech team in a sysadmin role on a variety of
205 tasks including installation of the Sourcehut free software forge on
206 the FSF infrastructure for evaluation for the FSF forge project, as
207 well as a series of enhancements
208 for
<a href=
"https://www.gnu.org">www.gnu.org
</a>.
</dd>
212 <dt>Cheriton School of Science, University of Waterloo
</dt>
213 <dd>winter
2018–spring
2020 | TA, IA, RA
<sup>[*]
</sup></dd>
216 <dd>SE
465 (Software Testing and Quality Assurance): TA in winter
218 <dd>SE
212 (Logic and Computation):
219 <a href=
"teaching/se212-f19.html">IA in Fall
2019</a>, TA in fall
221 <dd>SE
463 (Software Requirement Specification and Analysis): TA in
222 spring
2019 and
2018</dd>
223 <dd>CS
136 (Elementary Algorithm Design and Data Abstraction): TA in
227 <dd><small>[*] Teaching Assistant (marking exams and assignments),
228 Instructional Apprentice (holding tutorials and marking), Research
229 Assistant (doing research for/with supervisor)
</small></dd>
231 <dt>Department of Electrical Engineering
& Computer Science, York
233 <dd>fall
2017 | Teaching Assistant
</dd>
236 <dd>EECS
1012 (Net-Centric Introduction to Computing): TA in fall
237 2017, running labs and marking labs and exams
</dd>
241 <dt>Software Engineering Lab, York University
</dt>
244 <dt>summer
2017 | Research Assistant
</dt>
245 <dd>Worked on an implementation
246 of
<a href=
"https://bertrandmeyer.com/2014/12/07/lampsort/">Lampsort
</a>
248 the
<a href=
"https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/">mathmodels
</a>
249 library, implementing a
<code>rational
</code> class for working with
250 arbitrarily large rational numbers.
</dd>
255 <dt>summer
2016 | Research Student
</dt>
256 <dd>Worked on
<em>Literate Unit-B
</em>, the verifier for Unit-B, a new
257 formal method focused on formal verification of reactive, concurrent,
258 and distributed systems. From the Literate Unit-B codebase (written
259 in Haskell), decoupled the logic module and used it to build
260 <em>Unit-B Web
</em>, a web interface using Literate Unit-B to do
261 predicate calculus proofs. Unit-B Web, also written in Haskell,
262 supports the
<span class=
"tex">L
<sup>a
</sup>T
<sub>e
</sub>X
</span>
263 syntax of the Unit-B logic, renders user input on the page, and calls
264 the sequent prover of the logic module, which uses the Z3 SMT solver
265 to check the validity of user input.
</dd>
266 <dd>Separated Literate Unit-B's type checker from its parser in a
267 large refactoring, allowing easier substitution of other type checking
268 algorithms, and in preparation for implementing subtyping.
</dd>
272 <dt>Lotek Wireless Inc.
</dt>
275 <dt>summer
2016 | Software Developer
</dt>
276 <dd>Designed and developed an Employee Portal web application in C#
277 and the MVC framework, used by employees for accessing various data
278 catalogs and archives.
</dd>
283 <dt>summer
2015 | Computer Programmer
</dt>
284 <dd>Designed and implemented various applications in C# and C for
285 analyzing and testing a satellite pass prediction algorithm for
286 predicting the pass windows of Argos satellites, for scheduling send
287 times of data collected by the company's wildlife tracking
292 <dt>Athlete Builder
</dt>
295 <dt>2013–2014 | Software Developer
</dt>
296 <dd>Developed the Backend of Athlete Builder platform in C# and
298 <dd>Key role in development of the platform core.
</dd>
299 <dd>Developed the alpha version of Athlete Builder Android application
307 <dt>Programming languages
</dt>
308 <dd>C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash,
309 C#, Java, JavaScript
</dd>
311 <dd>GNU Emacs, Git, Alloy, TLA
<sup>+
</sup>,
312 ProB,
<span class=
"tex">L
<sup>a
</sup>T
<sub>e
</sub>X
</span>, continuous
313 integration systems
</dd>
315 <dd>GNU/Linux distributions, including Trisquel, GNU Guix, Debian
</dd>
317 <dd>Persian (mother tongue), English (native proficiency; IELTS:
9.0),
318 French (beginner)
</dd>
321 <h2>Community Service
</h2>
323 <dt>EmacsConf conference
</dt>
326 <dt>2019–present
</dt>
327 <dd>Chief organizer and maintainer of conference infrastructure,
328 including the streaming servers.
</dd>
330 <dd>One of the organizers and in charge of setting up and maintaining
331 vital pieces of infrastructure.
</dd>
334 <dt>Computer Science Club (CSC) of the University of Waterloo
</dt>
335 <dd>Served as the CSC System Administrator in Winter and Spring
2020.
336 Present member of the CSC Systems Committee, overseeing and
337 maintaining a large fleet of GNU/Linux servers for CSC members, as
338 well as running the CSC mirror for free software projects.
</dd>
340 include
<a href=
"https://mailman.csclub.uwaterloo.ca/hyperkitty/list/csc-general@csclub.uwaterloo.ca/message/ZOFF6Y23T6WLG3ZKB2CKLY3YCMB5LHWK/">launching
341 the CSC web IRC client
</a> as part of an effort in bringing modern
342 user freedom- and privacy-respecting communication tools to club
344 <dt>Free/libre software contributions
</dt>
346 of
<a href=
"https://www.gnu.org/software/gnuzilla/gnuzilla.html">GNUzilla
347 and IceCat
</a>, the GNU version of the Mozilla suite and the Firefox
348 browser respectively.
</dd>
350 of
<a href=
"https://www.gnu.org/software/emacs/erc.html">ERC
</a>, the
351 powerful, modular, and extensible IRC client distributed with GNU
353 <dd>Committer and regular contributor
354 to
<a href=
"https://www.gnu.org/software/emacs/emacs.html">GNU
355 Emacs
</a> and
<a href=
"https://guix.gnu.org">GNU Guix
</a>.
</dd>
356 <dd><a href=
"https://www.gnu.org/people/webmeisters.html#bandali">GNU
358 and
<a href=
"https://savannah.gnu.org/maintenance/SavannahHacker/">GNU
359 Savannah hacker
</a>.
</dd>
360 <dt>Volunteer work
</dt>
363 <dt>spring
2013 | Application Developer for VONICAL Inc.
</dt>
364 <dd>Worked on development of the Employment Accessibility Resource
365 Network (EARN) portal using the Anahita social networking platform,
366 written in PHP and running on GNU/Linux.
</dd>
367 <dt>winter
2013 | Mobile
& Web Developer for Hire Works Inc.
</dt>
368 <dd>Worked on a variety of web and mobile development projects for
370 <dt>summer
2012 | Web Developer for St. Brigid's Summer Camp
</dt>
371 <dd>Redesigned and revamped the codebase for the photo gallery section
372 of the camp's website in PHP and JavaScript.
</dd>