Experience supplement for resume of Kent Paul Dolan.
Don't despair, it is alphabetized.

Ada83

Since 1984, 2 years net. Applications include meteorology tropical cyclone forecasting data input and filtering, graph theory research support low level graph operations generic toolkit, classroom work, mentoring undergraduate students.

Ada95

Long reading acquaintance, but limited practical experience with this version. I used it in building the compiler from GNAT sources. I wrote and compiled toy programs to show that the compiler worked at all, before it was released. I'm currently (April 2000) learning the language in detail from a textbook, and have written one useful program (a bicycle gear shifting order computation routine for a ten speed bike) with it to date, using the FreeBSD port.

AmigaOS

Since 1985, and until the hardware catches fire or falls to dust. Hundreds of scripts, ABASIC and AmigaBasic programs including a children's drawing toy, Logo programs, writing and porting C code, writing Modula-2 code, minor C++ code. Personal platform of choice, slow as it is on my antique 68000 7.5 MHz hardware; helps maintain my love of programming.

Assemblers

Since 1961, 4 years, over 20 flavors, applications from device driver repair, to a 3D graphics engine, to inner loop speed-up routines for interpreted BASIC scripts.

Automatic
Test
Equipment

Decades ago, as a Polaris Missile Technician of the US Navy, I was a user and a hardware maintainer of ATE at the system test and at the module test level. Transistors then came one to a replacable component.

BASIC

Since 1977, 6 years, graphics, business, numerical analysis, network simulation, math research, games.

Build and
Integration

Much professional informal experience, 4 months formal build team work. Currently replacing build scripts for a 125Mbyte source code base building almost 60 applications.

Business
Applications

Full lifecycle freelance, automated a mental health clinic's patient tracking, patient diagnostic status, patient billing, and patient care scheduling functions, from paper versions.

Did modest business style programming for a shipyard.

Currently doing non-user-visible coding in a big Web based online auction environment.

C

Since 1983, 18 years. Applications include raster computer graphics, digital typesetting, diskette packing for delivery builds, financial proposal planning tools, a software game design tool ("townmaze", distributed as freeware, reportedly once in commercial use), many "write, use, throw away" tools, various aspects of satellite-mediated telephony, some low level email processing code.

C++

Since 1991, 52 months. Applications include various aspects of satellite-mediated telephony, email processing, online auction data management and presentation data access.

CAD / CAM /
CIM / CAE

Helped automate the data gathering, data cleanup, data selection, data depiction, and product production for Nautical Charts, for NOAA, sometimes as tech lead.

Designed and implemented the 3D graphics internals for a CAD/CAM hardware and software product, CADMAX.

Worked as a CAD/CAM System Developer IV for Newport News Shipbuilding, did minor CATIA support programming, machine shop scheduling programming and scheduling product vendor vetting, analysis and graphics display support programming for machine parts classification research.

Helped write 3 international computer graphics programming language standards (GKS (Graphical Kernel System), CGM (Computer Graphics Metafile), and VDI (Virtual Device Interface)) used for doing CAD and CAE engineering style line drawings, as a voting member (representing the US Department of Commerce, initially, and later Vector Automation Incorporated) of ANSI Technical Committee X3H3 (Computer Graphics Programming Languages).

Worked as a liaison to the ANSI Technical Committee X3J7 (Programming Language APT), maintaining a numeric-controlled-machine-tool geometry-based programming language.

CGI

Working knowledge of programming HTTP 1.0 and HTTP 1.1 APIs using Perl, and of parsing and processing HTML forms' returned values. Commercial experience only in the latter usage so far.

Citizenship

US, born in Oakland, California.

Clearances

Several in the past, none current.

One Top Secret from the mid-1960's to about 1972, three Secret since then, one DoD, one DoC, one DoD contractor's clearance.

The most recently used Secret clearance was last used in 12/1994 and lapsed from disuse in 12/1996.

COBOL

