Use my extensive knowledge of Object-Oriented design, software engineering techniques, C++ and Unix to write low maintenance, efficient, reliable software. My strengths are software architecture, design and development.
C++, Java, Python, perl, C, SQL, Scheme, Pascal, FORTRAN, shell scripting, assembly language, 6502 assembly, 68000 assembly, Ruby, Ant
Java, STL, JNI, PRO*C, Win32, AES, DES, 3DES, CGI, POSIX threads, POSIX, Unix, X-Windows, Xerces-C, TurboGears
RedHat Linux, Linux, Unix, Solaris, HP-UX, AIX, True 64 Unix, Microsoft Windows NT, Microsoft Windows 2000
SSL, NFS, NIS, IPv6, NTP, VPN, HTTP, SMTP, LDAP, SNMP, TCP/IP, UDP/IP, IP, Ethernet, SSL, CORBA, RPC, 802.1q, VLAN
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
Sybase, Oracle, Visual C++, ssh, NIS, NFS, ethernet, NTP, logical volume manager, cron, CVS, Subversion, Apache, HTML, CSS, GNU Emacs, GNU C++, GNU C, X509, Networking Hardware
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Own 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.
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.
I started this project to implement a new Internet protocol in which all communications endpoints are identified by public keys. Public key identifiers, unlike IP addresses, are secure and network topology independent. Unlike DNS, they are secure (no more phishing), and rely on no centralized agency for issuing names. This project requires a lot of careful thought, and I haven't really had enough time to work on it since late 2003.
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.
Graduated from St. Louis Park Senior High, currently (but inactively) pursuing a BS of Computer Science at the University of MN. My goal is a Ph.D.
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 2237 NW 62ND ST APT 4 Seattle, WA 98107-2458 Phone: (206) 234-6623 |
http://www.omnifarious.org/~hopper |