Eric M. Hopper
123 Bellevue Ave E APT K
Seattle, WA 98102-5514
(206) 588-5677
eric-job@omnifarious.org

Social Media

StackOverflow: http://stackoverflow.com/users/167958/omnifarious BitBucket (like GitHub): https://bitbucket.org/omnifarious/ LinkedIn: https://www.linkedin.com/in/omnifarious/ Personal web page:http://www.omnifarious.org/~hopper/


Summary


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.

Technologies


Languages
C++, Python, Java, perl, C, SQL, Scheme, Pascal, FORTRAN, bash, bourne shell, shell scripting, assembly language, 6502 assembly, 68000 assembly, Ruby, Ant
APIs
Java, STL, JNI, PRO*C, Win32, AES, DES, 3DES, CGI, POSIX threads, POSIX, Unix, X-Windows, Xerces, TurboGears, OpenSSL, WSGI
Operating Systems
RedHat Linux, Linux, Unix, Solaris, HP-UX, AIX, True 64 Unix, Microsoft Windows NT, Microsoft Windows 2000, Microsoft Windws 7
Protocols
SSL, NFS, NIS, IPv6, NTP, VPN, HTTP, SMTP, LDAP, SNMP, TCP/IP, UDP/IP, IP, Ethernet, SSL, CORBA, RPC, 802.1q, VLAN, X.509, ssh, secsh
Ideas
OO design, OO programming, functional programming, extreme programming, test-first design, code reviews, system administration, cryptography, multi-threaded programming, network administration, firewalls, PKI, P2P, relational databases, code reviews, distributed systems, XML, layer-2 networking, security, computer security, secure coding, cryptography, abstract algebra, reed-solomon coding
Other
Sybase, Oracle, Visual C++, ssh, NIS, NFS, ethernet, NTP, logical volume manager, cron, CVS, Subversion, Apache, HTML, CSS, GNU Emacs, GNU C++, GNU C, Networking Hardware, VirtualBox, Jenkins, Bugzilla

Experience


04/2013-12/2016
Break for personal reasons

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:

  • Taught myself a new branch of math related to error correction and cryptography.
  • Wrote a Python library to allow me to do arbitrary galois field calculations as part of my learning (you can see it on my BitBucket account).
  • Achieved a Toastmasters' Competent Communicator certification and partly completed an Advanced Communicator Bronze certification.
  • Gave some instruction on beginning and intermediate level computer science concepts.
01/2012-04/2013
Innovative Converged Devices (renamed to 1066 labs, then acquired by DAQRI)

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.

  • Maintain and administer Git source repositories both locally and on Github
  • Ensure repeatability of bilds of Windows Automative based software
  • Set up and maintain Bugzilla bug reporting systems
  • Provided internal training, support and automation for source repository and bug reporting tools.
06/05-02/11
Miscellaneous contracts

Release Engineer, System Administrator, and Software Engineer

Linux, bash, Hudson, Mercurial, Subversion, C++, Linux, Postfix, Python, Perl, bash, PKI, OpenSSL, ssh, secsh, Ant, Maven, AIX, Java, CVS, Turbogears, Ruby, Ethernet, 802.1q, SNMP, Z/OS, XML, OO design, OO programming

I worked on various contracts during this time individually and in team settings. Here are some highlight achievements.

  • Key resource when team members needed technical assistance with open source technologies.
  • Managed the team's source repository and continuous integration system.
  • Played a role in managing people and personalities to help the team become more effective.
  • Provided consulting that resulted in significant performance improvements for their web application.
  • Convinced people to clearly articulate the reasons for design choices, and discovered better ways to optimize all design criteria.
  • Helped several team members learn better and safer C++ coding techniques. Wrote reusable code demonstrating those techniques.
  • Made a case for and sketched out preliminary plans for moving to a distributed source control system. Git was already informally used by many developers.
  • Provided a communications channel for disparate groups to learn surprising ways their actions might affect each other, thereby enabling them to make better plans to minimize the negative impact of those actions.
  • Maintain an agent that acts as an ersatz web service written in C++ that runs on an IBM mainframe running z/OS. This agent makes calls to mainframe assembly code written by other programmers in the organization and it also queries VSAM tables.
  • Act as a resource for questions about Unix systems and C++ and OO software design.
11/03-05/05
Amazon.com

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.

  • Front-line, pageable support for common errors and problems of a set of Amazon's supply-chain Oracle databases. More difficult problems were brought to the attention of an Oracle DBA.
  • Wrote reports in perl and Python that combined data from multiple data sources to provide insight into holiday supply-chain operations for upper management.
  • Maintained existing C, C++, and perl code.
  • Answered questions about internal details of Unix, Linux and Oracle for developers and support staff.
  • Provided some mentoring for less experienced developers.
08/88-3/03
A variety of places as a W2 employee

Senior Software Engineer

C, C++, perl, Python, bash, TCP/IP, CVS, Subversion, Linux, Unix, MS-DOS, Oracle, Sybase, SQL, Visual C++, Windows NT, GNU, DGUX, multi-threaded programming, IPv6, SNMP, OS/2, Tru 64 Unix, JNI, Java, OO design, OO programming, TCP/IP, SCO Unix

A wide variety of experience with different hardware and software platforms. More detail available upon request. I wrote one of the pieces of sofware I'm proudest of during this time using my Stream Module library that's currently available as Open Source.

Other related experience


Good examples of my writing and code can be found in the technical section of my website at http://www.omnifarious.org/~hopper/technical/

Open Source Projects
The StreamModule system

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

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