Hans Dieter Pearcey
221 Brown Road
Wexford, PA 15090
Well-rounded software engineer with experience in web, network, database, and system programming
Twelve years of Perl, including Moose, DBIx::Class, and Plack/PSGI
Active participant in the Perl community through presentations, mailing lists, irc, and published modules
Accustomed to version control and test-driven development
Grant Street Group creates customized Software as a Service for financial institutions and government entities.
Software Developer (7/2009-present)
I am one of the developers on TaxSys.
- Ported from mod_perl-style request/response cycle to PSGI, to move from Apache/mod_perl1 to nginx and FastCGI
- Helped maintain in-house git-based workflow management system
- Typical web application maintenance and development:
- Business logic bugfixes and feature requests
- Schema management
OpenSourcery provides custom software development and support using open source tools.
Software Engineer (7/2008-6/2009)
I was the lead developer on elementalClinic (emC).
- Replaced emC-specific code with code from CPAN whenever practical
- Modernized emC's web abstraction layer, porting it to Catalyst and paving the way for future incremental refactoring
- Increased speed and coverage of emC's test suite, particularly web interface tests
- Coordinated with project managers to translate clients' domain-specific knowledge into technical specifications
- Designed, implemented, and deployed Catalyst-based REST backend for census data reporting tool
- Wrote and maintained Request Tracker plugins for internal and external clients
IC Group, Inc.
IC Group operates Pobox (email forwarding, spam protection) and Listbox (mailing lists, email marketing).
I took over as technical lead when the founder/CTO left to work on other projects and to start another company.
- Developed corporate culture of emphasizing community-maintained code (i.e. CPAN):
- Replacing existing code with CPAN modules
- Refactoring existing code and releasing reusable components
- Designing new projects with the goal of maximizing releasable code and minimizing internal-specific code
- Wrote internal code style and testing policies
- Converted ad-hoc Mason to cleanly separated MVC, using Catalyst, Mason, and Template Toolkit
- Continued responsibilities for in-house systems (billing/provisioning, antispam, mailing list delivery, etc.)
- Hired and managed technical staff
When I arrived, there were 7 different operating systems and versions in use. I standardized on Debian/stable and devised a packaging and configuration system flexible enough to handle any remaining heterogeneity.
- Customized and maintained Postfix installation, including local patches (C)
- Wrote and re-wrote internal antispam system (Perl)
- Wrote user-facing antispam system interface (Perl; specifically, Mason)
- Maintained and wrote tests for internal billing and provisioning system (Python)
- Maintained and wrote customer service tools (Perl, Python)
- Maintained internal ORM (Perl)
- Managed MySQL (query optimization, replication, upgrading from 3.23 to 4)
- Purchased, installed, and deployed new systems
- Hired and managed junior sysadmins
Systems Programmer (2001)
SEAS had a number of Solaris 7 machines that students and faculty used for email, classwork, and a variety of projects.
- Responded to routine user requests: install programs, debug email, restore backups, etc.
- Maintained and wrote monitoring and administration scripts (Perl, bash)
- Diagnosed internal network congestion or failures
TNS handles millions of credit card transactions daily. When I worked there, they were in the process of converting from SCO UNIX to Linux (Red Hat).
- General SCO to Linux troubleshooting: "What's [some file] named under Linux?"
- Wrote scripts to summarize/display system information for engineers in a familiar format (Perl, bash)
- Wrote watchdog scripts to monitor and restart transaction report feeds (Perl)
- Active contributor to CPAN
- Presented talks at YAPC|10 and the Portland Perl Mongers
- Active participant in mailing lists and irc channels for projects I use, including Plack/PSGI, Moose, DBIx::Class, and Perl generally (perl5-porters, module-authors, cpan-workers)
- Encourage corporate contribution to open source projects
- Regularly send code, test, and documentation patches to upstream open source projects
- Helped revive the Perl Email Project
- Server administrator for irc.perl.org
- Moose, Plack/PSGI, Catalyst, Mason, Template Toolkit, DBIx::Class, POE
- DBI, LWP (+WWW::Mechanize), CGI, many IO::, Net::, Mail::, and Email:: modules
- Test::More, Test::Class, many Test:: modules
- Linux (Ubuntu, Debian, Red Hat); some FreeBSD, OpenBSD, and Solaris (7, OpenSolaris)
- http, smtp, imap, pop, dns, irc, ftp, ssh, rsync
- Apache, nginx, tinydns, Postfix, daemontools
- MySQL, PostgreSQL, SQLite, BDB, CDB
- make, sudo, screen, zsh, vim, mutt
- Python (6 years)
- CVS, subversion, git, Trac, Bugzilla
- (X)HTML, CSS
Virginia Polytechnic Institute
- Computer Science (did not complete degree)