- Over 35 years in business application development. Manager, project leader and lead software engineer for e-commerce websites.
- Over 20 years experience in modern object-oriented Perl backend web development. Contributor to the Perl core. Instrumental in developing Perl's testing ecosystem. Created WWW::Mechanize web client. Prolific Perl module author.
- Extensive SQL database experience with Oracle, PostgreSQL and MySQL.
Creator of ack,
a widely-used alternative to
grepoptimized for programmers.
- Author of Land the Tech Job You Love, 280 pages, published June 2009 by Pragmatic Bookshelf, a guide to job hunting for technical professionals.
Follett School Solutions, McHenry, IL (2012-now)
Book Wholesalers Inc, McHenry, IL (2007-2012)
BWI was a wholesaler of library books to public libraries. I drove sorely needed upgrades to BWI's TitleTales website since the company's 2007 move to McHenry. After BWI was sold, I transferred to Follett School Solutions.
Lead Software Engineer
- Drove migration of e-commerce web app from on-premises servers to Microsoft Azure and Azure DevOps.
- Inherited and modernized e-commerce web app of 100,000 lines of PHP under Apache.
- Created a modern development environment for the app. My predecessor had one codebase: the production server.
- Implemented version control, automated testing, bug tracking, coding standards, continuous integration and a stable release process.
- Design, coding and testing of ongoing improvements to the app. New development was done with modern Perl techniques.
- Planned and implemented a 40,000,000-document search engine in Solr & Lucene to replace an existing search application using Oracle Text.
- Created and evangelized the company wiki in MediaWiki. It grew to 3,000 pages in its first year and is now an integral part of company workflow and culture.
- Received the "Follett Values In Action" award, a $500 quarterly prize, for the company wiki.
- Created Cacti monitoring system to track server performance trends.
- Integrated dynamic video loading on product pages using the Brightcove Player API.
- Updated all legacy pages to be HTML5 compliant using the HTML::Tidy5 Perl module I created as a wrapper around the W3C's tidy-html5.
Follett Library Resources, McHenry, IL (2001-2006)
Follett Library Resources is the leading wholesaler of K-12 library books in the U.S. The Titlewave online application helps librarians select materials for purchase.
Web Applications Manager (2002-2006)
After being promoted to manager, I scaled the department upward to include six programmers and a system administrator.
- Grew and led team of six programmers and system administrator
- Started migration of PHP codebase to object-oriented mod_perl.
- Defined software construction processes used by all programmers
- Interviewed and hired all programmers for my department
- Chief architect of web systems infrastructure
- Gave training classes for company staff and other corporate divisions
- Planned future growth with my counterpart on the project management side of the house
Project Leader / Sr. Software Engineer (2001-2002)
When I started, there was one programmer, one system administrator and no repeatable process. Releases were made by FTPing tarballs to production servers, and version control was made by occasionally zipping up the source.
- Project manager and lead programmer for all projects
- Lead programmer/architect for the Titlewave team
- Implemented CVS & Subversion version control systems
- Created new infrastructure for the site using PHP's object features
- Implemented software process and coding standards
Follett Software Company, McHenry, IL (1991-2000)
FSC is the leading creator of library automation software for the K-12 market. If you checked out a book in a school library in the past 25 years, chances are it was done with a Follett Software circulation system.
Sr. Internet Engineer (1996-2000)
- Created the company-wide intranet and external website infrastructure
- Created all intranet applications for all departments
Software Engineer (1991-1996)
- Designed, coded and tested library automation software in C and C++.
- Worked on teams of two, four and ten, depending on the project
S.D.C. Associates d/b/a Just Pants, Elk Grove Village, IL (1986-1991)
- Wrote Pascal software for retail stores: Point-of-sale system; purchase orders; inventory; email
- Wrote back-office systems in BASIC, COBOL and SPEED II 4GL: Accounting; inventory; email
Technical Skills & Keywords
Perl: CPAN, modern object-oriented Perl, Moose, WWW::Mechanize, mod_perl, Perl::Critic
Databases: SQL, Oracle database, Oracle PL/SQL, PostgreSQL (Postgres), MySQL, MariaDB, Apache Solr search
Web/apps/devops: Microsoft Azure, Azure DevOps, DigitalOcean, Docker, Apache HTTP server, LAMP stack, nginx, Prometheus + Grafana monitoring, Cacti monitoring, Nagios monitoring, SNMP, Tomcat, Jetty
Tools: Git, GitHub, Subversion, vim, ack, Perl::Critic, lint and other static analysis tools
Operating systems: Unix, Linux (CentOS, Red Hat Enterprise Linux, Ubuntu), Mac OS X, macOS
Concepts/methodologies: object-oriented programming, functional programming, model-view-controller, test-driven development, static analysis
Miscellaneous: MediaWiki, WordPress blog/CMS, Jekyll blog, Movable Type blog