`
home services resume portfolio contact us about me

KENNETH STAUFFER

12410 Alameda Trace Circle, Suite 1732
Austin, TX. 78727
Tel: (512) 335-3799
ken@stauffercom.com

Professional Qualifications

  • Seismic, Cross Section, and Mapping: Have written several applications for the Oil and Gas industry. This includes maps for showing well locations. A geological cross section (with deviated wells). Wrote code to display horizons on seismic plots in both 2D and 3D. Wrote code to manage user interaction for selecting objects, entering new data points, and navigating through large data sets. Designed a ASCII file format for representing well and seismic data. Wrote code to translate between UTM coordinates and Lat./Long.

  • C/C++ Application Developer: Have developed many complete C/C++ applications. This includes design, implementation, QA, and documentation. Have migrated large C++ projects to new platforms, or to use new compilers, or to internationalize them.

  • GUI Development: Implemented an online help system using X/Motif. Have written several GUI applications that involve scientific visualization and complex user input. Have designed and implemented many dialogs. Have written 3D transforms for displaying deviated wells. Have used OpenGL to display seismic horizons and to display a scientific simulation consisting of thousands of moving objects.

  • Object Oriented Programming: Adept at using inheritance, templates, and design by contract. Have designed many object oriented solutions including a chess engine and parse trees for various computer languages. Have thorough experience with STL and Rouge Wave template libraries.

  • Parser/Compiler Writing: Have extensive experience designing parsers for existing computer languages. Have invented new computer languages and wrote compilers using byte-code compilation techniques. Designed and implemented an object oriented file format for storing seismic and well data.


Technical Proficiencies

Languages

C/C++, Yacc, Lex, Perl, PHP, Eiffel, Python, Visual Basic, SQL, OpenROAD, lisp

Frameworks & Libraries

OpenGL, STL, Cocoa, unix sockets, unix system calls, X11, Motif, MFC, XML, unicode, Rouge Wave

Databases

Oracle, MySQL, DB2, Sybase, Ingres, OODBC, MQ Series, Informatica, SAP, XML

Platforms

Unix, Linux, Windows, Sun, HP, AIX, Mac OS X

Tools

gcc, make, valgrind, gdb, emacs, CVS, RCS, Visual Intercept, Purify, Visual Studio, Rational Rose, Source Safe, grep, sed, awk, ksh, bash


WORK EXPERIENCE

Relativity Technologies, Raleigh, NC.
1/2004 - 12/2006
  • Developed an OpenROAD parser for Relativity’s workbench product.
  • Developed a complete RPG parser.
  • Used C++ and yacc to implement both parsers.
  • Both parsers involved multiple passes and loaded internal parse trees that were stored to disk using an object oriented database.
  • Visual Intercept was used for bug tracking.
  • Visual Source Safe was used for managing source code changes.
  • Worked closely with programmers from Russia and Raleigh, NC.
Golden Helix, Inc., Bozeman, MO.
7/2004 - 10/2004
  • Wrote a yacc parser for the SMILES language (Simplified Molecular Input Line Entry Specification).
  • Written in C++ using Visual Studio .NET.
  • The final result was a callable library for parsing SMILES strings and giving the molecular graph of the atoms.
BAE Systems, Austin, TX.
5/2001 - 5/2002
  • Developed a translator to convert AM scripts to Visual Basic.
  • Designed a complex yacc grammar to parse AM scripts.
  • The front-end GUI ran on windows and used Microsoft Foundation Classes.
  • The final application was 30,000 lines of code.
  • The GUI allowed users to load projects in a tree view and activate/deactivate various translation options for the source code.
Informatica Corp., Palo Alto, CA.
4/1999 - 4/2001
  • Senior Software Developer.
  • Wrote plug-ins for interfacing with the main product. The plug-ins were for SAP and MQ Series.
  • All programming was done in C++ for both Unix and Windows.
  • Ported entire workbench source code to work with ANSI C++.
  • Did extensive I18N (internationalization) migration. This involved a new unicode string class, and externalization of all text messages.
  • Wrote an expression parser so that users could enter complex search criteria into the GUI.
Hewlett Packard, Mountain View, CA.
10/1997 - 2/1999
  • Designed and implemented a new computer language for validating all Hewlett Packard orders. This library consisted of 15,000 lines of code.
  • All development was done using HP unix workstations and was designed to run on unix.
  • Responsible for the library API documentation.
  • Wrote a tool to convert OpenROAD source code into Visual Basic. This tool also parsed complete SQL statements.
  • Ported a large order server from unix to windows. The code to be ported was about 50,000 lines of C code that used lots of unix network system calls.
Nextron Communications, Inc., San Jose, CA.
10/1996 - 10/1997
  • Senior Software Developer.
  • Was responsible for development of the EasySite product.
  • Interviewed, hired, and managed a team of two other developers.
  • EasySite was a template based website builder. The product was written in C/C++ and used Oracle and ran on Sun unix web servers.
  • Developed a yacc parser for parsing HTML.
MCI, San Jose, CA.
6/1996 - 10/1996
  • Was involved in a large C++ project for revamping all of MCI’s phone call processing pipeline. Our group was responsible for the customer taxation.
  • Used Rational Rose tools for modeling the project.
AT&T, Jacksonville, FL.
9/1995 - 6/1996
  • Supported several legacy applications.
  • As part of this support, I developed a large web application for bug/issue tracking.
Photon Systems Ltd., Calgary, AB.
11/1991 - 8/1995
  • Senior Software Developer.
  • Instituted source code control using CVS.
  • Instituted coding standards, documentation standards and a central repository for reusable libraries.
  • Wrote two mapping applications in C/C++.
  • Implemented a new language/file format for storing seismic and geological well data.
  • Developed a cross section product that displayed deviated wells and allowed the user to pick horizons.
  • Wrote an online help system using X/Motif and GNU GhostScript.
  • Wrote utilities to access well data from DB2 databases.
  • Developed a floating license administrator using unix sockets.
  • Developed 3D transformation library to map 3D data onto a 2D viewport.
  • Developed extensive library for converting UTM coordinates from/to lat./long.
  • Used OpenGL to display interpolated horizons on the SGI workstations.
  • Was the the system administrator for a network consisting of a mixture of PC’s, Sun, HP, AIX and SGI workstations.
University of Calgary, Calgary, AB.
8/1990 - 11/1991
  • System Administrator for a network of 10 unix servers (sparc) and 200+ sun workstations.
  • Developed unix utilities for managing student print jobs.
  • Configured sendmail, uucp, and named.

OPEN SOURCE EXPERIENCE

Evolve 4.0
2007

This is an artificial life simulator. It is a full GUI application written in C++. It includes an installer and extensive built-in help documentation. Invented a forth-like language for evolutionary computing. The back-end simulator works on both linux and windows. The application includes an OpenGL explorer and game mode. It has been downloaded over 3,000 times. I am also running a year long simulation on a linux box that is running 24/7. The simulation results are automatically uploaded to the internet. http://www.stauffercom.com/evolve4

HBChess
2003

Wrote this for the Eiffel Struggle Programming Contest, winning the gold award. It is a complete chess game (GUI and chess search algorithm). It also included a simulated opponent that chats with the player. It is a unique Object Oriented implementation of a chess engine. The contest was focused on Object Oriented practices. http://www.eiffel-nice.org/eiffelstruggle/2003

a31
1990

This is a popular assembler for the Intel 8051 micro-controller. It remains a popular assembler for hardware hackers on the internet. It was written in C and Yacc for unix. It allows the user to plug-in their own file format module to output in a variety of different formats.


Education

Computer Science, B.Sc, University of Calgary, 1990

compilers • parsers • translators • C++ • yacc &bull lex • bison • unix • windows • eiffel • grammars