fa: typo fix
[~bandali/bndl.org] / cv.html
CommitLineData
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 &mdash; 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 10body{margin:0 auto;max-width:37.5em;}p,li,dt,dd{line-height:1.6}
6dbc815a 11h1{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;
13font-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;
19vertical-align:-0.5ex;}.tex sup{font-size:0.85em;margin-left:-0.36em;
20margin-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;}
24a: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
31as <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
48various programming languages such as C, Python, and Haskell.</li>
49<li>Passionate about applying scientific and engineering methods while
50designing and building software systems.</li>
51<li>Using formal specification techniques to find specification-level
52bugs early in the design stage rather than implementation.</li>
53<li>GNU/Linux system administration on both the client and the server
54side.</li>
55<li>Problem-solving and communication skills, honed through research
56and teaching roles held in graduate school, as well as holding
57tutorials discussing complex concepts with fellow students and peers
58throughout undergraduate studies and high school.</li>
59<li>Organizational and teamwork skills, strengthened thanks to
60community service in form of volunteer activities including organizing
61the EmacsConf conference and volunteer work for charities such as the
62Free 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,
692020</dt>
70<dd>Research focus: formal logic, model checking, verification</dd>
71<dd>Thesis: <a href="#mmath">A Comprehensive Study of Declarative
72Modelling Languages</a></dd>
73<dd>Supervisor: <a href="https://cs.uwaterloo.ca/~nday/">Prof. Nancy
74A. Day</a></dd>
75<dd>GPA: 3.7/4.0</dd>
76
77<dt>Bachelor of Science with Honours in Computer Science,
78York University, 2017</dt>
79<dd>Favourite courses: System Specification &amp; Refinement,
80Software Requirements Engineering, Software Design, Operating Systems,
81Computational Complexity, Design&nbsp;&amp;&nbsp;Analysis
82of 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
94file, <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
100TLA<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>
109Ali 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 />
112Copyright &copy; 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
120Languages
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,
132University of Waterloo, David R. Cheriton School of Computer Science,
133July 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 144notes</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
167Conference 2017, University of Toronto, Canada, June 15&ndash;17, 2017.<br />
168Poster presented at the Lassonde Undergraduate Summer Student Research
169Conference, 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 &mdash; (GNU/)Linux User Group at York
176University &mdash; presented at a Computing Students Hub (CSHub) tech
177talk at York University, Toronto, Canada, February 12, 2015.</em>
178</dd>
179</dl>
180
181<h2>Work &amp; Research Experience</h2>
182
183<dl>
184<dt>Savoir-faire Linux</dt>
185<dd>fall 2020&ndash;present | Free Software Consultant | Consultant en
186logiciel libre</dd>
187<dd>
188<dl>
189<dd>I am part of the Jami core development team at Savoir-faire Linux,
190where I work on various parts of Jami as a Free Software Consultant.
191These include working on and maintaining the GTK-based jami-gnome
192client application written in C++ and C, and packaging Jami for
193various GNU/Linux distributions and other platforms. I also serve as
194a community liaison between the Jami core team and the wider free
195software community around Jami, with the goal of helping facilitate
196the 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
205tasks including installation of the Sourcehut free software forge on
206the FSF infrastructure for evaluation for the FSF forge project, as
207well as a series of enhancements
208for <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&ndash;spring 2020 | TA, IA, RA <sup>[*]</sup></dd>
214<dd>
215<dl>
216<dd>SE 465 (Software Testing and Quality Assurance): TA in winter
2172020</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
2202018</dd>
7808cfc7
AB
221<dd>SE 463 (Software Requirement Specification and Analysis): TA in
222spring 2019 and 2018</dd>
223<dd>CS 136 (Elementary Algorithm Design and Data Abstraction): TA in
224winter 2018</dd>
225</dl>
226</dd>
227<dd><small>[*] Teaching Assistant (marking exams and assignments),
228Instructional Apprentice (holding tutorials and marking), Research
229Assistant (doing research for/with supervisor)</small></dd>
230
231<dt>Department of Electrical Engineering &amp; Computer Science, York
232University</dt>
233<dd>fall 2017 | Teaching Assistant</dd>
234<dd>
235<dl>
236<dd>EECS 1012 (Net-Centric Introduction to Computing): TA in fall
2372017, 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
246of <a href="https://bertrandmeyer.com/2014/12/07/lampsort/">Lampsort</a>
247in Eiffel. Extended
248the <a href="https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/">mathmodels</a>
249library, implementing a <code>rational</code> class for working with
250arbitrarily 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
257formal method focused on formal verification of reactive, concurrent,
258and distributed systems. From the Literate Unit-B codebase (written
259in 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
261predicate calculus proofs. Unit-B Web, also written in Haskell,
262supports the <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>
263syntax of the Unit-B logic, renders user input on the page, and calls
264the sequent prover of the logic module, which uses the Z3 SMT solver
265to check the validity of user input.</dd>
266<dd>Separated Literate Unit-B's type checker from its parser in a
267large refactoring, allowing easier substitution of other type checking
268algorithms, 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#
277and the MVC framework, used by employees for accessing various data
278catalogs 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
285analyzing and testing a satellite pass prediction algorithm for
286predicting the pass windows of Argos satellites, for scheduling send
287times of data collected by the company's wildlife tracking
288products.</dd>
289</dl>
290</dd>
291
292<dt>Athlete Builder</dt>
293<dd>
294<dl>
295<dt>2013&ndash;2014 | Software Developer</dt>
296<dd>Developed the Backend of Athlete Builder platform in C# and
297MVC.</dd>
298<dd>Key role in development of the platform core.</dd>
299<dd>Developed the alpha version of Athlete Builder Android application
300in 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,
309C#, Java, JavaScript</dd>
310<dt>Tools</dt>
311<dd>GNU Emacs, Git, Alloy, TLA<sup>+</sup>,
312ProB, <span class="tex">L<sup>a</sup>T<sub>e</sub>X</span>, continuous
313integration 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),
318French (beginner)</dd>
319</dl>
320
321<h2>Community Service</h2>
322<dl>
323<dt>EmacsConf conference</dt>
324<dd>
325<dl>
326<dt>2019&ndash;present</dt>
327<dd>Chief organizer and maintainer of conference infrastructure,
328including the streaming servers.</dd>
329<dt>2015</dt>
330<dd>One of the organizers and in charge of setting up and maintaining
331vital 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.
336Present member of the CSC Systems Committee, overseeing and
337maintaining a large fleet of GNU/Linux servers for CSC members, as
338well as running the CSC mirror for free software projects.</dd>
339<dd>Notable projects
56af22d0 340include <a href="https://mailman.csclub.uwaterloo.ca/hyperkitty/list/csc-general@csclub.uwaterloo.ca/message/ZOFF6Y23T6WLG3ZKB2CKLY3YCMB5LHWK/">launching
7808cfc7
AB
341the CSC web IRC client</a> as part of an effort in bringing modern
342user freedom- and privacy-respecting communication tools to club
343members.</dd>
344<dt>Free/libre software contributions</dt>
345<dd>Co-maintainer
346of <a href="https://www.gnu.org/software/gnuzilla/gnuzilla.html">GNUzilla
347and IceCat</a>, the GNU version of the Mozilla suite and the Firefox
348browser respectively.</dd>
349<dd>Maintainer
350of <a href="https://www.gnu.org/software/emacs/erc.html">ERC</a>, the
351powerful, modular, and extensible IRC client distributed with GNU
352Emacs.</dd>
353<dd>Committer and regular contributor
354to <a href="https://www.gnu.org/software/emacs/emacs.html">GNU
355Emacs</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
357webmaster</a>
358and <a href="https://savannah.gnu.org/maintenance/SavannahHacker/">GNU
359Savannah 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
365Network (EARN) portal using the Anahita social networking platform,
366written in PHP and running on GNU/Linux.</dd>
367<dt>winter 2013 | Mobile &amp; Web Developer for Hire Works Inc.</dt>
368<dd>Worked on a variety of web and mobile development projects for
369Hire 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
372of the camp's website in PHP and JavaScript.</dd>
373</dl>
374</dd>
375</dl>
376</body>
377</html>