There is also a PDF version of this document
available.
See Brief Resume for a shorter version of this document.
Email: (me AT mwolson DOT org)
Phone: +1-219-921-4116
WWW: http://mwolson.org/
The primary means of contacting me is via email.
Objective
Full-time position in software engineering.
Personal information
Software maintainer and developer, Free Software enthusiast, recent
college graduate.
Education
Purdue University - Undergraduate student
- Duration
- Aug. 2004 - Dec. 2007
- GPA
- 3.14
- Degree
- Obtained B.S. in Computer Science and B.S. in Mathematics
Bethel College - Undergraduate student
- Duration
- Aug. 2002 - May 2004
- Major
- Computer Science / Mathematics
Interests
I am especially interested in the following topics.
- Lisp (nearly anything)
- Text markup (XHTML, LaTeX, XML, Texinfo)
- Facilitating installation of software by means of packages or
Makefiles
- Automation in system administration
- Protocols: drafting and implementation
Professional experience
HCoop, Inc. - Sysadmin
- URL
- http://hcoop.net/
- Duration
- Oct. 2006 - present
Both planned and set up technical infrastructure and kept it running
on a day to day basis. This is an unpaid volunteer position.
- Added new members who have been approved and have paid
- Set up daemon configuration on new machines
- Processed support requests
- Periodically updated Debian packages
- Advised the board as to policy matters
- Protected and respected the privacy of HCoop members
- Primary
- I am listed as the primary contact for the following
services.
- Apache
- Courier IMAP/POP
- Cron
- General Debian issues
- Exim
- Mailman
- MoinMoin
- PHP
- SquirrelMail
- Secondary
- I am listed as the secondary contact for the following
services.
RCAC - Assistant Sysadmin and General Linux/UNIX Technician
- Location
- West Lafayette, Indiana
- Duration
- Mar. 2006 - Dec. 2007
Worked with various RCAC (the Rosen Center for Advanced Computing at
Purdue University) staff members to help carry out a variety of
systems tasks.
- Installed Debian GNU/Linux and Red Hat Enterprise Linux on various
kinds of machines using various methods (bootstrap, CD, USB drive,
PXE)
- Made a database of information about the machines in our machine
room
- Worked with
cfengine, the software used to propagate configuration
settings across many machines
- Performed diagnostics on machines that are unresponsive
- Designed an incident report database, with Python-based CLI
interface for adding new incidents and a PostgreSQL backend
Purdue University - Teaching Assistant
- Location
- West Lafayette, Indiana
- Duration
- Jan. 2006 - Apr. 2006
Assisted in the grading and lab proctoring for the C Programming for
Engineers course that is offered at Purdue.
- Supervised labs
- Provided assistance in labs
- Graded homework and lab submissions
- Maintained a lab-specific website
Bethel College - Database programmer
- Location
- Mishawaka, Indiana
- Duration
- 2003 - 2004
Crafted reports for Admissions Office, Registrar, Nurse, and Student
Services. This involved using the INFORMIX database software.
- Fulfilled Solomon Report requests as mandated by the Federal
Government
- Verified the integrity and consistency of the central database
- Prepared AdmProfs, which is a Perl program that can generate XHTML 1.0
compliant reports for a variety of incoming student test scores
- Documented the process of comparing address data from an external
source with database records by using several UNIX command line
tools
Bethel College - Admissions Office intern
- Location
- Mishawaka, Indiana
- Duration
- 2002 - 2003
Involved myself with various functions of the Admissions Office.
- Answered phones
- Entered and corrected prospective student data in the central
database
- Provided unofficial technical support to the Admissions staff
- Mailed pamphlets and letters
Research experience
Purdue University - Undergraduate research
- Duration
- Fall 2007
- Supervisor
- Suresh Jagannathan
Updated the Kali branch of Scheme 48 with the latest development
changes and implement additional functionality, as specified by my
supervisor.
- Migrated changes from Subversion to Mercurial, keeping track of
merged changesets and authorship data.
- Used placeholder variables to cause a command to wait until a
particular state in another thread has been reached.
- Changed code to use a more up-to-date conditions library.
- Worked out several dependency issues when building the Scheme 48
image.
Affiliations
Hobby projects
I work on several hobby projects that are associated with the
Free Software movement. While this work is often its own reward, I
believe that I gain valuable and marketable skills from it.
- Maintainer of Emacs Muse, a text publishing mode for Emacs which
aims for inclusion in Emacs
- Release manager and Debian packager for ERC, an IRC client that
runs in Emacs
- Maintainer of EMMS, a music player for Emacs
- Contributor to (and former maintainer of) Planner Mode, a TODO list
manager and life organizer for Emacs
- Contributor to DVC, an interface for using distributed version
control systems with Emacs.
- Contributor to ErBot, an IRC bot that runs in Emacs
An enumeration of some of these skills follows, by project.
Emacs Muse
- In-place markup of text to other formats
- Wrote entire manual in TexInfo format
- Context-sensitive escaping of special characters
- Pre and post-parsing data structures for user configuration
- Build simple and effective interfaces for customization of software
options
- Resolution of file links across "project" boundaries
- Efficient and effective use of regular expressions
- Interoperability with external packages that provide spell-checking
and other features
- Nest several types of lists according to level of indentation
ERC
- Refactor code around an abstract object
- Use the correct character coding system for output depending on
context
- Merge functionality from a similar project
- Enhance product compatibility and interoperability for several
different clients
- Keep track of copyright assignments and permissible use of code
from contributors
- Re-use chat windows when the client reconnects to the server
- Research ways of aligning timestamps on the right of the screen
EMMS
Add support for MusicPD in EMMS, which involves the following.
- Sync contents of EMMS playlist to MusicPD, and vice versa
- Write a timer function to detect song change and change of playlist
- Retrieve track metadata
- Implement a process sentinel function
- Adapt existing transaction queue code so that it sends input only
when the server process is ready for it, and then contribute my
changes back upstream
- Implement a send-command interface using closures and callbacks
- Cause the description for each track in the current playlist to be
updated in an asynchronous manner
Planner
- Fix bugs by making atomic changes
- Process user requests and schedule implementation
- Implement a Makefile-based compilation system
- Hone package-related metadata
- Successfully synthesize contributions from multiple contributors
- Keep track of file authorship
ErBot
- Fix stack overflow exploits
- Implement retrieval of acronym definitions
- Fix arbitrary execution of code exploits
- Analyze binary tree data for safe evaluation
- Prepare Makefiles that rely on an external (and convenient)
compilation system
Core competencies
- Programming
- OS installation
- Automation in system configuration
- Documentation
Technical proficiencies
- Platforms
- 7 years of experience with GNU/Linux (Red Hat Enterprise
Linux 3 and 4, Debian, Ubuntu), 4 years of experience with UNIX
(HP-UX, Solaris), Windows 95/98/2000/XP
- Languages
- C/C++, Emacs Lisp, Java, ANSI Common Lisp, Scheme, ML97,
SQL, Perl, Python, Bash shell script, DOS batch script
- Services
- Apache (1.x and 2.x), Courier, Cron, Exim (3 and 4),
MySQL, PostgreSQL, OpenLDAP, rsync, shorewall, Squirrelmail, SSH
- Other
- Git, Subversion, CVS, Bazaar, Mercurial, Darcs, Makefiles,
Debian packaging, cfengine
Achievements and involvements
Community service
- Completed 20 hours of community service in the city of Elkhart, Indiana
- Completed 20 hours of community service around Mishawaka, Indiana
Honors
- Chess Club champion 1999-2001 at Penn High School
- Inclusion in the National Dean's List 2002-2003
- Inclusion in the 2002 United States Achievement Academy yearbook
- 3rd place - high school individual division - 2002 Indiana Student
Software Awards Competition (ISSAC)
- 2nd place team in the David Ricardo division of the 2002 Indiana
Economics Challenge
- Graduated with Academic Honors Diploma from high school
Activities
- Students Against Destructive Decisions club for 2 semesters
- Bethel College Student Senate for 2 semesters
- Founded the Bethel College Linux Users Group and was involved for 2
semesters
- Webmaster of the Purdue Linux Users Group in 2004-2005, 2005-2006,
2006-2007
- Built LDAP and NFS infrastructure
- Provided documentation for use by future webmasters
- Vice President of the Purdue Linux Users Group in 2005-2006,
2006-2007
- Acting President of the Purdue Linux Users Group from Jan. 2007
through Apr. 2007
- Founding member of the Ubuntu-elisp group on http://launchpad.net,
which helps to maintain Emacs-based packages for Ubuntu Linux
- Prepared Ubuntu packages for Emacs 22
- Packaged new version of AucTeX for Ubuntu
- Sent out patches for around 7 different packages in order to
support a new release of Emacs
- Took over maintenance of the Debian and Ubuntu packages for
CEDET and JDEE.
About Me