Skilled engineer with strong communications skills gathered over 25 years of industry experience. Able to innovate, and advocate successfully for a vision with technical and non-technical stakeholders. Committed to high-quality, reusable code that will stand the test of time.
Good examples of my writing and code can be found in the technical section of my website at http://www.omnifarious.org/~hopper/technical/
Please also see my 'Other Experience' section.
Here I was a build and release engineer for a set of research data collection platforms (hardware and software) supporting Facebook's augmented reality and virtual reality research.
Here I volunteer for individual tutoring and also group instruction on computer science fundamentals for the recently incarcerated.
Here I was hired to be a senior devops engineer for the datacenters and systems that support ServiceNow's software as a service.
Here I was hired to be the tech lead for a team in India with little C++ experience assist Mojang in refactoring parts of the Minecraft Bedrock engine.
Here I was hired to help a team with little Linux experience port a feature of SQL Server to Linux. This feature involved SQL Server launching R, Python, and other processes to handle parts of the query, and in order to continue to meet SQL Server security guarantees, these processes had to be isolated from one-another.
During this time I had to take a break from the working world for personal reasons. I did some professionally relevant programming and studying during this time. Here are some highlights:
Build Engineer
Linux, bash, Windows 7, VirtualBox, Jenkins, Mercurial, Git, Subversion, C++, Windows Automotive, Bugzilla
I was hired to bring order to a very chaotic development process at ICD. Through clever use of VirtualBox and Jenkins I was able to ensure the repeatability of builds of Windows Automotive based software. Through planning, training and automation I was able to assist developers in using the Git source repository in a way conducive to well-managed software development.
Release Engineer
Linux, bash, Hudson, Mercurial, Subversion, C++
I worked for iMatch on a contract they had with a company that (among other things) serves advertising. I was the build and release engineer for a hosted ad serving system written in C++, and also played the role of technical lead for the same project.
Systems Administrator
Linux, Postfix, Python, Perl, bash
I worked here as a system administrator shoring up their systems until they hired someone permanently.
Senior Software Engineer
C++, Linux, Unix, PKI, OpenSSL, ssh, secsh
Assisted in development of Attachmate's implementation of ssh (i.e. the IETF secsh standard). I assisted in reviewing code for bugs, making design decisions with a security impact and writing code to fix bugs and add new features.
Build Engineer
Ant, Subversion, Linux, Maven
I was the build engineer for Evri. I was responsible for making sure the build environment, build system, and source control system supported the needs of the developers who used it.
Release Manager
Python, AIX, Java, Source Code Management, Turbogears, Ant
I was a release coordinator for Regence. I managed the source code control system, official builds, the build system, and releases for a team of developers. I also did other miscellaneous coordination tasks as required, and was sometimes called on to investigate version histories to determine how some change happened or where lost changes might be.
I was also responsible for ensuring that developers have followed Regence policies and good software engineering practices in both testing and creating a system that can be built with a well defined set of tools.
Senior Software Engineer
Ruby, Linux, Layer-2 networking, switches, Ethernet, VLAN, 802.1q, SNMP
Lockdown Networks makes a network appliance that controls the switches on your network in an attempt to enforce a security policy that both ensures only authorized users use the network, and that those user's systems are clear of various forms of infectious software. It does this by isolating them from the main network until they pass a configurable policy.
Senior Software Engineer
C++, Linux, TCP/IP, HTTP, SSL, XML, Xerces, OO design, OO programming, Python, z/OS, mainframe
TeraCloud makes software that customers use to get a handle on what all the hard-drive space is being used for on the computers they own. It does this using an agent that's installed on the computers whose storage is to be monitored, a server that maintains a database and periodically fetches data from the agents, and a client that queries the server for its data.
SDE III (Software Development Engineer 3)
Linux, C, C++, TCP/IP, relational databases, Oracle, multi-threaded programming, Python, shell scripting, NFS, system administration, OO design, OO programming, perl
Amazon is the worlds biggest online retailer. I worked in the supply-chain side of things where Amazon makes extensive use of information technology to reduce costs.
Senior Software Engineer
Unix, Linux, Solaris, AIX, HP-UX, C, C++, Java, TCP/IP, SMTP, relational databases, multi-threaded programming, Python, shell scripting, cron, CVS, Subversion, test-first design, extreme programming, NIS, NFS, system administration, OO design, OO programming, perl, Ethernet, IPv6, cryptography, AES
The code that I wrote when I worked at St. Paul Software is still in operation. Of the sections of code of that maturity level, it is among the most bug free.
Senior Software Engineer
C, Unix, Solaris, Linux, Sybase, relational databases, CVS, OO design, OO programming, Python, perl, CGI
eBenX administrates healthcare plans for large companies. From a technical standpoint, this mostly involves reading large payroll databases exported in a flat file format into a database, then exporting the data to insurance companies in the format they ask for.
Senior Software Engineer
Unix, Tru 64 Unix, DEC, Linux, embedded systems, realtime systems, C, C++, perl, Java, JNI, multi-threaded programming, CVS, OO design, OO programming, TCP/IP, SNMP, OS/2, HMC, shell scripting, software engineering
This company makes a unique enterprise management product. It's a combined hardware/software solution that's capable of agentless management of a wide range of systems, including mainframes, Unix, VMS, and some NT.
Software Author
Unix, DGUX, SCO Unix, AIX, Solaris, Microsoft Windows NT, C++, C, perl, shell scripting, TCP/IP, Visual C++, protocol design, OO design, OO programming
This company creates software that helps people work with EDI (Electronic Data Interchange) transactions. At the time that I worked there most of the software was in C, but they were moving to C++. They were using C++ for most new development. The software had also been moving to a three tier client/server architecture. Their product ran on almost any flavor of Unix or MSDOS. They had been trying to port to NT, and were about midway through porting/re-architecting for the NT platform when I left. Most of my work there was on the 2nd tier of a three-tier client/server system.
Software Engineer
Unix, Solaris, C, Oracle, relational database, protocol design
This company is a consulting firm that often hires outside contractors. At that time in Oklahoma City, they did most of the Unix/C/Oracle development for a company called Datatimes. Datatimes marketed a search engine running on MS Windows that connected via an X.25 network to a multiple terabyte database of news articles. The database ran on a Sun Solaris platform. All of my work there was done under Solaris 2.4, and used Oracle PRO*C for all database accesses.
Software Engineer
C++, Microsoft Windows 3.1, Unix, OO design, OO programming, Paradox, relational databases
This company consulted for companies trying to move their programming shops towards a more object oriented way of doing things. WinterFire designed and wrote object oriented software. I wrote pieces of the software WinterFire's clients had contracted for. All of the work was in C++, usually for IBM PC's running DOS, or MS Windows. My typical project was to write a few C++ classes that interfaced with a relational database and provided services for a user interface layer.
Software Engineer
C, C++, GW-Basic, QuickBasic, MS-DOS, Windows 3.1, Paradox, B-Trees, system administration, Quatro Pro, OO design, OO programming
Wrote and maintained programs in C, C++, GW-BASIC, and QuickBasic for PCs running MS-DOS, MS Windows, and Lantastic. This was mostly accounting and inventory control software.
C, C++, Unix, Solaris, HP-UX, FORTRAN, Pascal, Scheme, shell scripting, X-Windows, Motif
Helped maintain a network of Sun Sparcstations and HP Series 400 workstations. Volunteer consultant for students working with C, C++, FORTRAN, and Pascal on Sun Sparcstations, or an Encore Multimax running a BSD 4.3 compatible, multi-processor Unix.
Software Engineer
C, MS-DOS
Wrote a program for MSDOS that serves as a simple database for blind people. It is a substitute for those things that most people would use notes by the telephone or personal organizers. This was done on contract while I was still in high school. This program should now be commercially available.
I've owned and administer a Unix system in my home. This system was running SCO Unix 3.2r4 until late 1993, when I switched to UnixWare. I switched again in 1999 to running Linux. It's currently not serving anything right now, though I expect that to change in the near future.
Right now, this page is hosted on a server at a hosting company.
Here is a list of stuff running on my home network that I've installed, and configured myself:
There has never been a successful break in on my network except for the time I unwisely allowed someone to run a Windows 2000 server on it. There are many attempts per day to do so.
This résumé is hand coded in conforming XHTML. This entire site is hand coded in more-or-less conforming HTML or XHTML.
This project has been licensed to some of my employers under a proprietary license, and has gone through a complete refactoring or two as I discovered more about the problem domain.
Mercurial is a version control system I found, and liked so much I started contributing to the project. The project is written in Python, and you can check out the commit log for the project to see what kinds of things I've added to it. I've also written a simple Python program to keep a Mercurial repository in sync with a directory in a Perforce depot.
Here is an explicit link to my changes in the commit log: https://www.mercurial-scm.org/repo/hg/log?rev=hopper%40omnifarious.org&revcount=65
In the course of pursuing a BS in computer science at the University of MN, I wrote several notable pieces of software. The dates are important. Few people were doing any serious distributed computing in 1991.
In 1989, wrote a Mandlebrot set generator using TCP/IP to distribute processing over several CPUs from different manufacturers.
In 1990, wrote a C++ class library around XLib, a low level X-Windows function library. Motif builds on Xt, which builds on XLib.
In 1991, wrote an asynchronous I/O, and event processing package in C++ that was the genesis of the StreamModule system. This package was subsequently used with TCP/IP in a distributed ray tracing application. When we ran the application we achieved a nearly linear speedup proportional to the number of processors used.
Available upon request.
Snail mail | Web page | ||
---|---|---|---|
eric-job@omnifarious.org | Eric Hopper 123 Bellevue Ave E APT K Seattle, WA 98102-5514 Phone: (206) 588-5677 |
http://www.omnifarious.org/~hopper/ |