Commit | Line | Data |
---|---|---|
7808cfc7 AB |
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:,"> | |
0168c818 | 7 | <link rel="canonical" href="https://bndl.org/cv.html" /> |
7808cfc7 AB |
8 | <link rel="alternate" href="bandali-cv.txt" title="plain text" type="text/plain" /> |
9 | <style> | |
ca00a074 | 10 | body{margin:0 auto;max-width:37.5em;}p,li,dt,dd{line-height:1.6} |
6dbc815a | 11 | h1{font-size:1.5em}h2{font-size:1.3em}h3{font-size:1.1em} |
7808cfc7 AB |
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> | |
dadecbb0 | 35 | <dd><a href="https://bndl.org">bndl.org</a></dd> |
7808cfc7 | 36 | <dt>Email</dt> |
dadecbb0 | 37 | <dd>bandali@gnu.org<br />bandali@uwaterloo.ca</dd> |
7808cfc7 AB |
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 & Refinement, | |
80 | Software Requirements Engineering, Software Design, Operating Systems, | |
81 | Computational Complexity, Design & 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 & 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> | |
56af22d0 AB |
102 | [ <a href="papers/modre2018-declarative.pdf">pdf</a> |
103 | | <a href="papers/modre2018-declarative.bib">bib</a> | |
7808cfc7 AB |
104 | | <a href="https://cs.uwaterloo.ca/~nday/artifacts/2018-modre/">models</a> |
105 | ] | |
106 | </small> | |
107 | </dt> | |
108 | <dd> | |
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. | |
113 | </dd> | |
114 | </dl> | |
115 | ||
116 | <h3>Theses</h3> | |
117 | ||
118 | <dl> | |
119 | <dt id="mmath">A Comprehensive Study of Declarative Modelling | |
120 | Languages | |
121 | <small> | |
56af22d0 AB |
122 | [ <a href="theses/bandali-mmath-thesis.pdf">pdf</a> |
123 | | <a href="theses/bandali-mmath-thesis.bib">bib</a> | |
7808cfc7 | 124 | | <a href="https://hdl.handle.net/10012/16059">hdl</a> |
56af22d0 | 125 | | <a href="theses/mmath.html">http</a> |
7808cfc7 AB |
126 | ] |
127 | </small> | |
128 | </dt> | |
129 | <dd> | |
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, | |
133 | July 2020.</em> | |
134 | </dd> | |
135 | </dl> | |
136 | ||
137 | <h3>Talks</h3> | |
138 | ||
139 | <dl> | |
140 | <dt>Jami and how it empowers users | |
141 | <small> | |
56af22d0 AB |
142 | [ <a href="talks/libreplanet-2021-jami.pdf">pdf</a> |
143 | (<a href="talks/libreplanet-2021-jami-with-notes.pdf">with | |
7808cfc7 | 144 | notes</a>) |
56af22d0 AB |
145 | | <a href="talks/libreplanet-2021-jami.bib">bib</a> |
146 | | <a href="talks/libreplanet-2021-jami.html">http</a> | |
7808cfc7 AB |
147 | ] |
148 | </small> | |
149 | </dt> | |
150 | <dd> | |
151 | <a href="https://bndl.org">Amin Bandali</a><br /> | |
152 | <em>Presented at the LibrePlanet 2021 Conference, March 20, 2021.</em> | |
153 | </dd> | |
154 | ||
155 | <dt>The Magic of Specifications and Type Systems | |
156 | <small> | |
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> | |
159 | ] | |
160 | </small> | |
161 | </dt> | |
162 | <dd> | |
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> | |
170 | </dd> | |
171 | ||
172 | <dt>Introducing YULUG</dt> | |
173 | <dd> | |
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> | |
178 | </dd> | |
179 | </dl> | |
180 | ||
181 | <h2>Work & Research Experience</h2> | |
182 | ||
183 | <dl> | |
184 | <dt>Savoir-faire Linux</dt> | |
185 | <dd>fall 2020–present | Free Software Consultant | Consultant en | |
186 | logiciel libre</dd> | |
187 | <dd> | |
188 | <dl> | |
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> | |
197 | </dl> | |
198 | </dd> | |
199 | ||
200 | <dt>Free Software Foundation (FSF)</dt> | |
201 | <dd>spring 2020 | Intern</dd> | |
202 | <dd> | |
203 | <dl> | |
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> | |
209 | </dl> | |
210 | </dd> | |
211 | ||
212 | <dt>Cheriton School of Science, University of Waterloo</dt> | |
213 | <dd>winter 2018–spring 2020 | TA, IA, RA <sup>[*]</sup></dd> | |
214 | <dd> | |
215 | <dl> | |
216 | <dd>SE 465 (Software Testing and Quality Assurance): TA in winter | |
217 | 2020</dd> | |
56af22d0 AB |
218 | <dd>SE 212 (Logic and Computation): |
219 | <a href="teaching/se212-f19.html">IA in Fall 2019</a>, TA in fall | |
220 | 2018</dd> | |
7808cfc7 AB |
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 | |
224 | winter 2018</dd> | |
225 | </dl> | |
226 | </dd> | |
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> | |
230 | ||
231 | <dt>Department of Electrical Engineering & Computer Science, York | |
232 | University</dt> | |
233 | <dd>fall 2017 | Teaching Assistant</dd> | |
234 | <dd> | |
235 | <dl> | |
236 | <dd>EECS 1012 (Net-Centric Introduction to Computing): TA in fall | |
237 | 2017, running labs and marking labs and exams</dd> | |
238 | </dl> | |
239 | </dd> | |
240 | ||
241 | <dt>Software Engineering Lab, York University</dt> | |
242 | <dd> | |
243 | <dl> | |
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> | |
247 | in Eiffel. Extended | |
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> | |
251 | </dl> | |
252 | </dd> | |
253 | <dd> | |
254 | <dl> | |
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> | |
269 | </dl> | |
270 | </dd> | |
271 | ||
272 | <dt>Lotek Wireless Inc.</dt> | |
273 | <dd> | |
274 | <dl> | |
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> | |
279 | </dl> | |
280 | </dd> | |
281 | <dd> | |
282 | <dl> | |
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 | |
288 | products.</dd> | |
289 | </dl> | |
290 | </dd> | |
291 | ||
292 | <dt>Athlete Builder</dt> | |
293 | <dd> | |
294 | <dl> | |
295 | <dt>2013–2014 | Software Developer</dt> | |
296 | <dd>Developed the Backend of Athlete Builder platform in C# and | |
297 | MVC.</dd> | |
298 | <dd>Key role in development of the platform core.</dd> | |
299 | <dd>Developed the alpha version of Athlete Builder Android application | |
300 | in Java.</dd> | |
301 | </dl> | |
302 | </dd> | |
303 | </dl> | |
304 | ||
305 | <h2>Skills</h2> | |
306 | <dl> | |
307 | <dt>Programming languages</dt> | |
308 | <dd>C, C++, Haskell, Emacs Lisp, Guile Scheme, Python, Eiffel, Bash, | |
309 | C#, Java, JavaScript</dd> | |
310 | <dt>Tools</dt> | |
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> | |
314 | <dt>Platforms</dt> | |
315 | <dd>GNU/Linux distributions, including Trisquel, GNU Guix, Debian</dd> | |
316 | <dt>Languages</dt> | |
317 | <dd>Persian (mother tongue), English (native proficiency; IELTS: 9.0), | |
318 | French (beginner)</dd> | |
319 | </dl> | |
320 | ||
321 | <h2>Community Service</h2> | |
322 | <dl> | |
323 | <dt>EmacsConf conference</dt> | |
324 | <dd> | |
325 | <dl> | |
326 | <dt>2019–present</dt> | |
327 | <dd>Chief organizer and maintainer of conference infrastructure, | |
328 | including the streaming servers.</dd> | |
329 | <dt>2015</dt> | |
330 | <dd>One of the organizers and in charge of setting up and maintaining | |
331 | vital pieces of infrastructure.</dd> | |
332 | </dl> | |
333 | </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> | |
339 | <dd>Notable projects | |
56af22d0 | 340 | include <a href="https://mailman.csclub.uwaterloo.ca/hyperkitty/list/csc-general@csclub.uwaterloo.ca/message/ZOFF6Y23T6WLG3ZKB2CKLY3YCMB5LHWK/">launching |
7808cfc7 AB |
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 | |
343 | members.</dd> | |
344 | <dt>Free/libre software contributions</dt> | |
345 | <dd>Co-maintainer | |
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> | |
349 | <dd>Maintainer | |
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 | |
352 | Emacs.</dd> | |
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 | |
357 | webmaster</a> | |
358 | and <a href="https://savannah.gnu.org/maintenance/SavannahHacker/">GNU | |
359 | Savannah hacker</a>.</dd> | |
360 | <dt>Volunteer work</dt> | |
361 | <dd> | |
362 | <dl> | |
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 | |
369 | Hire Works.</dd> | |
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> | |
373 | </dl> | |
374 | </dd> | |
375 | </dl> | |
376 | </body> | |
377 | </html> |