| 
 Skills 
Software 
 
Networking 
 
Hardware 
 
 | 
  | 
 Programming Languages 
Ada, Algol, APL, ASP, ASP.NET, Basic, C, C++, C#, COBOL, Common Lisp, Delphi, FORTH, FORTRAN, HP VEE, HTML, HyperCard, Icon, Java, JavaScript, Jscript, Lisp, Logo, Pascal, perl, Postscript, PowerBuilder, Prolog, Scheme, Self, sh, Smalltalk, Snobol, SQL, TCL, Toolbook, VBScript, Visual Basic, VB.NET, XML, XSLT 
C# 
Over 100,000 lines of production of code, many projects, all sizes. 
|   | 
 History 
| 2001-2002  |   | Used C# to develop small applications for network management and other tasks.  |  | 2002  |   | Developed TimsheetTrak application in C# using WinForms, XML, Web Services and custom grid control I wrote myself.  |  | 2002  |   | Implemented EmeraldDataMapping data storage system in C#.  |  | 2003  |   | Created graphical shopping cart and online ordering system using C#.  |  | 2002-2008  |   | Designed & implemented very large automated banking and healthcare application in C#. Implemented geographic healthcare provider lookup using "unsafe" code for block-loading detailed data on 100,000 healthcare nationwide. Implemented ASP.NET web application framework and WinForms application framework. Created TAPI interface module to allow Altigen IVR system to be controlled by state machine implemented in NET Framework. Implemented cryptography and secure data storage using Windows APIs. Updated customer service GUI to use WPF instead of WinForms.
  C# is the best language I've ever worked with, including many of my favorite features of Java, Delphi, Lisp, and VB.  I've really enjoyed working with it.  |   
Development Environments 
.NET Framework 1.0-4.0 Visual Studio.NET 2002-2008  |   
C / C++ 
Over 100,000 lines of production code, hundreds of projects, all sizes. 
|   | 
 History 
| 1981-1984  |   | Used C for Unix work only.  |  | 1985-1990  |   | Used C and MASM for many Windows 1.0 to 3.0 programs and device drivers. Also used C under DOS, OS/2, GEM (Atari ST), OS/9, MAC OS, ...  |  | 1990-1995  |   | Switched to C++, a natural move with my smalltalk and lisp background. Used C++ to supplement my Visual Basic, Toolbook, and Delphi programs on the Windows side and for all Unix work.  |  | 1995-1996  |   | Did a large amount of C++ work on the DISPATCH system and on the Dispatch Virtual Filesystem.  |  | 1998-1999  |   | Used C++ to implement and debug an embedded Java environment.  |  | 2000-2001  |   | Used C++ for Windows and Unix networking projects.  |   
Development Environments 
Visual C++ 1.0 to 6.0, Visual Studio.NET
  Microsoft C 3.0 to C/C++ 7.0, Quick C 2.5
  Borland C++ 4.5 and 5.0, Turbo C 2.0
  gcc on VMS, Solaris, Linux, MEOS (embedded)
  CC on Unix System V, BSD, Solaris
  GEM (Atari ST), OS/9, MAC OS  |   
Java 
Over 100,000 lines of production code, many projects, all sizes. 
|   | 
 History 
| 1995  |   | Evaluated Java for use in embedded system.  |  | 1996-1999  |   | Defined all interfaces and wrote a large percentage of the code for Autonomous Truck project -- 80,000 lines of 100% pure Java. Taught Java to the rest of the Autonomous Truck group. Helped to port Java to our embedded systems. Implemented embedded networking layer in Java.  |  | 2000-2001  |   | Implemented PBX interface, task tracking application, several other systems in Java.  |   
Development Environments 
Sun JDK 1.0 to J2SE 1.3, some J2EE
  Borland JBuilder 1 to 3
  Microsoft Visual J++ 1.0 to 6.0
  SuperCede, Visual Cafe, Marimba Bongo  |   
Basic / Visual Basic / VB.NET 
Over 100,000 lines of production code, hundreds of projects, all sizes. 
|   | 
 History 
