Skills


Home Skills Credentials Work History Personal

 

Skills

Software

  Languages
Platforms
Assembly
Tools
APIs
Projects

Networking

  Protocols
Net & OS
Server Apps
Mgmt Tools
Networking
Security

Hardware

  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. 

 



Home   Skills   Credentials   Work History   Personal