use a centred body layout
[~bandali/bndl.org] / cv.html
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 &mdash; 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" />
9 <style>
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;}}
26 </style></head>
27 <body>
28 <h1><a href=".">bandali</a>'s curriculum vitae</h1>
29
30 <p class="box">also available in plain text
31 as <a href="bandali-cv.txt">bandali-cv.txt</a></p>
32
33 <dl id="link-grid">
34 <dt>Site</dt>
35 <dd><a href="https://bndl.org">bndl.org</a></dd>
36 <dt>Email</dt>
37 <dd>bandali@gnu.org<br />bandali@uwaterloo.ca</dd>
38 <dt>Phone</dt>
39 <dd>available upon request via email</dd>
40 <dt>Last update</dt>
41 <dd>November 1, 2021</dd>
42 </dl>
43
44 <h2>Summary of Qualifications</h2>
45
46 <ul>
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
54 side.</li>
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>
63 </ul>
64
65 <h2>Education</h2>
66
67 <dl>
68 <dt>Master of Mathematics in Computer Science, University of Waterloo,
69 2020</dt>
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
74 A. Day</a></dd>
75 <dd>GPA: 3.7/4.0</dd>
76
77 <dt>Bachelor of Science with Honours in Computer Science,
78 York University, 2017</dt>
79 <dd>Favourite courses: System Specification &amp; Refinement,
80 Software Requirements Engineering, Software Design, Operating Systems,
81 Computational Complexity, Design&nbsp;&amp;&nbsp;Analysis
82 of Algorithms</dd>
83 <dd>GPA: 7.84/9.0</dd>
84 </dl>
85
86 <h2 id="research">Research Interests</h2>
87
88 <p>formal logic, model checking, theorem proving, verification</p>
89
90 <h2>Publications &amp; Presentations</h2>
91
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>
95
96 <h3>Papers</h3>
97
98 <dl>
99 <dt>A Comparison of the Declarative Modelling Languages B, DASH, and
100 TLA<sup>+</sup>
101 <small>
102 [ <a href="https://p.bndl.org/modre2018-declarative.pdf">pdf</a>
103 | <a href="https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/">models</a>
104 ]
105 </small>
106 </dt>
107 <dd>
108 Ali Abbassi, <a href="https://bndl.org">Amin Bandali</a>,
109 <a href="https://cs.uwaterloo.ca/~nday/">Nancy A. Day</a>, Jose Serna<br />
110 <em>8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018</em><br />
111 Copyright &copy; 2018 IEEE. All Rights Reserved. Sadly.
112 </dd>
113 </dl>
114
115 <h3>Theses</h3>
116
117 <dl>
118 <dt id="mmath">A Comprehensive Study of Declarative Modelling
119 Languages
120 <small>
121 [ <a href="mmath/bandali-mmath-thesis.pdf">pdf</a>
122 | <a href="https://hdl.handle.net/10012/16059">hdl</a>
123 | <a href="mmath/">http</a>
124 ]
125 </small>
126 </dt>
127 <dd>
128 <a href="https://bndl.org">Amin Bandali</a><br />
129 <em><abbr title="Master of Mathematics">MMath</abbr> Thesis,
130 University of Waterloo, David R. Cheriton School of Computer Science,
131 July 2020.</em>
132 </dd>
133 </dl>
134
135 <h3>Talks</h3>
136
137 <dl>
138 <dt>Jami and how it empowers users
139 <small>
140 [ <a href="https://p.bndl.org/bandali-jami-libreplanet-2021.pdf">pdf</a>
141 (<a href="https://p.bndl.org/bandali-jami-libreplanet-2021-with-notes.pdf">with
142 notes</a>)
143 | <a href="2021/03/20/libreplanet-2021.html">http</a>
144 ]
145 </small>
146 </dt>
147 <dd>
148 <a href="https://bndl.org">Amin Bandali</a><br />
149 <em>Presented at the LibrePlanet 2021 Conference, March 20, 2021.</em>
150 </dd>
151
152 <dt>The Magic of Specifications and Type Systems
153 <small>
154 [ <a href="https://p.bndl.org/cucsc-2017-slides.pdf">slides</a>
155 | <a href="https://p.bndl.org/eecs4080-poster.pdf">poster</a>
156 ]
157 </small>
158 </dt>
159 <dd>
160 <a href="https://bndl.org">Amin Bandali</a>,
161 <a href="https://github.com/cipher1024">Simon Hudon</a>,
162 <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan S. Ostroff</a><br />
163 <em>Slides presented at the Canadian Undergraduate Computer Science
164 Conference 2017, University of Toronto, Canada, June 15&ndash;17, 2017.<br />
165 Poster presented at the Lassonde Undergraduate Summer Student Research
166 Conference, York University, Toronto, Canada, August 15, 2017.</em>
167 </dd>
168
169 <dt>Introducing YULUG</dt>
170 <dd>
171 <a href="https://bndl.org">Amin Bandali</a><br />
172 <em>Slides introducing YULUG &mdash; (GNU/)Linux User Group at York
173 University &mdash; presented at a Computing Students Hub (CSHub) tech
174 talk at York University, Toronto, Canada, February 12, 2015.</em>
175 </dd>
176 </dl>
177
178 <h2>Work &amp; Research Experience</h2>
179
180 <dl>
181 <dt>Savoir-faire Linux</dt>
182 <dd>fall 2020&ndash;present | Free Software Consultant | Consultant en
183 logiciel libre</dd>
184 <dd>
185 <dl>
186 <dd>I am part of the Jami core development team at Savoir-faire Linux,
187 where I work on various parts of Jami as a Free Software Consultant.
188 These include working on and maintaining the GTK-based jami-gnome
189 client application written in C++ and C, and packaging Jami for
190 various GNU/Linux distributions and other platforms. I also serve as
191 a community liaison between the Jami core team and the wider free
192 software community around Jami, with the goal of helping facilitate
193 the communications and relations between the two.</dd>
194 </dl>
195 </dd>
196
197 <dt>Free Software Foundation (FSF)</dt>
198 <dd>spring 2020 | Intern</dd>
199 <dd>
200 <dl>
201 <dd>Working with the FSF tech team in a sysadmin role on a variety of
202 tasks including installation of the Sourcehut free software forge on
203 the FSF infrastructure for evaluation for the FSF forge project, as
204 well as a series of enhancements
205 for <a href="https://www.gnu.org">www.gnu.org</a>.</dd>
206 </dl>
207 </dd>
208
209 <dt>Cheriton School of Science, University of Waterloo</dt>
210 <dd>winter 2018&ndash;spring 2020 | TA, IA, RA <sup>[*]</sup></dd>
211 <dd>
212 <dl>
213 <dd>SE 465 (Software Testing and Quality Assurance): TA in winter
214 2020</dd>
215 <dd>SE 212 (Logic and Computation): <a href="se212-f19">IA in
216 Fall 2019</a>, TA in fall 2018</dd>
217 <dd>SE 463 (Software Requirement Specification and Analysis): TA in
218 spring 2019 and 2018</dd>
219 <dd>CS 136 (Elementary Algorithm Design and Data Abstraction): TA in
220 winter 2018</dd>
221 </dl>
222 </dd>
223 <dd><small>[*] Teaching Assistant (marking exams and assignments),
224 Instructional Apprentice (holding tutorials and marking), Research
225 Assistant (doing research for/with supervisor)</small></dd>
226
227 <dt>Department of Electrical Engineering &amp; Computer Science, York
228 University</dt>
229 <dd>fall 2017 | Teaching Assistant</dd>
230 <dd>
231 <dl>
232 <dd>EECS 1012 (Net-Centric Introduction to Computing): TA in fall
233 2017, running labs and marking labs and exams</dd>
234 </dl>
235 </dd>
236
237 <dt>Software Engineering Lab, York University</dt>
238 <dd>
239 <dl>
240 <dt>summer 2017 | Research Assistant</dt>
241 <dd>Worked on an implementation
242 of <a href="https://bertrandmeyer.com/2014/12/07/lampsort/">Lampsort</a>
243 in Eiffel. Extended
244 the <a href="https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/">mathmodels</a>
245 library, implementing a <code>rational</code> class for working with
246 arbitrarily large rational numbers.</dd>
247 </dl>
248 </dd>
249 <dd>
250 <dl>
251 <dt>summer 2016 | Research Student</dt>
252 <dd>Worked on <em>Literate Unit-B</em>, the verifier for Unit-B, a new
253 formal method focused on formal verification of reactive, concurrent,
254 and distributed systems. From the Literate Unit-B codebase (written
255 in Haskell), decoupled the logic module and used it to build
256 <em>Unit-B Web</em>, a web interface using Literate Unit-B to do
257 predicate calculus proofs. Unit-B Web, also written in Haskell,
258 supports the <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>
259 syntax of the Unit-B logic, renders user input on the page, and calls
260 the sequent prover of the logic module, which uses the Z3 SMT solver
261 to check the validity of user input.</dd>
262 <dd>Separated Literate Unit-B's type checker from its parser in a
263 large refactoring, allowing easier substitution of other type checking
264 algorithms, and in preparation for implementing subtyping.</dd>
265 </dl>
266 </dd>
267
268 <dt>Lotek Wireless Inc.</dt>
269 <dd>
270 <dl>
271 <dt>summer 2016 | Software Developer</dt>
272 <dd>Designed and developed an Employee Portal web application in C#
273 and the MVC framework, used by employees for accessing various data
274 catalogs and archives.</dd>
275 </dl>
276 </dd>
277 <dd>
278 <dl>
279 <dt>summer 2015 | Computer Programmer</dt>
280 <dd>Designed and implemented various applications in C# and C for
281 analyzing and testing a satellite pass prediction algorithm for
282 predicting the pass windows of Argos satellites, for scheduling send
283 times of data collected by the company's wildlife tracking
284 products.</dd>
285 </dl>
286 </dd>
287
288 <dt>Athlete Builder</dt>
289 <dd>
290 <dl>
291 <dt>2013&ndash;2014 | Software Developer</dt>
292 <dd>Developed the Backend of Athlete Builder platform in C# and
293 MVC.</dd>
294 <dd>Key role in development of the platform core.</dd>
295 <dd>Developed the alpha version of Athlete Builder Android application
296 in Java.</dd>
297 </dl>
298 </dd>
299 </dl>
300
301 <h2>Skills</h2>
302 <dl>
303 <dt>Programming languages</dt>
304 <dd>C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash,
305 C#, Java, JavaScript</dd>
306 <dt>Tools</dt>
307 <dd>GNU Emacs, Git, Alloy, TLA<sup>+</sup>,
308 ProB, <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>, continuous
309 integration systems</dd>
310 <dt>Platforms</dt>
311 <dd>GNU/Linux distributions, including Trisquel, GNU Guix, Debian</dd>
312 <dt>Languages</dt>
313 <dd>Persian (mother tongue), English (native proficiency; IELTS: 9.0),
314 French (beginner)</dd>
315 </dl>
316
317 <h2>Community Service</h2>
318 <dl>
319 <dt>EmacsConf conference</dt>
320 <dd>
321 <dl>
322 <dt>2019&ndash;present</dt>
323 <dd>Chief organizer and maintainer of conference infrastructure,
324 including the streaming servers.</dd>
325 <dt>2015</dt>
326 <dd>One of the organizers and in charge of setting up and maintaining
327 vital pieces of infrastructure.</dd>
328 </dl>
329 </dd>
330 <dt>Computer Science Club (CSC) of the University of Waterloo</dt>
331 <dd>Served as the CSC System Administrator in Winter and Spring 2020.
332 Present member of the CSC Systems Committee, overseeing and
333 maintaining a large fleet of GNU/Linux servers for CSC members, as
334 well as running the CSC mirror for free software projects.</dd>
335 <dd>Notable projects
336 include <a href="https://mailman.csclub.uwaterloo.ca/pipermail/csc-general/2020-July/000837.html">launching
337 the CSC web IRC client</a> as part of an effort in bringing modern
338 user freedom- and privacy-respecting communication tools to club
339 members.</dd>
340 <dt>Free/libre software contributions</dt>
341 <dd>Co-maintainer
342 of <a href="https://www.gnu.org/software/gnuzilla/gnuzilla.html">GNUzilla
343 and IceCat</a>, the GNU version of the Mozilla suite and the Firefox
344 browser respectively.</dd>
345 <dd>Maintainer
346 of <a href="https://www.gnu.org/software/emacs/erc.html">ERC</a>, the
347 powerful, modular, and extensible IRC client distributed with GNU
348 Emacs.</dd>
349 <dd>Committer and regular contributor
350 to <a href="https://www.gnu.org/software/emacs/emacs.html">GNU
351 Emacs</a> and <a href="https://guix.gnu.org">GNU Guix</a>.</dd>
352 <dd><a href="https://www.gnu.org/people/webmeisters.html#bandali">GNU
353 webmaster</a>
354 and <a href="https://savannah.gnu.org/maintenance/SavannahHacker/">GNU
355 Savannah hacker</a>.</dd>
356 <dt>Volunteer work</dt>
357 <dd>
358 <dl>
359 <dt>spring 2013 | Application Developer for VONICAL Inc.</dt>
360 <dd>Worked on development of the Employment Accessibility Resource
361 Network (EARN) portal using the Anahita social networking platform,
362 written in PHP and running on GNU/Linux.</dd>
363 <dt>winter 2013 | Mobile &amp; Web Developer for Hire Works Inc.</dt>
364 <dd>Worked on a variety of web and mobile development projects for
365 Hire Works.</dd>
366 <dt>summer 2012 | Web Developer for St. Brigid's Summer Camp</dt>
367 <dd>Redesigned and revamped the codebase for the photo gallery section
368 of the camp's website in PHP and JavaScript.</dd>
369 </dl>
370 </dd>
371 </dl>
372 </body>
373 </html>