| 1977  |   | Mastered TRS-80 Basic.  |  | 1978  |   | First paid computer work using Basic.  Soon hundreds of people were using my programs.  |  | 1978-1981  |   | Became expert on 10+ Basic variants, including Apple II, VIC 20, TRS-80 Model II, CP/M.  |  | 1981-1982  |   | Developed Artificial Intelligence programs using COBOL, Basic, and Z80 Assembly language.  |  | 1982-1984  |   | Developed and sold Basic applications on IBM PCs and many CP/M CP/M and CP/M-86 machines.  |  | 1985-1986  |   | Used Basic whenever Pascal was not available.  |  | 1987  |   | Rewrote large portions of ZBasic compiler to support 8087 floating point math.  |  | 1988-1990  |   | Used QuickBasic for several projects.  |  | 1992-2002  |   | Used Visual Basic for most of my Windows user interfaces and database applications.  |  | 1999-2002  |   | Used VBScript and JavaScript for web development and Windows scripting.  |  | 2002-2003  |   | Learned VB.NET & used it in a few small projects.  |  | 2004-2008  |   | Kept current on VB.NET syntax and new features such as XML Literals.  |   
Development Environments 
Visual Basic 1.0 to 6.0 (and some VB.NET)
  Access Basic 1.0 & Word Basic 1.0 to VBA 6.0
  VBScript for ASP pages and OS scripting
  QuickBasic 1.0 to 4.5, QBasic
  IBM PC Basic, GWBasic
  Microsoft Basic (MBasic) on CP/M, CPM/86 and MSDOS
  ZBasic on TRS-80 and MSDOS
  TRS-80 Model I/III/4 Basic - Level I & Level II
  TRS-80 Model II Basic,TRS-80 Color Computer Basic
  Apple II Basic - Integer & AppleSoft
  VIC 20 & Commodore 64 Basic, Sinclair Basic  |   
Pascal / Delphi 
Over 100,000 lines of production code, hundreds of projects, all sizes. 
|   | 
 History 
| 1982  |   | Learned Pascal on the VAX.  |  | 1984-1989  |   | Wrote and sold hundreds of Turbo Pascal programs, mostly with Z80 or x86 assembly language embedded.  |  | 1986  |   | Developed and successfully marketed VMerge merge processor for Epson QX-10.  |  | 1987  |   | Created GLScan multidimensional analysis (OLAP) program for Cyma.  |  | 1994  |   | Used Delphi for accounting applications.  |  | 1995-1998  |   | Used Delphi for Dispatch Virtual Filesystem and Autonomous Truck projects.  |   
Development Environments 
Delphi 1.0 to 3.0
  Turbo Pascal 2 to 5 on CP/M and MSDOS
  VAX Pascal  |   
Lisp / Scheme 
Over 20,000 lines of code, hundreds of projects, small to medium size. 
|   | 
 History 
| 1982  |   | Learned MACLisp on DEC-20.  |  | 1988  |   | Used Scheme for several projects.  |  | 1989  |   | Learned Common Lisp, did almost all my class projects in Lisp.  |  | 1990  |   | Wrote simple Lisp compiler. Used Lisp to prototype my commercial programming projects.  |  | 1995  |   | Worked on Scheme virtual machine design and Scheme compiler for embedded systems.  |   
Development Environments 
TI Scheme,  MIT Scheme
  XLisp, ELisp (emacs), Allegro Common Lisp, MACLisp  |   
ASP 
About 100 web pages of varying complexity 
|   | 
 History 
| 1996-1999  |   | Read about ASP in magazines.  |  | 2000  |   | In an emergency I learned ASP and rewrote a critical application -- all in just 4 hours.  Our web development team didn't think it was possible!  |  | 2000-2001  |   | Consulted on various web projects.  |  | 2001  |   | There was an urgent need to shut down a server running about 20 custom applications.  In a few days I rewrote all those applications into ASP and moved them onto our main server.  |  | 2002  |   | Wrote all the ASP for this web page, including the navigation bars and database access, in one day.  |   
Development Environments 
Visual Interdev 6.0, FrontPage 2000, Notepad  |   
ASP.NET 
About 500 web pages, from very simple to extremely complex.  See also ASP. 
|   | 
 History 
| 2001  |   | Translated several ASP applications into ASP.NET.  |  | 2002  |   | Wrote ASP.NET front end to test automation system.  |  | 2003  |   | Created graphical shopping cart and online ordering system using C#.  |  | 2004  |   | Converted this resume site to ASP.NET, including custom controls and master pages, in one day.  |  | 2002-2008  |   | Implemented web interface to large automated banking and healthcare system.  |   
Development Environments 
.NET Framework 1.0-4.0 Visual Studio.NET 2002-2008  |   
COBOL 
About 5,000 lines of code, several projects. 
|   | 
 History 
| 1980-1981  |   | Developed new Artificial Intelligence programs in COBOL. Added optimization and machine language routines to existing Artificial Intelligence program, speeding it up a thousand-fold.  |  | 1982  |   | Developed several games and database applications in COBOL.  |   
Development Environments 
Ryan-McFarland COBOL for TRS-80 Model II  |   
FORTH 
About 2,000 lines of code, wrote interpreter. 
|   | 
 History 
