Alan Grosskurth
Resume
Residence: Mountain View, CA
Email: alan.grosskurth@utoronto.ca
(PGP key: 9D99AB20)
Web: http://grosskurth.ca/alan.html
Birth date: 1982.09.06
Citizenship: Canadian
Education
M.Math, University of Waterloo.
(2004 September–2007 January)
Hon. B.Sc., University of Toronto.
(2000 September–2004 June)
- Specialist: Computer Science (comprehensive).
Major: Mathematics.
- Cumulative average: 80%. Top marks: Computational Complexity (95%),
Symbolic Logic (93%), Software Design (89%), Artificial Intelligence
(89%), Compilers & Interpreters (87%), Operating Systems (86%).
Publications and awards
- [browser-refarch]
Alan Grosskurth and Michael W. Godfrey.
“A Reference architecture for web browsers.”
Pages 661–664 in
Proceedings of the 21st IEEE international conference on software
maintenance (ICSM'05)—volume 00;
0–7695–2368–4, IEEE Computer Society. 2005.
(Acceptance rate: 55/180=30% for full papers,
(55+25)/180=44% for short papers.)
- [browser-archevol]
Alan Grosskurth and Michael W. Godfrey.
“Architecture and evolution of the modern web browser.”
2006. Submitted for publication.
- [mmath-thesis]
Alan Grosskurth.
“Purely top-down software rebuilding.”
M.Math thesis. D. R. Cheriton School of Computer Science, University of
Waterloo. 2007.
- Ontario Graduate Scholarship, 2006 (declined).
- National Sciences and Engineering Research Council of Canada
(NSERC) Undergraduate Student Research Award, 2002 & 2003.
Experience
Build infrastructure engineer (Sr MTS).
Release Engineering team, VMware, Inc.
(2009 January–present)
Build infrastructure engineer (MTS 2).
Release Engineering team, VMware, Inc.
(2008 January–2008 December)
Build infrastructure engineer (MTS 1).
Release Engineering team, VMware, Inc.
(2006 September–2007 December)
- Develop reliable and repeatable build automation and processes for a
suite of commerical virtualization products (hundreds of branches,
millions of lines of code).
- Build encapsulated cross-compiler toolchains (GCC-based), along with
packaging toolchains (RPM, DEB, MSI). Build various open source packages on
Windows with custom build scripts, patches, and Visual C++ project files.
- Develop a Python-based, cross-platform build automation harness that
handles multi-host builds. Design and implement a producer–consumer
component system.
- Convert existing product line to use new build harness and component
system. Drive release engineering effort to ensure vSphere 4.0 is built
correctly and shipped on time.
- Migrate component access from NFS/CIFS to HTTP and deploy caching
HTTP proxies (Squid) at 15 remote offices to improve download speeds.
- Support a Django-based sandbox build environment to
validate developer changes prior to checkin.
- Appointed co-lead for 15-member Build Infrastructure
team in 2009 June. Manage projects, assign tasks, track progress, and
mentor other team members.
Technical consultant,
Faculty of Mathematics, University of Waterloo.
(2005 January–2006 June)
- Provide software support to students, faculty, and staff on Solaris,
Linux, and Windows.
Teaching assistant,
D. R. Cheriton School of Computer Science, University of Waterloo.
(2005 May–August)
- Course: Software abstraction and specification.
Teach tutorials on UML, C++, and design patterns. Mark assignments.
Research assistant,
Ontario Cancer Institute, University Health Network.
(2002 & 2003, May–August)
- Design, implement, and test a C++ software package for automated
image analysis of two-color cDNA microarrays. Code available at
http://www.nongnu.org/spatter
under the GNU GPL. Research funded by NSERC.
Software specialist,
Computer Science Student Union, University of Toronto.
(2002–2004)
- Configure, build, and install third-party software packages in the
undergraduate computing environment (Linux/i386, Solaris/sparc). Teach
department-wide seminars on UNIX fundamentals. Tutor individual students
in logic, design, and programming.
Selected projects
Personal.
(2005–present)
- Administer externally-hosted Xen virtual server running a custom
Linux distribution. Set up secure UNIX services for DNS, mail, and web.
Maintain build scripts for distribution infrastructure
(http://spf.alfin.org/snippet/).
Graduate course: Software Architecture.
(2004 September–December)
- Reverse engineer architecture of Mozilla Suite (2.4 million lines
of code) from source code and available documentation. Examine potential
refactorings to support feature additions.
Undergraduate course: Compilers & Interpreters.
(2004 January–April)
- Work in a team of three to design and implement a toy compiler for
a custom, C-like language.
Undergraduate course: Operating Systems.
(2002 September–December)
- Work in a team of three to add multiprocessing,
memory management, and virtual memory to a toy operating system.
Skills
- Languages: Python, C, C++, Java, Perl, Bourne shell, SQL,
LATEX,
HTML, CSS.
- Source control tools: Perforce, Git, Mercurial, CVS, Subversion.
- Build tools: GNU make, autoconf, automake, SCons, Ant.
- Well-organized, detail-oriented, excellent interpersonal and teamwork skills.