In 1972 I wrote FOCAL-69 code on a PDP-8/L, but I misunderstood the line-numbering system and none of my programs worked right. (The lapse seems understandable given that I was only 8.) I did successfully learn how to manually enter the bootstrap code using the front-panel switches, however, and was able to load programs from punched-tape without assistance.
From 1983 to 1985 I did computer hardware setups / testing / evaluation / shipping in my mom's computer store (and also packing and shipping for awhile). I learned how to program the video chip registers on a Hercules Graphics Card card and wrote a screensaver-like program for it in debug.com (using 8088 assembly code). Also using debug.com, I wrote a short program which made an unusual sound on the PC speaker; our salesmen used it to get people's attention at presentations.
- 1983 - 1985may — Durham, NC: Microglyphics, Inc.: "Customer Support Technician"
From 1985 to 1989 -- my first real, non-family job -- I worked as a coder and lab assistant for Dr. Russel M. Church in the Brown University Department of Psychology. I started out writing in DEC FORTRAN IV on a dot-matrix teletype, soon graduated to a video terminal, was upgraded to FORTRAN 77, and eventually persuaded Dr. Church to bring in a PC and Turbo Pascal. I wrote software for data analysis (spreadsheets were not yet widely known) and running experiments, as well as both ends of a program (including the communication protocol) to transfer files between the old DEC mini system and the new PC over a serial cable, loosely based on Kermit (which we had, but which didn't seem to work). The work wasn't super-exciting, but it was dependable and engaging.
- 1985oct - 1989dec — Providence, RI: Brown University Department of Psychology: "Research Assistant"
From 1990 to 1991, I worked for the late great Dr. Frank Borchardt at Duke University's Humanities Computing Facility doing language-related neural network (NN) simulations (mentioned here; paper). Having found existing NN software packages opaque, buggy, inflexible, and difficult to use, I wrote my own NN trainer in Borland Pascal and ASM86. Although the simulator worked well by mid-1991, developing it at that stage was probably a mistake; I should have been focusing on more prosaic efforts to produce positive results. I severely overestimated the level of "research" that was wanted / expected. In retrospect, although I learned a lot of interesting stuff about neural networks, I probably should have stayed in Providence and not taken this job. (Also: Frank was a great guy, but notoriously difficult to work for.)
- 1990jan - 1991sep — Durham, NC: Duke University Humanities Computing Facility: "Neural Network Computing Research Associate"
From 1991 to 1997, I was living in poverty in Athens, GA, having arrived right at the beginning of a recession and consequent hiring freeze at UGA (source of most computer-related work in the area). I did eventually get work there, at $5/hour, doing image processing in Visual C and data manipulation in Borland Pascal. (Object Pascal was, at the time, as much of a strength for me as PHP is now, with C++ a close second.) I also spent a lot of time pursuing independent software projects (including further development on the neural network program), but was unable to make much headway due to the chaotic work environment. Being a glutton for punishment, I was also trying to start a business... actually, I tried to start one business (recording studio), and was persuaded to start another one (online store for independent musicians) which then morphed into another one (online store selling mostly mass-produced t-shirts), but that's another story.
- 1991oct - 1993oct — Athens, GA: The Athens Observer: graphic layout, also computer technician (mostly amateur)
- 1993oct - 1994apr — Athens, GA: UGA, Dept. of Biological and Agricultural Engineering: "Laboratory Assistant part-time", Windows 3.1 / DOS programmer 
- 1994apr - 1997aug — Athens, GA: CSE/vbz (Owner): Design/code (Perl) for vbz.net shopping cart system; design/html for early versions of vbz.net web site
From 1997 to 1999, I worked for Pierce Manufacturing in Appleton, WI. They had issues, and I learned a great deal about how not to run a software project.
- 1997aug - 1998oct19 — Appleton, WI: Pierce Mfg., Inc.: Software Engineer (early version of CommandZone)
From 1999 through early 2001, I worked for Carrier Transicold in Athens, GA doing Visual Basic database work (MS Access, MSSQL) documenting and designing business process software. Fortunately, their IT department had a much better understanding of software development than Pierce did, and we got a lot of good work done.
- 1998nov05 - 2001jun14 — Athens, GA: Carrier Transicold: Software Engineer, MIS Department
- 2001jun14 - 2003mar29 — Athens, GA and Durham, NC: vbz.net (Owner): improvements to search (Perl/CGI), static pages (HTML), and order management system (MS Access)
For a few months in 2003, I did some additional consulting for Carrier handling the help desk on site so Ed could take a long-deferred vacation and then doing a little VB work remotely (from Durham).
- 2003mar29 - 2003sep23 — mostly telecommute (from Durham): Carrier Transicold: Software Engineer
From approximately 2009 through 2013, coding work ground to a near-halt as multiple family crises diverted all of my focus-time. I finally had to mothball the store in 2011 when part of the checkout process broke. From 2010 to the present I did occasional office-network and web site support for Sage & Swift, a Durham catering company. From 2011 through 2014, I managed to squeeze in some semi-regular web site back-end (PHP/MySQL) work for Swashbuckler Interactive, a small web design/development company then located in Durham (now moved to Colorado).
- converted catalog display from mostly static pages (generated in MS Access/VBA) to dynamic-content pages written in Perl
- rewrote entire site and order management system in PHP/MySQL (data schema detailed here)
- migrated all MS Access data to MySQL/Linux while keeping site live
- moved site and wiki from paid shared hosting to home dedicated server
- deployed multiple installations of MediaWiki; currently live: HTYP, Issuepedia, vbzWiki (support site for vbz.net), HypertWiki, PsyCrit; maintained sites (including spam prevention, backups, and updgrades) and authored almost all content for Issuepedia, HTYP, vbzWiki
- for local client (a doctor's office) needing web site redesign: (a) deployed test installation of osCommerce; (b) settled on ZenCart as having better security; (c) added extensions to ZenCart for bulk upload of images and catalog data; (d) modified ZenCart to allow managing parts of online store's text content via MediaWiki
- wrote SpamFerret, a MediaWiki extension (PHP/MySQL) for blocking wikispam and logging spam attempts
- wrote WorkFerret, a MediaWiki extension (PHP/MySQL) for tracking/invoicing of billable hours for multiple clients
- installed/using on home server: Xubuntu, Postfix, Dovecot, Webmin, Apache2, PHP, MySQL, MediaWiki, Samba, OpenSSH
- experimentally installed on home server: Drupal, Tikiwiki, Feng Office, PhpGroupWare
From late November 2016 to July 2017, I found I was able to adopt a new regimen of working for several hours very early in the morning (waking up generally between 3 and 5); I made some good progress on various coding projects (mainly Ferreteria, VbzCart, and Greenmine) during this time, but it did not continue. I can only think it had something to do with the spironilactone I was taking at that time but no longer needed after July.
From May 2018 to February 2019, I worked remotely on PHP code for PaperDemon, an art-sharing web site and community. That work stopped when the owner decided to quit her job at Google to work full-time, and could no longer afford to hire additional coders.