John Gotts Plymouth, MI 48170 Phone: 734-XXX-YYYY E-Mail: jgotts@gmail.com HTML, PDF, and Word formats: linuxsavvy.com/resume.html 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 LLC 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 Linux Consultant / System Administrator 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 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: Engin 103: FORTRAN Engin 160: Technical Writing and Professional Communication EECS 270: Introduction to Digital Logic Design EECS 280: Programming & Data Structures EECS 284: Java, implemented a Java-based Solitaire card game applet using JDK 1.0.2. EECS 303: Discrete Structures EECS 316: Signals and Systems EECS 370: Design of Microprocessor-Based Systems, designed and implemented a software simulation of a register-rich, pipelined MIPS-like processor. EECS 373: Design of Microcomputer Systems, designed and built an 80186-based computer, from the motherboard on up. EECS 380: Data Structures and Algorithms (C++) EECS 401: Probabilistic Methods in Engineering EECS 481: Software Engineering, designed and coded the class hierarchy, graphical user interface, network protocol, and assorted pieces of a fully functional networked Euchre implementation using JDK 1.1.x. IOE 333: Ergonomics TechComm 498: Technical and Professional Writing for Industry, Government, and Business ORGANIZATIONS I am an amateur radio operator and my FCC-issued Extra Class callsign, first issued in 1991, is N8QDW.