- End-to-end understanding of standard web technologies
- HTML/CSS and web experience since 1995
- Web programming and website administration (including Apache, nginx, and other software), since 1997
- Experience with web frameworks such as React, Rails, Codeigniter, Spring Boot, and others
- Building sites with Node/NPM-based tools (e.g. Gulp, Webpack, Browserify, Babel), since 2015
- Implementing Cucumber acceptance tests in Ruby (2013-2016) and Groovy (2017)
- Experience with programming languages in various paradigms, including Object-Oriented, Functional, Stack-Oriented, and Procedural
- Experienced in coding environments from vi/vim to Emacs to Visual Studio Code to IntelliJ IDEA, depending on the task at hand
- Expertise with revision control systems, including Git (since 2008), Subversion (2005-2013), and CVS (2000-2006)
- Building and using Docker container technology, 2016
- Computer/network/code security mindset, practiced since approx. 1996
- SQL database querying, design, and administration, using MySQL (2003-2013) and Oracle (2017-2018)
- Email and DNS server administration experience
- Firewall design (1999-2008) with IPfilter, iptables, ipchains
- Both professionally and personally using various flavors of Unix and Linux since 1992, been system administrator on them since 1995, and network administrator of them since 1997.
- Taught “Introduction to Unix” workshops using Solaris
- Digital image manipulation experience using various software tools, PostScript programming, page layout experience, and expertise in various document and image storage formats
- Technical support experience since 1994, including supporting/mentoring new Linux/Unix administrators and supporting TCP/IP network connectivity on Windows and Macintosh
- Communication: clear and correct English writing ability
Bachelor of Science in Electrical & Computer Engineering, The Ohio State University
- Performed frequent code reviews.
- Put a special emphasis on improving unit tests (using Mocha/Chai), particularly test isolation and code coverage.
- Mentored junior developers.
- Assisted other developers in online forums to help them avoid the frustrations I’d previously encountered.
As part of an Agile team at Chase, first as a consultant and then as staff, I worked on both the front end and back end of a major rewrite of an internal web application for deployment to a Cloud Foundry environment. Following that, I worked on a microservices-based data retrieval system. These projects included:
- Wrote acceptance test code in Groovy using Cucumber and Geb.
- Performed frequent code reviews and pair programming, both assisting and learning from colleagues.
- Designed REST API interfaces.
- Worked with Oracle databases, both new and legacy.
- Wrote an Excel report generation interface using POI.
- Designed and built a set of REST microservices using Spring Boot and Netflix tools such as Eureka, Zuul, and Hystrix.
As part of a small Agile team, I developed new features and maintained/updated old ones in a very large mission-critical web application serving as an interface to a set of chemical information databases. Some aspects of that work included:
- Wrote acceptance test code in Ruby using Cucumber and Capybara.
- Performed ongoing peer code reviews, as well as learning quite a bit from pair programming.
- Converted old GIF-oriented image handling code to use PNG and SVG.
- Updated PDF and Excel export code using IText and Apache POI libraries.
- Converted old JSF-based code to a more REST-based system.
- Advised and assisted junior developers on developing and testing the Angular-based front end layer.
Tracermedia is a small web development company whose clients have included major textbook publishers. As a member of small teams, I:
- Created SOAP endpoints for communication with third-party services.
- Acted as a network administrator for an office of primarily Macintosh workstations and both Macintosh and Linux servers.
My role was code-rescuer and utility-infielder of IT at a company that trades in insurance leads. Responsibilities included:
- Bug-fixing and development assistance for new Ruby On Rails development.
- Code review and advising of other programmers.
- Creating a system for automatically calling people who have entered their information, to connect them with salespeople.
- Assistant system administrator on Ubuntu and CentOS Linux servers, and assistant network administrator.
- Supporting internal users of web services.
As part of a small team, I developed an AJAX-based tool, based on an existing framework, to assist teachers of remedial reading programs in tracking student reading progress.
- Developed a JRuby program to convert data from an Excel spreadsheet into a PDF of vocabulary flashcards.
- Diagnosed company network problems, including cross-platform PPTP connectivity and server visibility between LAN and WAN.
WRL is a small advertising agency with a 50+ year history and a fast-paced environment. In my time there, WRL's web department doubled in size and grew to rival its traditional advertising business. We hosted most of the sites we developed.
- Planned, purchased, set up, and maintained Linux-based web and mail servers for hosting ~100 virtual domains
- Implemented extensive anti-spam measures for email
- Wrote and deployed web applications in Ruby On Rails, PHP, and Perl; and customized existing web applications to meet client needs
- Set up Subversion and CVS source code control systems, and began to experiment with the Git source code control system
- Assisted/advised graphic artists regarding web layout and image editing; edited program guides for the annual Ohio LinuxFest
- Managed domain-purchasing and DNS issues
- Managed an office network of Mac OS X, Windows, Linux desktop machines, and Linux servers
- Hired, mentored, and managed technical staff members, and advised them on coding best practices
- Migrated numerous domains from legacy Windows web and mail servers over to Linux servers, including translating ASP/VB into PHP, Access databases into MySQL, and improving the security of old code
2Checkout.com provides a web-based purchase system through which online vendors may sell their wares without dealing with secure online credit card transactions themselves. I was part of a team assigned to rewrite the Perl-based web interface that the company is centered around.
- Implemented online purchase interface using Perl, Template Toolkit, Apache mod_perl, and MySQL
- Set up CVS source code repository, and wrote a tutorial to help other programmers become familiar with CVS
I was involved in the technical side of starting Secure Interiors, a managed network security services company, actually beginning on the side in April 2000. When actual employment began in January 2001, my responsibilities grew. These included:
- Involvement in designing almost all technical aspects of our complete solution
- Setting up OpenBSD as a firewall for mass distribution
- Writing and maintaining Perl and C programs to augment the firewall's functionality
- Designing, configuring, customizing, and maintaining network servers (running OpenBSD and Linux), including: email server, bug-tracking system, source code repository, network-based backup server.
As a workstation support engineer, my responsibilities included:
- Assisting campus Unix (Solaris, SunOS, Irix, Digital Unix/OSF1, Ultrix, Linux) users & system administrators
- Making hardware and software recommendations both for internal use and for other Unix system administrators
- Planning and teaching an "Introduction To Unix" course
- Acting as central contact point for Unix vendor support, including evaluating and documenting new Unix software
- Administration of Solaris, SunOS, Irix, Digital Unix, Ultrix, Linux, NetBSD, OpenBSD, and Macintosh machines
- Administration of servers for email, WWW, FTP, and NFS
- Writing programs to support the above functions
- Supervising a series of student employees