Aaron Maxwell's Resume/CV
Aaron Maxwell - amax@redsymbol.net
Entrepreneurial Software Engineering and Web Development
Updated, enhanced version at http://redsymbol.net/resume/
I'm a software consultant based in San Francisco, CA, USA. My
primary client is SnapLogic, an
outstanding startup whom I serve through the design and
development of QA infrastructure and testing tools for a large,
multi-(lingual, process, threaded, OS) product.
Areas of current expertise and specialization:
- development of QA infrastructure and supporting tools
- web development
- the Python language
- Open source software, especially LAMP
- Technical writing
Other skill areas:
- Languages
- Expert: Python.
Proficient: C, Perl, PHP, shell (bash, etc.).
Semi-skilled: Java, Lisp and Scheme, Javascript, C++, Ruby.
- Operating systems
- Proficient: Unices, primarily - Linux, FreeBSD, and older ones like Irix and Tru64. Currently studying
Android and iPhone OS.
- Techniques
- Version control (SVN, Git, CVS, some Mercurial
and darcs). Mastery of using VC in both solo projects, and in
distributed, multi-developer envioronments, as well as
complex branch-merge workflows. Sophisticated use of automated testing (vanilla
unit tests, mock objects, nuances of implementing maintainable
integration tests). Build tools (package management, Make,
Ant).
- Methodologies
- Design patterns. Object-oriented design. Functional
programming. Test-driven development. Agile development teams.
- Tools
- Ability to adroitly leverage open-source software in
building scalable, powerful systems with less
wheel-reinvention. MySQL and sqlite for databases, Apache and
lighttpd for web servers, etc. Repeatedly demonstrated ability
to rapidly master and make use of new tools.
- Other
- Other buzzword lists available on request.
- Writing
- I write quite a bit. I started a math education company, Hilomath, whose initial product
line consisted of two books I wrote. Write technical essays
and articles periodically, often published on my blog, Approaching Infinity. I
give technical presentations from time to time: see http://redsymbol.net/talks/.
Experienced at crafting end user documentation for software I write, from
man pages to HOWTOs to user guides.
Recent Consulting Work History
- QA Infrastructure engineer, SnapLogic, Inc.
- October 2007 to present. Designed and implemented a
distributed, fault-tolerant, evolvable QA infrastructure for
automated testing of a large, multi-(process, threaded,
platform, language) software product. Includes unit and
integration test discovery, advanced reporting, code coverage
measurements (both per-test and aggregate), static source code
analysis, performance benchmarking. Built a quality monitoring
service with automated alerts based on events, such as drops in
code coverage. Designed and implemented a multidimensional
benchmark performance tool capable of spanning multiprocess
integration tests, complete with an extensible plug-in
architecture for new metrics, and data analysis and report
generation. Leveraged existing open source tools as possible,
extending as needed. Contributed code implementing significant
functionality to the BuildBot (87, 145, 140) and Figleaf
projects.
- Automated book shopping agent - FindForMe.net
- Summer, 2008. Conceived, designed and implemented FindForMe.net, an automated book
shopping assistant and advanced Amazon affiliate. Service
consists of web site plus several attendant programs,
implemented in Python 2.5 using Django 1.0, which make use of
the Amazon Associates Web Service to continually scan inventory
of thousands of independent booksellers, alerting user when
books become available at their preferred price.
- Web development, SnapLogic, Inc.
- July 2007-Sept 2007, and other times as needed since.
Designed and implemented a "community forge" site based on
Python and Django. Included user registration process
integrated with LDAP user database; feature-rich tagging system;
software package publication mechanism, including terse and
detail views, automated package building and publishing.
Development of full test suite, including unit tests and
integration tests, to ensure correct site functionality and user
experience. Isolated and created fix for subtle mod_python
issue in Django; submitted patch was accepted by upstream and
integrated into trunk
(http://code.djangoproject.com/ticket/4710). Integration of
user registration across separate Django (Python), Trac and
Drupal (PHP) web sites. Extensions to Trac bug-tracking system,
including fixing a mysql-backend issue (see ticket 5783 changeset
6506, and references therein).
- Web Development, Radical Fusion, Inc.
- May 2006 to June 2007. Multiple mid-size web development
projects for clients of Radical Fusion, as part of
small teams of 2-4 developers. In several, took lead design
role under the CTO. Using Agile practices and test-first
development, worked with team members to nail down initial
requirements, design a framework and development roadmap,
iteratively implement features and deliver the finished product
to the client. Primarily developed in PHP and Javascript, using
Linux + Apache on server, and multiple web browser clients.
Publications
- Books
- Inner Algebra,
Integration Your Brain
- Articles
- See my web logs Approaching Infinity and the
official Hilomath
Blog.
- Presentations
- See Aaron Maxwell's Talks for the
most up to date list.
Open Source Development
- L2P
- Tool to generates PNG images from LaTeX math expressions.
Designed, implemented, and continue to maintain. See
http://redsymbol.net/software/l2p/ . Distributed in the FreeBSD
ports: http://www.freebsdsoftware.org/graphics/l2p.html .
- Contributions to other projects
- Contributions to Buildbot, Trac, Django, Figleaf,
Open Lock Daemon and more.
Education
- B.S., Physics, UT Dallas, May 1998. Summa Cum Laude
- Graduate work in biophysics, UC San Francisco, 1999-2000
Previous Resumes
Several times in my life, my work has changed dramatically
enough that I rewrote this resume from scratch (you probably don't
need details of my retail management experience now, for example).
For brevity, I tend to omit things older than a few years if they
are not really impressive.
The elder versions are kept for posterity.