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