2cc374e6ef71b69ad2a3874a9cd5bcda707d8b7a
[~bandali/cv] / bandali-resume.tex
1 % bandali-resume.tex --- bandali's résumé -*-latex-*-
2
3 % Copyright (C) 2016-2021 Amin Bandali <bandali@gnu.org>
4
5 % This résumé is free software: you can redistribute it and/or modify
6 % it under the terms of the GNU General Public License as published by
7 % the Free Software Foundation, either version 3 of the License, or
8 % (at your option) any later version.
9
10 % This résumé is distributed in the hope that it will be useful,
11 % but WITHOUT ANY WARRANTY; without even the implied warranty of
12 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 % GNU General Public License for more details.
14
15 % You should have received a copy of the GNU General Public License
16 % along with this résumé. If not, see <https://www.gnu.org/licenses/>.
17
18
19 \documentclass[letterpaper]{article}
20
21 \def\name{Amin Bandali}
22 \def\site{shemshak.org/\string~bandali}
23 \def\siteurl{https://\site}
24 \def\pubs#1{\siteurl/publications\##1}
25 \def\mail{bandali@gnu.org}
26 \def\nday{https://cs.uwaterloo.ca/~nday/}
27
28 %% package imports
29 \usepackage{geometry} % setting page geometry
30 \usepackage{enumitem} % enumerate with [resume] option
31 \usepackage{fontspec} % needs LuaTeX
32 \usepackage{sectsty} % custom section fonts
33 \usepackage{hyperref} % for PDF metadata
34 \usepackage{fancyhdr} % fine control of headers/footers
35 \usepackage{lastpage} % as the name says :-)
36
37 %% PDF metadata
38 \hypersetup{
39 unicode, % for "résumé"
40 pdfstartview={FitH}, % (H for horizontal)
41 pdftitle={\name: Résumé},
42 pdfauthor={\name},
43 pdfsubject={Résumé},
44 pdfkeywords={free software consultant, formal methods, formal logic,
45 model checking, verification, type systems, interactive theorem
46 provers, functional programming, haskell, lean prover},
47 pdfpagemode=UseNone,
48 pdfcreator={GNU Emacs 28.0.50},
49 pdflang={English},
50 pdfnewwindow=true,
51 colorlinks=true,
52 urlcolor=black
53 }
54
55 %% page geometry
56 \geometry{
57 left=0.5in,
58 top=0.5in,
59 right=0.5in,
60 bottom=0.75in
61 }
62
63 %% footer setup
64 \pagestyle{fancy}
65 \fancyhf{} % clear existing header/footer
66 \renewcommand\headrulewidth{0pt}
67 \cfoot{%
68 \textsc{\addfontfeature{Letters=UppercaseSmallCaps,LetterSpace=6.0}%
69 \small{}Bandali Résumé \textemdash{} page \thepage{} of \pageref*{LastPage}}}
70
71 %% body text font
72 %% \usepackage[lining, tabular]{ebgaramond}
73 \renewcommand{\familydefault}{\sfdefault}
74 \setmonofont[Scale=0.87]{inconsolata}
75 \setsansfont[Scale=0.95]{Jost}
76
77 %% title font
78 \newcommand{\titlefont}[1]{{\bfseries\Large#1}}
79
80 %% section heading font
81 \sectionfont{\bfseries\normalsize\uppercase}
82 \subsectionfont{\bfseries\normalsize\itshape}
83
84 %% don't indent paragraphs
85 \setlength\parindent{0em}
86
87 %% omit itemize bullets, set more compact spacing
88 \renewenvironment{itemize}{
89 \begin{list}{}{
90 \setlength{\leftmargin}{1.5em}
91 \setlength{\itemsep}{0.25em}
92 \setlength{\parskip}{0em}
93 \setlength{\parsep}{0.25em}
94 }
95 }{
96 \end{list}
97 }
98 \setlist[enumerate]{itemsep=0.25em}
99
100 %% month and year only
101 \renewcommand{\today}{\ifcase \month \or January\or February\or March%
102 \or April\or May \or June\or July\or August\or September\or October%
103 \or November\or December\fi%
104 \number \year}
105
106 %% various command definitions
107 \newcommand{\tla}{TLA${}^+$}
108
109
110 \begin{document}
111
112 \titlefont{\name}
113
114 \bigskip
115 \today
116
117 \medskip
118 \href{\siteurl}{\addfontfeature{LetterSpace=2.0}\site}\\
119 \href{mailto:\mail}{\mail}\\
120
121 \section*{Summary of Qualifications}
122
123 \begin{enumerate}[label=\raisebox{-0.9ex}{\LARGE\textbullet}]
124 \item Experience in building software for diverse areas and platforms
125 in various programming languages such as C, Python, and Haskell.
126 \item Passionate about applying scientific and engineering methods
127 while designing and building software systems.
128 \item Using formal specification techniques to find
129 specification-level bugs early in the design stage rather than
130 implementation.
131 \item GNU/Linux system administration on both the client and the
132 server side.
133 \item Problem-solving and communication skills, honed through research
134 and teaching roles held in graduate school, as well as holding
135 tutorials discussing complex concepts with fellow students and peers
136 throughout undergraduate studies and high school.
137 \item Organizational and teamwork skills, strengthened thanks to
138 community service in form of volunteer activities including
139 organizing the EmacsConf conference and volunteer work for charities
140 such as the Free Software Foundation and St.~Brigid's Summer Camp.
141 \end{enumerate}
142
143 \section*{Education}
144
145 \begin{itemize}
146 \item Master of Mathematics in Computer Science, University of
147 Waterloo, 2020.
148 % completed July 14, 2020
149 \item Bachelor of Science with Honours in Computer Science, York
150 University, 2017.
151 % completed December 2017
152 \end{itemize}
153
154 \section*{Work Experience}
155
156 \subsection*{Savoir-faire Linux}
157 \begin{itemize}
158 \item
159 \begin{description}[font=\mdseries]
160 \item[fall 2020--present] Free Software Consultant
161
162 I am part of the Jami core development team at Savoir-faire Linux,
163 where I work on various parts of Jami as a Free Software
164 Consultant. These include working on and maintaining the
165 GTK+-based jami-gnome client application written in C++ and C, and
166 packaging Jami for various GNU/Linux distributions and other
167 platforms. I also serve as a community liaison between the Jami
168 core team and the wider free software community around Jami, with
169 the goal of helping facilitate the communications and relations
170 between the two.
171 \end{description}
172 \end{itemize}
173
174 \subsection*{Free Software Foundation (FSF)}
175 \begin{itemize}
176 \item
177 \begin{description}[font=\mdseries]
178 \item[spring 2020] Tech team intern
179
180 Working in a sysadmin role on a variety of tasks including
181 installation of the Sourcehut free software forge on the FSF
182 infrastructure for evaluation for the FSF forge project, as well
183 as a series of enhancements for
184 \href{https://www.gnu.org}{www.gnu.org}.
185 \end{description}
186 \end{itemize}
187
188 \subsection*{Cheriton School of Computer Science, University of Waterloo}
189 \begin{itemize}
190 \item \textit{TA}: Teaching Assistant, marking exams and assignments.
191 \textit{IA}: Instructional Apprentice, holding tutorials and marking
192 \item
193 \begin{description}[font=\mdseries]
194 \item[SE 465 (Software Testing and Quality Assurance)] \textit{TA}
195 in winter 2020.
196 \item[SE 212 (Logic and Computation)] \textit{IA} in fall 2019,
197 \textit{TA} in fall 2018.
198 \item[SE 463 (Software Requirements Specification and Analysis)]
199 \textit{TA} in spring 2019 and 2018.
200 \item[CS 136 (Elementary Algorithm Design and Data Abstraction)]
201 \textit{TA} in winter 2018.
202 \end{description}
203 \end{itemize}
204
205 \subsection*{Dept. of Electrical Engineering \& Computer Science, York University}
206 \begin{itemize}
207 \item
208 \begin{description}[font=\mdseries]
209 \item[EECS 1012 (Net-Centric Introduction to Computing)] TA in fall
210 2017.
211 \end{description}
212 \end{itemize}
213
214 \subsection*{Software Engineering Lab, York University}
215 \begin{itemize}
216 \item
217 \begin{description}[font=\mdseries]
218 \item[summer 2017] Research Assistant
219
220 Worked on an implementation of
221 \href{https://bertrandmeyer.com/2014/12/07/lampsort/}{\textsf{Lampsort}}
222 in Eiffel. Extended the
223 \href{https://svn.eecs.yorku.ca/repos/sel-open/mathmodels/}{\textsf{mathmodels}}
224 library, implementing a \textsc{rational} class for working with
225 arbitrarily large rational numbers.
226 \item[summer 2016] Research Student
227
228 Worked on \textit{Literate Unit-B}, the verifier for Unit-B, a new
229 formal method focused on formal verification of reactive,
230 concurrent and distributed systems. From the Literate Unit-B
231 codebase (written in Haskell), decoupled the logic module and used
232 it to build \textit{Unit-B Web}, a web interface using Literate
233 Unit-B to do predicate calculus proofs. Unit-B Web, also written
234 in Haskell, supports the \LaTeX{} syntax of the Unit-B logic,
235 renders user input on the page, and calls the sequent prover of
236 the logic module, which uses the Z3 SMT solver to check the
237 validity of user input.
238
239 Separated Literate Unit-B's type checker from its parser in a
240 large refactoring, allowing easier substitution of other type
241 checking algorithms, and in preparation for implementing
242 subtyping.
243 \end{description}
244 \end{itemize}
245
246 \subsection*{Lotek Wireless Inc.}
247 \begin{itemize}
248 \item
249 \begin{description}[font=\mdseries]
250 \item[summer 2016] Software Developer
251
252 Designed and developed an Employee Portal web application in C\#
253 and the MVC framework, used by employees for accessing various
254 data catalogs and archives.
255 \item[summer 2015] Software Developer
256
257 Designed and implemented various applications in C\# and C for
258 analyzing and testing a satellite pass prediction algorithm for
259 predicting the pass windows of Argos satellites, for scheduling
260 send times of data collected by the company's wildlife tracking
261 products.
262 \end{description}
263 \end{itemize}
264
265 \subsection*{Athlete Builder}
266 \begin{itemize}
267 \item
268 \begin{description}[font=\mdseries]
269 \item[2013--2014] Software Developer
270
271 Developed the Backend of Athlete Builder platform in C\# and MVC.
272
273 Key role in development of the platform core.
274
275 Developed the alpha version of Athlete Builder Android application
276 in Java.
277 \end{description}
278 \end{itemize}
279
280 \section*{Skills}
281
282 \begin{itemize}
283 \item \textit{Programming Languages:} C, C++, Haskell, Emacs Lisp,
284 Guile Scheme, Python, Eiffel, Bash, C\#, Java, JavaScript.
285 \item \textit{Tools:} GNU Emacs, Git, Alloy, \tla, ProB, \LaTeX,
286 continuous integration systems.
287 \item \textit{Platforms:} GNU/Linux distributions, including Trisquel,
288 GNU Guix, Debian.
289 \item \textit{Languages:} Persian (mother tongue), English (fluent), French
290 (beginner).
291 \end{itemize}
292
293 \section*{Community Service}
294
295 \subsection*{EmacsConf Conference}
296
297 \begin{itemize}
298 \item
299 \begin{description}[font=\mdseries]
300 \item[\href{https://emacsconf.org}{2019--present}] Chief organizer
301 and maintainer of conference infrastructure, including the
302 streaming servers.
303 \item[\href{https://emacsconf.org/2015/}{2015}\phantom{--present}]
304 One of the organizers and in charge of setting up and maintaining
305 vital pieces of infrastructure.
306 \end{description}
307 \end{itemize}
308
309 \subsection*{Computer Science Club (CSC) of the University of Waterloo}
310
311 \begin{itemize}
312 \item Served as the CSC System Administrator in Winter and Spring
313 2020. Present member of the CSC Systems Committee, overseeing and
314 maintaining a large fleet of GNU/Linux servers for CSC members, as
315 well as running the CSC mirror for free software projects.
316
317 Notable projects include
318 \href{https://mailman.csclub.uwaterloo.ca/pipermail/csc-general/2020-July/000837.html}{launching
319 the CSC web IRC client} as part of an effort in bringing modern
320 user freedom- and privacy-respecting communication tools to club
321 members.
322 \end{itemize}
323
324 \subsection*{Free/Libre Software Contributions}
325
326 \begin{itemize}
327 \item Co-maintainer of
328 \href{https://www.gnu.org/software/gnuzilla/gnuzilla.html}{GNUzilla
329 and IceCat}, the GNU version of the Mozilla suite and the Firefox
330 browser respectively.
331 \item Maintainer of
332 \href{https://www.gnu.org/software/emacs/erc.html}{ERC}, the
333 powerful, modular, and extensible IRC client distributed with
334 GNU~Emacs.
335 \item Committer and regular contributor to
336 \href{https://www.gnu.org/software/emacs/emacs.html}{GNU~Emacs} and
337 \href{https://guix.gnu.org}{GNU~Guix}.
338 \item
339 \href{https://www.gnu.org/people/webmeisters.html#bandali}{GNU~webmaster}
340 and
341 \href{https://savannah.gnu.org/maintenance/SavannahHacker/}{GNU~Savannah
342 hacker}.
343 \end{itemize}
344
345 \subsection*{Volunteer Work}
346
347 \begin{itemize}
348 \item
349 \begin{description}[font=\mdseries]
350 \item[spring 2013] Application Developer for VONICAL Inc.
351
352 Worked on development of the Employment Accessibility Resource
353 Network (EARN) portal using the Anahita social networking
354 platform, written in PHP and running on GNU/Linux.
355 \end{description}
356 \item
357 \begin{description}[font=\mdseries]
358 \item[winter 2013] Mobile \& Web Developer for Hire Works Inc.
359
360 Worked on a variety of web and mobile development projects for
361 Hire Works.
362 \end{description}
363 \item
364 \begin{description}[font=\mdseries]
365 \item[summer 2012] Web Developer for St.~Brigid's Summer Camp
366
367 Redesigned and revamped the codebase for the photo gallery section
368 of the camp's website in PHP and JavaScript.
369 \end{description}
370 \end{itemize}
371
372 %% TODO? \section*{Recent Projects}
373
374 %% \section*{Achievements}
375
376 %% \begin{itemize}
377 %% \item Was among the top 1\% incoming students in Carleton University's
378 %% undergraduate Computer Science program, and a top student in the
379 %% faculty of science.
380 %% \item Highest standing in Computer Science in grade 11 (92\%) and
381 %% grade 12 (100\%) at High school at Glebe~Collegiate~Institute.
382 %% \item Ranked in the top 25\% in the Canadian Senior Mathematics
383 %% Contest held by University of Waterloo, in 2013 (grade 11).
384 %% \item Graduated from high school with an average of 95\%; and
385 %% designated as an Ontario Scholar.
386 %% \end{itemize}
387
388 %% \section*{Research Interests}
389
390 %% \begin{itemize}
391 %% \item Formal Logic, Model Checking, Theorem Proving, Verification
392 %% \end{itemize}
393
394 \end{document}