John Gotts
Plymouth, MI 48170
Phone: 734-XXX-YYYY
Phone (Backup): 734-XXX-YYYY
E-Mail: jgotts@gmail.com
Other Formats: PDF, text

Objective

I am seeking a satisfying and fun software engineering position with the opportunity for learning and career advancement. I began programming as a child and was first compensated for my work at age twelve. Since then I have worked in a wide range of industries, including automotive marketing, restaurant point of sale, computer based trading, automotive research, and electronics computer aided design. My career focus has been developing mission critical, always available, networked systems running on Linux. Specifically, my focus over the past twelve years has been web services development on LAMP (Linux/Apache/MySQL/PHP) with frequent database variant PostgreSQL. The way I explain web services development to people is that it is the glue the connects your organization to every other organization in the world, usually with a combination of JSON, XML, SOAP, REST, and other, proprietary, protocols.

I am most comfortable with PHP and SQL, but over my career I have used JavaScript, Perl, C, Java, C++, Tcl, and many UNIX-specific languages like sed, awk, the Bourne Shell, and the C Shell. At its core web services development is web development, so I have the basic skills that you would expect of of a front end developer, HTML, CSS, and whatever JavaScript toolkit is in vogue this week. My programming style reflects my preference for simplicity and long-term code maintainability. I frequently maintain code bases aged ten or more years, and I take the extra time to write solid code, rather than dash off quick solutions. I am comfortable with mentoring both technical and non-technical people and building solid teams.

Work Experience

JD Power and Associates
Troy, MI
Software Engineer
August 2017 through Present

I began my training by maintaining the the Auto Credit Express (Internet
Brands) special finance lead engine, a LAMP-based web services platform, for
approximately three months. Next I started working with some of my fellow ACE
developers on a secret project for Fiat Chrysler Automobiles (FCA) US (today
called Stellantis US) to create a new OEM vehicle lead engine as a port of the
ACE lead engine, to replace FCA US's existing leads contract with Shift
Digital. I completed over two dozen CRM web services integrations as well as
the web services integration to FCA itself in the space of three months. I then
voluntarily transferred to the new FCA leads division, now called Digital
Dealer, to work on the new OEM lead engine as its first employee. I was solely
responsible for maintenance of the web services integrations with nearly 100
vendors while we trained our business and technical personnel, including four
developers that came online after launch. I was responsible for hundreds of bug
fixes and dozens of new features written in PHP along with many MySQL database
performance improvements as our volumes grew over time. Over the years I
reached out to business and technical contacts from dozens of FCA US business
partners across the globe, ensuring that the software migrations from Shift
Digital to Internet Brands and then to Autodata Solutions and finally to JD
Power went as smoothly as possible. As we built our organization to over 100
individuals, my job calmed down considerably and I was able to focus primarily
on engineering, as noted above. Digital Dealer became responsible for a
significant percentage of the company's revenue, and income from the unit grew
by double digits on a yearly basis. Over its lifetime, from May 2018 until
October 2022, the system processed on average 10 million web service requests
per month, with up to 12 million lead dispositions and 26 million lead updates
per month, along with over 20 million vehicle leads per year. Our end points
achieved an uptime of greater than 99.98%. The system processed dozens of input
and output files per day to facilitate lead generation and various other tasks,
including ETLs for the reporting systems Insight and later DDR.

NetPOS

Ann Arbor, MI
Software Engineer / System Administrator
March 2009 through March 2017