| 1982  |   | Read a book on FORTH, wrote small FORTH interpreter and a few programs.  |  | 1985  |   | Found free FORTH interpreter for CP/M, wrote a few programs.  |  | 1986  |   | Disassembled portions of Epson QX-10 VALDOCS software written in FORTH to learn system calls for my VMerge program.  |   
Development Environments 
My implementation of FIG FORTH for TRS-80 Model II
 FORTH-83 for CP/M
 VALDOCS FORTH  |   
FORTRAN 
About 1,000 lines of code. 
|   | 
 History 
| 1981  |   | Learned FORTRAN from a book, debugged others' FORTRAN programs on paper.  |  | 1982  |   | First chance to work with live FORTRAN compiler.  Wrote small adventure program.  |  | 1985-1988  |   | Occasionally used FORTRAN in coursework.  |  | 1989  |   | Adapted FORTRAN Natural Language Processing program PLNLP to Lisp.  |   
Development Environments 
FORTRAN-77 compiler for DEC-20, Unix, TRS-80  |   
HP VEE 
About 100 objects. 
|   | 
 History 
| 2000  |   | Learned HP VEE, taught others how to use it more effectively. Implemented new interface to embedded systems and helped to improve test harness.  |    |   
HTML 
About 200 web pages of varying complexity. 
|   | 
 History 
| 1995  |   | Created my first home page using raw HTML.  |  | 1996  |   | Created documentation web site for Modular Mining Systems. Wrote Java program to automatically convert manuals from FrameMaker to HTML format.  |  | 1999-2001  |   | Assisted web development team with complex HTML and web site issues.  |  | 2001  |   | Modified and created hundreds of web pages while porting web applications to ASP and cleaning up Modular's intranet.  |  | 2002  |   | Designed this web site.  |   
Development Environments 
emacs, Notepad, Wordpad
  FrontPage 98 to 2000
  HoTaMaLe, Interdev 6.0  |   
JavaScript 
About 100 web pages using JavaScript. 
|   | 
 History 
| 1999-2001  |   | Assisted web development team with JavaScript, DHTML, and cookie issues. Created and updated JavaScript while porting web applications to ASP.  |  | 2002  |   | Designed this web site, including JavaScript for email spam prevention and dynamic buttons.  |   
Development Environments 
Notepad, Wordpad, FrontPage 2000  |   
perl 
About 500 lines of new code, extensive maintenance on existing code. 
|   | 
 History 
| 1996  |   | Learned perl. Wrote additional routines for perl data synchronization program used to update clients' mine automation systems with the latest code.  |  | 1997  |   | Converted several perl programs to Java.  |  | 1999-2000  |   | Assisted web development team with issues encountered while maintaining legacy perl scripts.  |  | 2001  |   | Rewrote many perl scripts using ASP.  |   
Development Environments 
emacs, Notepad  |   
sh 
About 100 scripts of varying complexity. 
|   | 
 History 
| 1986  |   | Wrote shell scripts for Unix terminal multiplexing system.  |  | 1995  |   | Adapted DISPATCH shell scripts to Solaris 2, created new scripts.  |  | 1996  |   | Implemented complex shell scripts to automate installation and operation of Samba and Dispatch Virtual Filesystem, including complex logic and extensive use of awk, sed, and other Unix utilities.  |  | 1997-1998  |   | Wrote shell scripts for Autonomous Truck project.  |  | 1999-2001  |   | Implemented scripts for automating system administration tasks. Created scripts for fully automated custom setup and reconfiguration of Linux systems.  |   
Development Environments 
emacs  |   
Smalltalk 
About 1,000 lines of code. 
|   | 
 History 
| 1989  |   | Learned SmallTalk, wrote several programs. Explored the SmallTalk compiler and p-code implementation.  |  | 1997  |   | Investigated SmallTalk Object Databases.  |   
Development Environments 
SmallTalk-80  |   
SQL 
About 1,000 queries, views, and procedures. 
|   | 
 History 
| 1988  |   | Used SQL syntax in R:Base.  |  | 1989  |   | Wrote SQL queries for database class.  |  | 1992-1995  |   | Extensive Access database work, hundreds of queries.  |  | 1996  |   | Developed all SQL code for DISPATCH Virtual Filesystem project.  |  | 1997-1998  |   | Analyzed SQL and OSQL databases for Autonomous Truck project.  |  | 1999-2002  |   | Implemented SQL Server 7.0 and 2000. Developed many SQL Server applications, including OLAP with Analysis Server. Helped our SQL development team with difficult SQL Server issues.  |  | 2002-2008  |   | Created EmeraldDataMapping to automatically convert LINQ-style queries in C# into SQL. Example syntax:  company.Customers.Follow("Contact").Filter(delegate(Contact c) { return c.State=="AZ"; }) Optimized data access with triggers, views, T-SQL functions. Implemented ReportServer and ReportBuilder.  |   
Development Environments 
SQL Server 3.0, 7.0, 2000, 2005
  Access 1.0 to 2000
  Informix
  Oracle
  R:Base  |   
