John Gotts
14050 Brougham Ct. Apt. 8
Plymouth, MI 48170
Phone: 734-846-5646
Phone (Backup): 734-459-1866
FAX: 734-468-6346
E-Mail: jgotts@gmail.com
Other Formats: PDF, PostScript, text, Word 97-2003 (.doc), Word 2007-2016 and Office 365 (.docx)

Objective

I am seeking a fun software engineering position with the constant opportunity for learning. My software development experience encompasses work I have done as a child, as a lifelong hobby, as classwork, as my work study job, at three internships, as consulting work, and finally as my full-time job. I would describe myself as a Linux generalist with the ability to solve any programming problem that presents itself.

As an excerpt I have created or maintained point of sale (POS); financial derivative trading/management; electronics computer aided design; automotive reverse engineering; system administration; domain registrar; kernel module; command-line utility; fantasy sports management; and game software.

In order of increasing familiarity, I have used the general-purpose programming languages BASIC, Fortran, C++, Pascal, Tcl, Java, JavaScript, Perl, C, and PHP. I have been programming exclusively on the Linux system since 1994 and on Red Hat Linux and its derivatives since 1996. I am comfortable with every aspect of the Linux environment, including shell scripting, system configuration, and troubleshooting.

My programming style reflects my preference for simplicity and long-term code maintainability. I immediately adapt to existing coding practices and learn whatever languages and libraries are currently in use. I enjoy fixing bugs and writing documentation. I am a stickler for software quality, because I often work on software involving financial transactions. It is my job as your programmer to make everyone else's job easier.

Work Experience

Auto Credit Express, Inc.
Auburn Hills, MI
Software Engineer
August 2017 through Present

Just getting started.

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.