I maintained and extended a web services-based touch screen point of sale (POS)
system running on three stacks: Linux/Apache/MariaDB/PostgreSQL/PHP,
Linux/Apache/PostgreSQL/Oracle/Perl/PHP, and Linux/Apache/PostgreSQL/PHP.
Aside from a binary module implementing biometric authentication for Microsoft
POS Ready 2009, the entire NetPOS front end is pure JavaScript and uses
Mozilla's XUL and XBL toolkits. I removed our second-to-last binary module
dependency by porting receipt printing support to js-ctypes and I continued to
remove Windows dependencies until the front end ran successfully on Android
tablets (aside from receipt printing). During my tenure we implemented Agile
practices for our PCI PA-DSS certification. I wrote Chase Paymentech's first
NetConnect 1.0 SOAP API stored value integration. I designed a SOAP with WSDL
architecture for online ordering. I integrated to ProfitPoint's loyalty system.
I made numerous improvements to our Paytronix loyalty and stored value
integrations, converting the system to SOAP with WSDL. I wrote our First Data
ValueLink stored value integration, driving a complex certification process to
completion. We designed a JSON-RPC-based interface for CaptureCode's loyalty
system and I later extended this interface to include stored value and mobile
payments for Virtual Next, AppFront, and Relevant Mobile. I wrote our LevelUp
mobile payments integration. I added an interface to the HyperActive drive thru
interface (DTI) using XML with DTD validation. I implemented a SOAP interface
to Heartland stored value. I helped guide NetPOS through updates from CentOS 4
and CentOS 5 to CentOS 6 and then to CentOS 7 with 24/7 responsibility for
server and stack availability. I completed the migration of the NetPOS back end
software to Amazon Web Services (AWS). I added support to NetPOS for both IPv6
and HTTP/2. I was personally responsible for over one-thousand new features and
bug fixes added to NetPOS over an eight year, one month period. For this work
I was normally responsible for all or virtually all of the product lifecycle,
including gathering customer requirements; release planning; project planning
and creating time estimates; the software development itself; end-to-end
testing and quality assurance; and rolling out the new software to staging and
production environments.

OnRoto.com

Ann Arbor, MI
Linux Consultant
February 2009 through June 2009

Created a fast JavaScript/DOM based-architecture for a fantasy baseball
roster manager with industry-first live validation against league
specifications, replacing an aging Java applet.

ePrize (HelloWorld)

Pleasant Ridge, MI
Software Engineer
September 2007 through December 2008

Maintained the MVC-inspired JavaScript/AJAX front end and the Perl/MySQL back
end of the My Coke Rewards Catalog Manager. As a member of the iCoke team, 
we achieved a zero defect product within six months. Moved on to maintaining
the iCoke 2.0 SOAP platform, where we also achieved a zero defect count.
ePrize received accolades for our work from Coca-Cola corporate headquarters.

Cybernet Systems Corporation

Ann Arbor, MI
Software Engineer
December 2005 through December 2006

Maintained the NetMAX Operating System, a network appliance Linux distribution
with a web-based GUI written chiefly in Perl; solely responsible for the 5.5
and 5.51 releases; permanently fixed VPN support; tackled challenging bugs
driven by corporate and customer input; ported the system to new hardware;
overhauled Cybernet's server infrastructure, incorporating corporate
customizations into the releases; improved mail system performance while
traffic tripled; backported a Linux kernel storage driver for a specific
customer application.

F & M Financial Trading Systems, N. V.

Ann Arbor, MI / Amsterdam, NL
Software Engineer / System Administrator
July 1999 through October 2005

Designed a 270,000-line Gtk+/GNOME/Glade tablet/desktop trading application
for the Red Hat and Fedora Core Linux operating systems in C and XML; designed
a 50,000-line database daemon using C and PostgreSQL's libpq; designed
connection daemons using proprietary libraries supplied by the exchanges;
designed a daemon to supply theoretical prices to the system; designed the
software router and overall protocol to keep the system running smoothly;
maintained the SQL schema as system requirements changed; continually tuned
network bandwidth consumption, database use, and algorithms to increase system
performance; developed the system using exchange development networks, passed
all conformance testing, and used the system in production on numerous
exchanges for a total of approximately five years.

LinuxNIC, Inc.

Ann Arbor, MI
Linux Consultant
September 1999 through December 1999

Designed and implemented the Perl/DBI/MySQL-based backend for this proposed
.linux registrar.

Avant! Corporation (Synopsys, Inc.)

Research Triangle Park, NC
Intern
July 1998 through December 1998

Developed an HTML-based integrated documentation system in Tcl/Tk and Perl
to replace a proprietary system based upon FrameViewer; developed a database
visualization tool for Avant!'s next generation layout editor.

