| 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> |