TCL 
About 1,000 lines of code. 
|   | 
 History 
| 1996  |   | Ported TCL database browser to Access and SQL.  |  | 1997  |   | Wrote TCL code to interface Pit Graphics with autonomous truck system.  |  | 2000  |   | Debugged TCL application's interactions with X Server.  |   
Development Environments 
tclsh, wish  |   
Toolbook 
About 5,000 lines of code. 
|   | 
 History 
| 1991  |   | Learned Toolbook and developed a user interface for Mission Information System reporting.  The Toolbook UI was used to control DataPerfect reports formatted using RTF and Word for Windows.  |  | 1992  |   | Built C++ driver for Toolbook to control the Hypergraphics Response Pad system, allowing up to 250 students to interact with a Toolbook application simultaneously using radio response pads. Developed CBT infrastructure in Toolbook for giving interactive lessons with the response pads. Wrote sample lessons including animations and interactive quiz feature.  |   
Development Environments 
Toolbook 1.0 to 1.53, Toolbook 5  |   
XML / XSLT 
Extensive use of XML, including hundreds of XSLT templates, XSD schemas, XML Web Services. 
|   | 
 History 
| 2001  |   | Read XML, XML Namespaces, XPath, and XSLT specifications.  |  | 2002  |   | Wrote DTD for church application and created UI to use and manipulate XML.  |  | 2002  |   | Used XSD and XSLT for defining database structure in EmeraldDataMapping.  |  | 2002-2008  |   | Extensive use of XML and XSLT in automated banking and healthcare application: Converted HIPAA X12 documents to XML using BizTalk, and later using my own custom converter. Used XmlSerializer and Web Services for request layer I developed for communicating with business objects layer. Created document formatting system that used XSLT for all outgoing emails, statements, and other documents. Implemented XML storage for SQL data fields with automatic conversion to objects in RAM. Used XML, XSD and XSLT to create EDI correlation interface for receiving files from banks, insurance companies, etc.  |   
Development Environments 
.NET framework, ASP.NET, IE5  |   
Ada 
About 500 lines of code. 
|   | 
 History 
| 1986  |   | Learned Ada, wrote a few programs.  |    |   
Algol 
About 500 lines of code. 
|   | 
 History 
| 1982  |   | Learned and used Algol-60.  |  | 1985  |   | Learned and used Algol-68, really liked the language but lack of compiler prevented commercial use.  |    |   
APL 
About 100 very compact lines of APL code, wrote interpreter. 
|   | 
 History 
| 1985  |   | Learned APL, wrote a few programs.  |  | 1986  |   | Developed APL character set and simple APL interpreter for Epson QX-10.  |    |   
HyperCard 
About 500 lines of code. 
|   | 
 History 
| 1990  |   | Learned HyperTalk, did several simple HyperCard stacks.  |    |   
Icon 
About 1,000 lines of code. 
|   | 
 History 
| 1985  |   | Learned Icon, wrote several programs.  |  | 1986  |   | Studied Icon implementation, especially stack handling, co-routines and generators.  |    |   
Logo 
About 500 lines of code. 
|   | 
 History 
| 1981  |   | Learned Logo on Apple II.  |  | 1987  |   | Used Logo on Atari ST.  |    |   
Postscript 
About 500 lines of code. 
|   | 
 History 
| 1986  |   | Wrote Postscript and PCL drivers for printing graphs from a DOS application.  |  | 1988  |   | Used Postscript to add custom geometric images to PageMaker documents.  |    |   
PowerBuilder 
About 500 lines of code. 
|   | 
 History 
| 1997  |   | Created sample PowerBuilder code to interface with Dispatch Virtual Filesystem.  |    |   
Prolog 
About 1,000 lines of code. 
|   | 
 History 
| 1986  |   | Wrote a rule-based menu system in Turbo Prolog. Used Prolog to solve several math and logic puzzles.  |    |   
Self 
About 500 lines of code, wrote interpreter. 
|   | 
 History 
| 1989  |   | Wrote Self interpreter, plus several Self programs for testing the interpreter.  |    |   
Snobol 
About 500 lines of code. 
|   | 
 History 
| 1983  |   | Learned SNOBOL4, wrote a few programs.  |    |   
 
 |