Avant! Corporation (Synopsys, Inc.)

Research Triangle Park, NC
Intern
May 1997 through August 1997

Developed a Java-based hierarchical design visualization tool using JDK
1.1.x; constructed a framework to interoperate with their C-based
libraries.

Scientific Research Laboratories

Ford Motor Company
Dearborn, MI
Intern
May 1996 through August 1996

Designed a Motif user interface for an Xlib-based embedded microprocessor
execution simulator used for reverse engineering a competitor's product;
revised the architecture of this project and added multiple, simultaneous
execution visualization modes.

Total Quality Stats

Ann Arbor, MI
Linux Consultant
April 1995 through October 2005

Helped build and maintain their Linux-based network, constructing their first
server; wrote automated FAX scripts for content delivery to their customers;
maintained and extended their Java-based sports statistics program; designed a
PostgreSQL database to ease retrieval and maintenance of sports statistics;
created and modified C programs to use the new database; identified and
corrected bottlenecks in their web server through hardware upgrades and
software measures, such as transitioning to the Apache mod_perl extension.

Computer Aided Engineering Network

University of Michigan
Ann Arbor, MI
System Administrator
November 1994 through July 1998

Oversaw the operating system upgrades of approximately 50 DECstations;
designed a Perl script to allow the DECstations to report system messages via
the syslog facility; developed a web-based statistics gathering program and
other tools in Bourne shell and Perl for CAEN's AFS-based distributed computing
environment; insured the correct day-to-day functioning of the DECstation
network via log file analysis; designed a configurable, standalone or web-based
replacement in Java for their web-based Perl/CGI realtime lab viewer.

Personal Experience

Linux Kernel Developer
November 1994 through Present

Credited Linux kernel hacker.  Contributed minor patches directly to Linus
Torvalds.  Maintained the totem and oplbeep packages.  Early contributor to the
linux-kernel mailing list.

Free Software Developer

May 1994 through Present

Developed scripts to help University of Michigan students running Linux to
connect to the various computer networks, before it was officially sanctioned
by the university.  Became the campus-wide Linux guru and, as a result, was
hired by CAEN. Contributed bug fixes and/or feature enhancements to free
software such as SysVInit, slrn, xmille, tkman, dcon, mc, Wine, xlockmore,
xscreensaver, fontutils, fileutils, sh-utils, textutils, Mesa, xosview, nmh,
gtk+extra, and others. Contributed the configuration front-end to gnome-socket.
Contributed configuration suggestions and patches to various GNOME
applications. Created simple GUI-based versions of telnet and zwrite in
Tcl/Tk. Wrote parsenews, a Perl-based e-mail/Usenet news article beautifier.
Maintained sortmail, a header-based mail sorting program written in Perl.
Contributed dozens of new and enhanced RPM spec files to various projects,
including GNOME, as part of my work on the trading system. Early contributor to
numerous Linux mailing lists now hosted at kernel.org. Frequent contributor to
Red Hat, GNOME, and Mozilla Bugzilla.

Preteen and Teenage Years

December 1985 through August 1993

First Commodore BASIC code published at age 12 in Run Magazine Issue 49
(January 1998, page 14). Developed Commodore 64 mailing label software and an
Okimate 20 printer driver for an automotive parts warehouse's advertising
brochures. Wrote a Commodore 64 French-to-English dictionary program, complete
with a redefined character set, for my French classes. Studied Pascal in
eleventh grade and developed an implementation of Solitaire as my final
project.

Awards


Awarded stock options in the initial public offerings (IPOs) of VA Linux 
Systems (1999), Caldera Systems (2000), and Red Hat (2001) in recognition for
my work on Linux.

Educational Experience

University of Michigan College of Engineering
September 1993 through April 1999

Pursued nearly all undergraduate coursework offered in Electrical
Engineering, Computer Engineering, and Computer Science for a total of 12
four-month semesters.  Postponed graduation due to financial considerations
but I hope to return one day to finish my BSEE. Coursework excerpt:

Organizations

I am an amateur radio operator and my FCC-issued Extra Class callsign, first issued in 1991, is N8QDW.