Software developer since 1990.
It's not done until it's documented.
"I've seen things you people wouldn't believe... Attack ships on fire off the shoulder of Orion... I watched C-beams glitter in the dark near the Tannhäuser Gate. All those moments will be lost in time, like tears in rain..."
Technical Skills
- Languages: Liquid, Python, Perl, C++, Objective-C, XSLT
- Test Frameworks: Pytest, Test::More, Googletest
- Continuous Integration: Bamboo, TeamCity, GitLab, Bitbucket
- DevOps/AWS: Boto3, Lambda, EC2, Elastic IP, S3, Terraform
- Virtualization: Docker, Vagrant, Virtualbox, XenServer
Work Experience
Jekyll Developer
Personal - Adapt Github's Jekyll blogging platform to deploy on private web servers
Underhill, VT July 2022 – March 2023
Relevant Skills
Responsibilities
- Detect and mark rendered drafts with liquid templating
- Using liquid, create a page for tags listing the posts where it is used
- Maintain a page that groups posts by category
- Add a page collection customized for displaying code
- Deploy with git
- Created a git pre-push hook to validate files being pushed
- Check if a rendered file is a draft and optionally abort push if so
- Ensure that all tag pages exist and optionally create them
- Wrote a git pre-receive hook to deploy Jekyll's static site files
- Uses git read/write tree to merge updates with the remote repo's index file
- Updates files in the remote work tree
- Created a git pre-push hook to validate files being pushed
Engineer 2
Nordstrom - Credit data processing division
Denver, CO September 2021 – February 2022
Relevant Skills
Responsibilities
- Terraform
- Worked on a system that sets up and tears down a Kubernetes cluster to isolate credit data operations to comply with SOC2 audits.
- Contributed to a system to allow developers to work in isolated workspaces
- AWS
- Monkeypatching lambda functions to test with Pytest
- CI/CD with Gitlab
- Added pytest step to Gitlab pipelines
- Decoded EBCDIC data received from main-frame computers using python
Software Engineer
Paragon ID
Essex Junction, VT November 2019 – March 2021
Relevant Skills
Responsibilities
- Developed MySQL/Python software to support Matica RFID production machines
- Ported perl post processing software to Python with tests written with pytest
- Coordinate with France branch to integrate ASK RFID reader
- Tuned client production report generation Perl script to reduce runtime from 2 hours to 5 seconds
- Wrote a perl test suite with Test::More module
- Wrote modules in Perl and Python to validate incoming and outgoing data fields
- Development cycle improvements
- Introduced test driven development for Perl and Python projects
- Source control with Git and Bitbucket
Sr. Level Software Engineer, Design to Tapeout Automation
Global Foundries
Essex Junction, VT March 2017 – June 2019
Relevant Skills
Responsibilities
- Instrumental in porting legacy semiconductor design validation ksh scripts from IBM AIX systems to Global Foundries Linux servers
- Refactoring all ksh validation scripts to use LSF distributed high performance computing in place of LoadLeveler
- Decoupled ksh scripts from the AIX Andrews File System to be compatible with Global Foundries linux systems
- Saves the company millions of dollars annually
- Utilized Mentor Graphics Calibre application to access data in semiconductor design files
- Published documentation generated by Doxygen using Bitbucket pipelines
- Introduced markdown as the preferred documentation format which has been adopted by my teams and others at Global Foundries
- Convinced my teams to migrate from RCS and CVS to Git and coached them though the transition
- Designed a system to audit changes in configuration and health of compute clusters in USA, Germany and Singapore
- Porting cluster job management software from Perl to Python
- Designed and implemented a MySQL interface for communicating with the python LSF queue manager application
- Developed a declarative python configuration system
- Wrote a Python runtime dependency test system so that long running processes can fail fast
- Wrote a C++ authentication helper app supported by Googletest framework
- Collaboration with admins in Dresden, Singapore and the US
- Wrote a script to monitor health and configuration change in compute clusters in Germany, Singapore and US
- When problems were detected, I worked with admins to solve them
Network Engineer
ClearBearing, Inc.
Essex Junction, VT May 2016 – March 2017
Relevant Skills
Responsibilities
- Monitored remote sensors across New England using a distributed network of nagios servers
- Linux system management
- Public and Private Cloud Server administration
- Web, database, and load balancing cluster maintenance
Senior Cloud Administrator
OpenTempo, Inc.
Williston, VT April 2015 – February 2016
Relevant Skills
Responsibilities
- Supported java infrastructure for company's flagship product
- Developed a cloud infrastructure audit system; instrumental in achieving SOC 1 compliance
- Monitored production and pre-production systems for configuration and security related changes
- Facilitated a weekly system health and security audit
- Responsible for a daily monitoring, report analysis, log analysis and issue escalation
- Scripted tools to automate server data collection
- Created a tool to generate a network topology map, by automatically discovering servers in the AWS cloud
- Maintained and Operated a Chef/Ruby/Opsworks based cloud infrastructure
- 20-25 Amazon Linux EC2 Instances, backed by 8-10 RDS Postgres database instances deployed with Elastic IP
- Improved and simplified system admin team documentation, security and automation
- ssh connection credentials
- server addresses
- permission related tool sharing
Software Developer
Laureate Learning Systems, Inc.
Winooski, VT May 1990 – September 2014
Relevant Skills
Responsibilities
- Wrote speech-language development software in many programing languages for multiple platforms
- Coordinated with developers and artists to organize the delivery of multimedia assets
- Designed and implemented an API for communication between Flash assets and Adobe Director for Laureate software
- Apple Developer Program Team Agent; managing certificates, app ids, devices, provisioning profiles
- Wrote DLLs in C to provision custom windows language development workstations
- Automation with XML XSLT transformations
- Product installers and CD-ROM masters
- Email newsletter
- Website update
- Site map
- RSS feed
Ground Operations Agent
PEOPLExpress Airlines
Dulles, VA & Newark, NJ 1985 – 1986
Relevant Skills
Responsibilities
- Flight support
- Ordered Jet A fuel for outbound flights
- Provided pilots with flight plans
- Passenger support
- Managed oversold flights
- Checked in passengers
- Boarded flights
- Helped passengers with tight connecting flights
Military Experience
3rd Infantry Drummer
U.S. Army Old Guard Fife & Drum Corps, Presidential Escort
Ft. Myer, VA 1982 – 1985
Relevant Skills
Responsibilities
- Musical duties
- Performed for arrival ceremonies at the White House
- Traveled around the country performing for various parades and other events
- Received an Army Commendation Medal for collaborating with a colleague writing drum solos
- Other duties
- Participated in the ceremony for the internment of the Vietnam War Unknown Soldier in Arlington National Cemetery
- Predawn "flags-in" tradition each Memorial Day in Arlington National Cemetery with the 3rd Infantry battalion
- Security clearance: secret
Education
University of Vermont
Burlington, VT 1987 – 1990
- Major: Computer Science
- Minor: German
George Mason University
Fairfax, VA 1985 – 1986
- Major: Computer Science