2 years light programming, 1976 to 1978 (COBOL '74) 2.5 years supervising COBOL '68 to COBOL '74 transition (and mainframe vendor and wordsize transition) for a shop of 240 software developers, 1982-1985.

Commercial
database

Helped spec, design, and implement a very large (for its day) TOTAL HDBMS.

Did full database functionality application interactions with ISAM and VSAM data bases set up by others (so long ago I cannot remember now why I was doing it or for whom).

Automated paper processes freelance for a county mental health clinic using the PFS-FILE RDBMS.

Gained academic classroom experience with INGRES accessed via SQL embedded in C in a product called Equel, and also directly via interactive SQL.

Redesigned, reimplemented, debugged and extended a complex set of around twenty dBase III RDBMS databases, as part of upgrading a tropical cyclone forecasting workstation tool.

Twinked around a bit with FoxPro under Xenix.

Played with Access under some MS-Windows flavor or other.

Interacted with a Sybase database under Solaris at work to check its contents and their ownership and password control status.

Used Superbase for the Amiga at home.

Designed, implemented, and delivered one very simple textual database, from scratch, using COBOL 68, to rave reviews from the cartographers that used it to maintain and retrieve canal annotation notes for Gulf of Mexico US coastal waters.

Configuration
Management

I have user experience with SCCS, RCS, PVCS, ClearCase, the Honeywell homebrew AMS system (an SCCS wrapper), IBM's CMVC [The latter (another wrapper around SCCS), is far superior.], and CVS, an open source RCS wrapper.

I chaired the Configuration Management committee for a $1.8M US Department of Commerce hardware and software development effort.

CORBA

It was in use (Orbix products) in a recent job (IRIDIUM). I used some of its facilities, but didn't get deeply involved in its theory or programming interfaces.

COTS
integration

Since 1976, mainframes to micros, from a shrinkwrapped Data Presentation product to a multi-million lines of code satellite telephony code suite.

DB2

Very brief exposure; much other DBMS experience.

DD 178B

This is a commercial aircraft industry consensual software development standard. Brief experience over several months.

Design
Patterns

Still reading the textbook.

Desktop
publishing

User experience with Wordperfect, MS-Word, Framemaker (best commercial WYSIWYG tool), TeX (best hardcopy and ease of use overall, far preferred), HTML (best for ease of distribution and access, most used by me recently).

Participated as a developer in Harvard Graphics 3.0 for MS-DOS, working on fancy typeset text presentation.

Development
tools and
methods

Development tools and methods include usual Unix tools, cross compilers, CASE tools like Rational Rose (now UML), top down structured design, structured walk-throughs, chief programmer teams, object oriented development, in circuit emulators, software hexadecimal memory windows, source code debuggers, and so on.

DoD 2167A

Brief exposure while contracting to US Navy.

Easytrieve
Plus

Light "proof of usability" programming experience while helping oversee a large (240 programmer shop) mainframe and skills and programming language conversion for a shipyard.

Education

My BS degree predates the existence of CS degrees, is in math, started at Carleton College, completed at the University of North Carolina, Chapel Hill in 1968, with most of the coursework for both an MS in math completed there and also for an MS in computer science completed in 1988 at Old Dominion University.

Navy training in electronics, mechanical systems, computers, nuclear weapons, ballistics; theory and maintenance for all.

Government training in computer languages, management, leadership, operating systems theory, calculus level statistics theory.

Industry training in communications theory, CDMA theory and practice, OOA / OOD / OOP theory and practice, computer languages, CASE and CM tools, UML, lots more.

FORTRAN

1961 to 1995, up to FORTRAN 77. Applications include computer graphics applications and internals, numerical analysis, database applications, cartography, oceanography, and meteorology.

Graphics 3D

I put the:

  • monochrome
  • real-time
  • token passing OS embedded
  • firmware distributed
  • 3-D
  • wireframe
  • stroke drawn (calligraphic is the term of art)
  • six plane clipped
  • oblique perspective projection
  • full 3D transform interpolated real time motion
  • frame refresh rate synchronized
  • double buffered
  • display list encoded
  • CAD/CAM API supporting
  • computer graphics software

into a special purpose computer graphics display hardware and software product called CADMAX, using FORTRAN, Pascal, and HP-1000 assembly language.

I also have a very limited 3D raster graphics programming experience (the "painter's algorithm" in Logo and Modula-2 for an Amiga), with lots of journal (ACM's Transactions on Graphics) reading about the more high powered rendering stuff, but no matching programming experience.

GUI
development

Since 1974. Most recent was a Perl/Tk tool for managing thousands of image files in dozens of direcories simply and easily. Most useful was an interactive softcopy and hardcopy interface for an interactive tropical cyclone forecasting tool.

Help Desk

Served as the resident JCL expert and reference person for a group of 100 cartographers, 1/1976 to 6/1980.

Served as the customer contact point for product problems for CADMAX 3D CAD system, 10/1981 to 6/1982.

Served as a transition team member for a massive mainframe and programming language release level shift for a team of 240 programmers, 7/1982 to 5/1985.

Served as a fourth (engineering) level support person via telnet for low level Unix style email processing problems at remote customer sites in custom hardware (InterJet II) and under FreeBSD, 9/1999 to 4/2000.

HTML

Since 1995, light scripting, for personal pleasure. Minor maintenance on an HTML / Javascript / ePerl interface for the InterJet II product. Much HTML writing by Perl scripts for bulky pages. Much HTML written from scratch with a text editor for documentation and advocacy within my most recent employment to make the documents available independent of the reader / user platform employed and despite the existance of an internal firewall (which I bypassed by posting the documents on my personal web site).

HCI
development

Human computer interface work since 1974, many GUIs, many straight text interfaces, some of each with menus, now moving steadily into web interfaces, which have become the de-facto standard.

IBM OS/360
to MVS

Since 1965, 13 years until 1988. Used in school, used on the job, heaviest use was in cartography applications.

Java

So far only a reading acquaintance, in the Java in a Nutshell text from O'Reilly Associates; eager to put this knowledge to practice beyond the one word ("public") of Java I've put into delivered code so far.

JCL

Once the shop expert and help desk part-timer for a shop of 100 IBM mainframe using cartographers, for 4.5 years; 13 years overall use, ending in 1988.

KRONOS

Since 1976, 1 year until 1977, doing cartography data cleanup and redundancy reduction, and large format flatbed plotter programming, in FORTRAN.

Mainframes

1965 - 1988 (mostly IBMs of various breeds, but also Honeywell, CDC, Unisys, and Cray), doing business, scientific, and schoolwork programming, in Fortran, PL/1, COBOL, Pascal.

Maintenance
Support

4.5 years full time, lots of part time.

Micro-
processors

Such microprocessor knowledge as can be gained from reading trade publications, and from use of the microprocessors; no EE type knowledge of any processor currently being manufactured.

Microsoft
Windows
of all
flavors

Only as a reluctant and highly unimpressed user; I don't like constant crashes. Given the choice, I write MS-DOS apps and run them in an MS-DOS emulation window when I want to write something to run under MS-Windows. If that isn't possible, I do the data processing task on a real operating system and just import the results to the Wintel box for whatever was their intended use there, instead.

Modula-2

Since 1986, 14 years. Applications include 3D rendering of cubes arranged in "trees", directory walking tools, NP-Complete problem heuristics design and implementation, interactive Langton's ants exploration, windowing GUI management, more.

MS-DOS

Since 1983, to 1999, over 6 accumulated years. Too many applications to remember, mostly scientific, computer graphics, database, or parsing and rewriting tools; dozens of programming languages.

MVS

IBM's OS/MVS, about 1982 to 1988. Applications include bit code level data reformatting to fit smaller wordsizes, HP plotter graphics, CATIA support and other CAD/CAM work, classroom assignments.

Netscape

5 years user experience, modest configuration and installation experience, some awareness of plug-in component use and interface, extensive bookmark file script-driven automated population and manipulation experience. Willing to learn the rest on the job. Have built and installed the FreeBSD port from open sources (no big deal). Now use it as an interactive tool when writing raw HTML pages with a text editor, to check my work as I go along.

OOA / OOD /
OOP

Training and development experience in all, beginning in 1988, continuing to present, mostly using C++.

Pascal

Since 1981, 8 years. Applications include tax preparation software, 3D stroke drawn computer graphics, parsers, data file analysis of linker software output and display of detailed cross-reference tables, and a classroom small operating system assignment.

Perl5

31 months heavy recent use, including using it to write very complex HTML scripts, to analyze and rearrange horribly formatted and sloppily written legacy C software, to write my jobsearch filtering scripts for Net job ad newsgroups, and to write Perl/Tk GUIs.

PL/1

1965 to 1967, nearly forgotten. Applications included analysis of variance for rat-runner data, classwork reduction of "multiple truth level" formal logic expressions to minimal form, research IBM 360 instruction stream tuple frequency of occurrance analysis for planning a next generation of IBM CPU technology.

Programmer /
Analyst

40 years, 26 full time, doing a little of everything from cost/benefit analysis and requirements gathering on the front end to detailed debugging and maintenance on the back end.

Project
Management

Usually more like supervisor or tech lead than project manager, but anyway:

Leading petty officer, Polaris Missile Technician gang, US Navy ballistic missle submarine, 4.5 years.

Commissioned officer, US NOAA Corps, 9+ years.

Project technical supervisor, DoC hardware and software cartographic data application prototype system development project, 5+ years, a couple of million dollars (big money back then).

Supervisor, shipboard software development, data capture, and data processing, GATE meteorological research project, ten months.

Supervisor, shipboard hydrographic data capture, processing, validation, and software development, one year.

Co-tech-lead in a team of four of a shipyard computer platform, operating system, software, legacy data, programming language, and software development staff transition project from 36-bit Honeywell mainframes to 32-bit IBM mainframes: 7.5 million lines of FORTRAN and COBOL, 250 programmers, 20,000 data tapes; from COBOL 68 to COBOL 74 and Easytrieve Plus, from GCOS to MVS, from Honeywell UFAS formats to various IBM tape formats; eighteen months.

Real time
embedded

Several separate jobs doing real-time embedded work, 3.6 years total.

0.4 years doing email software maintenance and upgrade within an Internet appliance product.

1.2 years of SNMP-1 agent standard MIB-II and proprietary MIB internals implementation in C++, for a multicard, M68040 per card powered system embedded in a VMEbus chassis, running under pSOS. Cross developed under Sun Solaris, tested using tftp, bootp, telnet, rlogin, Xray debugger. Delivered as software.

0.8 years design and minor C++ implementation for a cell telephone call satellite to satellite handoff system for a VxWorks system. Delivered as software.

0.8 years design and implementation of the 3D internals for a special purpose computer graphics oriented operating system, on an HP 1000 architecture, in Fortran, Pascal, and assembly. Delivered as firmware.

0.1 years maintenance upgrade of a dedicated Data General Nova, in Assembly, for a one of a kind graphics controller card for a laser onto film 1.6 gigapixel raster plotter. Delivered as software.

0.3 years major upgrade of a telephony system (to and from ground station to satellite to commercial aircraft), developed under VAX/VMS, cross-compiled for a VRTX (or some such) RTOS, targeted to Motorola 60040-powered application specific "multiple box multiple cpu networks in each box" cooperating computers, written mostly in C with usual build scripts. Delivered as CD-ROMware Flash Ram loadable executable images and customer and airframe specific control data value non-volatile-memory targeted tables. I worked on the cabin analog phone and cockpit headset control software, implemented as state machines plus actions.

Schedule /
Optimize

Did maintenance work in a multiple queue sendmail implementation to defer and reduce the queue walking schedule for hard to deliver email to make it be processed less often than recently received email which had not yet suffered a delivery failure, thereby to improve overall email delivery performance by keeping the main queue (to which sendmail passes were scheduled much more frequently) shorter for lack of requeued "second pass delivery attempt" email files.

Worked as a liaison from Newport News Shipbuilding to Carnegie Mellon University researching availability of knowledge based optimization tools suitable for machine shop scheduling.

Researched issues for scheduling platens (shipyard ship assembly working areas). [This is my intended thesis topic if I ever go back to finish my MSCS. It is a fascinating problem, essentially a four dimensional (one being time) knapsack packing problem (with additional resource availability conditions to be met), which makes it at least NP-Complete. The problem probably is best approached as a man-machine "interactive solution seeking" toolkit, where the human does most of the "scheduling" (hyperspace parallelopiped packing) based on intuition, human visual processing skills, and accumulating experience, using a graphical interface interaction, and the machine keeps the proposed solution within the controlling parameters, rather than as a closed form software-only solution, arguably far too complex to be programmed effectively.]

Did minor programming to (dis)qualify scheduling tools offered by vendors.

Have an ongoing hobby interest in programming heuristic approximate solutions for NP-Complete problems.

Scripting
languages

Perl5.005; Perl/Tk; Korn Shell; Sun's DeskTop Korn Shell; C Shell in various flavors; Bourne Shell; imake, gmake, nmake, make, lmk and similar build technology tools; linker overlay control; sed; awk; FTP; Kermit; Procomm COMMAND, Procomm Plus ASPECT, and many similar modem session control tools; Microsoft Mouse Menu Language; wish/Tcl/Tk; AmigaDOS; Amiga REXX; MS-DOS batch; IBM mainframe TSO CLIST, Wylbur, JCL, HASP, JES2, JES3, etc.

Simulation

Simulated cartographic data application workstation network computer workload balance and data transfer rates versus capacity assumptions.

Simulated satellite cell phone call handoff traffic for statistical analysis versus different satellite to satellite handoff paradigms.

SNMP-1 /
MIB-II /
SNMX /
ASN.1 /
BER

1.2 years of SNMP-1 agent standard MIB and proprietary MIB internals implementation, in C++, and MIB-II design experience (in standard ASN.1 (Abstract Syntax Notation One) and using the BER (Basic Encoding Rules) octet encoding standard (of course)), for a multicard, M68040 per card powered system embedded in a VMEbus chassis, running under pSOS.

SNMX scripting under Solaris to create a local operator's workstation interface to monitor, control, and debug overall system operations via SNMP calls.

Perl5.003 and (massive) (dt)ksh scripting to allow interactive generation of sendtrap() scripts to propagate system test SNMP traps via an HP OpenView intermediary.

[Writing scripts to write (and execute or compile as appropriate) other scripts (or compilable code), in response to batch or interactive input, is something I do more and more of, "recently".]

Software
lifecycle

Analyzed existing processes, recommended changes, gathered requirements, wrote specifications, evaluated hardware and software, vetted vendors, managed contractors, did and documented high and low level design, wrote code, debugged code, unit tested code, built code, integrated code, system tested code, wrote demos, delivered product, installed executables, wrote user and maintainer documentation, did sales technical support, maintained code, enhanced existing code, managed configuration, ran help desk, managed small software development teams, over more than 20 years.

Software
porting

Porting experience from MS-DOS, AmigaOS, IBM mainframe OSs, DEC PDP-11's RT11 OS to (and sometimes from) Unix; among several flavors of Unix; from Honeywell mainframes to IBM mainframes, from IBM mainframes to Unisys mainframes; and from CDC mainframes to IBM mainframes.

I've also done software development to target several platforms at once, Unix ones among them, using preprocessor conditional compilation methods, and also using portability checking compilers and similar tools.

SQL

Grad school with Ingres and Equel, plus limited (query only) recent use with IBM's CMVC product.

Standards
work

4.5 years voting member of ANSI X3H3 (Computer Graphics Programming Languages), 1977-1982. Helped write its GKS, CGM, and VDI standards. Strongly influenced standards upgrade path for Fortran90. Mildly influenced graphics additions to BASIC standard. Liaison to ANSI Technical Committee X3J13(?), Programming Language APT. Invited reviewer for Canadian NAPLPS (North American Presentation Level Protocol Syntax, the syntax of a protocol for drawing computer graphics on NTSC TV screens) standard's first edition.

Tcl / Tk

Slight; maintainability rewrite, data input checking, and functionality enhancements of one pre-existing "couple of thousand lines" script, implementing a formal software and hardware testing process' results data capture form; several toy scripts as learning tools. I am definitely still learning Tcl/Tk, two of five programming languages I'm currently adding to my skill set.

Have also used Tk with Perl/Tk, much more extensively.

Teaching /
Training

Taught nuclear weapons safety, ship destruction techniques, US Navy. Taught "Introduction to Computers", Old Dominion University. Was ship's Education Officer for one submarine, and for two surface research ships.

Technical
programming

Lots of programming in scientific fields: cartography automation, meteorology research, oceanography research, hydrographic survey data capture and cleanup, tropical cyclone forecasting analysis automated support, satellite mediated telephony internals, etc.

Some programming for Operations Research uses: machine shop parts classification, machine shop work item flow scheduling.

Some simulation programming experience: cartographic data application workstation network computer workload balance and data transfer rates versus capacity assumptions, satellite cell phone call handoff statistics analysis versus different handoff paradigms.

Some computer design programming experience: frequency of occurrance of tuples of machine code operations in running programs, as a student, for use by IBM in planning their next hardware generation.

Freelance graph theory research low level generic Ada library design and coding for a world class PhD graph theorist.

Freelance analysis of variance (ANOVA) programming for a university PhD rat runner.

N-ary logic expression reduction by recursive truth table application.

Lots of computer graphics applications and internals.

Hobby Travelling Salesman Problem heuristics programming. Hobby arithmetic encoding compression algorithm design and implementation. Hobby integer arithmetic algorithm programming. Hobby cellular automaton design, implementation, and display.

Freelance arithmetic encoding re-implementation (C to Fortran, yuk) of a published algorithm, for compression of terminal I/O across a low bandwidth line, as third party to a US Navy contract.

Modest Internet network programming, mostly email handling and mailing list handling software involving snmp, sendmail, POP3, IMAP4, besterv, et cetera.

Technical
writing

A few software user manuals; oodles of software maintenance documentation, both internal and external; quite a bit of software high level and detail level design documentation; software and hardware requirements analyses; software and hardware requirements specifications; software test requirements; 2 hydrographic survey reports; documentation of two survey techniques and supporting software (all invented by me) [one for mixed sextant and radio navigation to locate a survey point too dangerous to occupy in person, the other for strong resection low error budget methods with a theolodite from an isolated tethered floating platform to known survey positions too time consuming to occupy in person]; development effort progress reports; policies and procedures manuals; parts of three ANSI and ISO computer graphics programming language standards; Usenet advocacy that purportedly changed the direction of the Fortran90 standards effort; much more.

Recently, lots of advocacy writing to help decide the direction of new business efforts in a startup bought by a huge Internet player.

Telecom

SNMP agent implementation, MIB-II scripting, SNMX scripting, ground station operations and management for a satellite cell phone system, fault management ditto, aircraft embedded software for an INMARSAT telephony system, FTP wrapper scripting, Procomm and ProcommPlus scripting. User level experience of common Unix telecom tools.

Email low level software maintenance and implementation described elsewhere.

Test
planning

Writing software/hardware testing requirements for embedded satellite telephony analog phone control software.

Part of a domain and system integration test team, where I helped plan testing, evaluated test plans, and helped write, correct, and extend test execution instruction documents.

That is my only formal test experience, but I've planned, implemented, and executed complex and "exhaustive" tests of software I designed and implemented, to prove to myself and others that the design worked and the implementation was correct, for decades now.

Testing

40 years informal, on own and others code, 4 months as software designer and formal tester, 4 months as part of a formal system integration and test team.

Unix

Since 1984: BSD, Dynix, Eunice, HPUX, SYSVr4, SunOS, Solaris, FreeBSD, SCO Unix, SCO xenix; several releases of some, light Unix sysadmin work (skill long superseded by complexification of computer networks) included in several.

VAX / VMS

Four years user, sysadmin, programmer experience with PDP/RT11, one of VMS's ancestors.

Two years of very light VMS use for hardware testing as a VAX/Unix system administrator.

Four months real time embedded software specification, design, and implementation, using Wordperfect; Microtec C; LSE, EDT, and Adam editors; Russian built TMC test harness, and targeting VRTX (or some such) RTOS.

Verbal
skills

Native speaker of American English, son and father of English teachers, son of a professional technical writer (safety documents) and General Semanticist; modest additional (rusty) communications skills in Latin, Spanish, German, and American Sign Language. The writing you can judge for yourself. Terse I am not.

Work group
size

I have long experience programming as a "programming shop of one", and also as a member of small, medium (two dozen programmers) and large (ten times that size) programming teams.

X / Motif

Only via graphical interface tools such as X/Designer, UIM, xgks, Tcl/Tk/wish, and Perl/Tk. Additional similar windows programming environment experience under AmigaOS since 1985.

Y2K

Does anyone care any more? I'm part of the Y2K problem (I started programming in 1961), am well aware of the issues and many approaches to isolating and repairing the problem. I've programmed in many languages in which Y2K issues are embedded (see the buzzword addendum to my resume for appropriate antique buzzwords).

This page, maintained by
Kent Paul Dolan
xanthian@well.com ,  
was last updated
20010817.