For most of my working life I have done freelance and contract work, sometimes as a supplement to a full-time job.
From 1969 to 1988, I worked primarily in publications: newspapers, magazines and books. I was variously a columnist, reporter, news editor, graphic designer / art director and production manager.
Since 1988, I have been doing contract work in the following areas:
Web design and coding
I created my first web site for the 1996 Canadian Closed Chess Championships that were held in Toronto that year. (I have copied most of the site to http://cftd.cfaj.ca; some links may be broken.) The site looks primitive, as I was just learning HTML.
My personal and business web site is at http://cfajohnson.com.
To contact me for web design work, see http://torontowebdesign.cfaj.ca.
Composing cryptic crosswords
I began composing cryptic crossword puzzles in 1979, for the University of Toronto alumni magazine, The Graduate. I have been composing them for various magazines and newspapers ever since. They are currently published monthly in Good Times, the Canadian Magazine for Successful Retirement. I also compose one-off custom puzzles.
In 1972, when the chess craze resulting from the Fischer-Spassky world championship match was at its height, I taught an adult night-school chess course at Cambrian College in Sudbury, Ontario.
Since then, I have given private lessons to students of all ages.
In 1995-96, I taught courses in Toronto public and private schools for the Chess'n'Math Association.
From 2001 to 2003, I taught in USA Chess Inc. day camps in Dallas and Houston, Texas.
I currently offer private and group lessons for children and adults at your home, school or other location.
Computer programming and writing
I started writing computer programs in 1983, when I bought my first programmable computer, a Radio Shack TRS-80 PC1 pocket computer. I quickly outgrew its very limited BASIC programming language and one-line LCD screen and, a few months later, I bought a Commodore 64, on which I continued writing in BASIC (after a while, using Northcastle Structured BASIC). Where speed was needed, I ventured into assembly language.
I wrote articles on programming Commodore computers for the Toronto Pet Users Group (TPUG) magazine from 1984 to 1986.
In 1985 I upgraded to an Amiga 1000, and in 1989, an Amiga 2000. In 1990, I was introduced to UNIX, and began writing shell scripts. I moved from my Amiga 3000 to a GNU/Linux system in 2000.
From 1990 to 1999, I was a Unix system administrator for the Children's Aid Society Foundation, where I wrote a user-extensible grants database system entirely with Bourne shell scripts.
The Unix shell is now my primary programming language, and I have used it to write everything from one-line utilities to interactive database applications; from web scraping to web applications.
In 2004, I was asked by a publisher (Apress) to compile a book of my shell scripts. The book, Shell Scripting Recipes: A Problem-Solution Approach, was published in May 2005.
My second book for Apress, Pro Bash Programming: Scripting the GNU/Linux Shell, was published in October 2009.