Edward R. Powell
Contact information
- Internet:
- ted@psg.com
- Voice:
- +1 604 738 9000
- Post:
- #34126, 2405 Pine Street,
Vancouver Canada V6J 4M1
Personal
- Canadian citizen, born June 1941 in Duncan, BC.
- In good health, as usual; no disabilities, lifetime non-smoker.
- Have held Secret security clearance when work required it.
- Willing to travel on business, but prefer to maintain permanent residence
in Vancouver.
- Limited ability with French and German.
- Member, Mensa Canada; board member, BC Society of Skeptics.
Expertise
- Forty-five-plus years of programming,
with a strong dedication to writing
robust maintainable code.
-
Expert user of C, Perl, bash/ksh, GNU Make, GNU M4.
Competent user of Java (including Servlets and JSP,
and interaction with PostgreSQL databases via JDBC),
C++, Fortran, Cobol, XSLT, Relax NG,
several older/less well known high level languages,
and various mainframe and micro assembler languages.
-
Scalable directory-enabled virtual-domain email systems with LDAP, Exim,
GNU Mailman, and various mailbox servers.
- Twenty years' experience as a Unix
(Linux, SCO, Solaris, SunOS, SVR3, Ultrix)
system administrator, including
management of multiple TCP/IP networks and routers,
PostgreSQL database servers,
Apache and Apache Tomcat web servers,
DNS and NIS servers,
Samba (SMB protocol) servers,
X terminals,
BitKeeper, CVS, SCCS, RCS, Sendmail, Exim,
Honey DanBer UUCP, C News.
- Applications and systems level programming under
Linux, Unix, MS-DOS, VMS, OS/VS1,
UCSD p-System, MTS, and various older systems,
going back to the Royal McBee LGP-30 and the Alwac III-E.
- Familiar with Ward & Mellor—and similar—design
methodologies.
Employment history
- 1971-present
- President, Entropy Limited, Vancouver-based software consulting firm.
This period included work from time to time
on a personal contract/employee basis
at various Vancouver-based companies, most recently
TGI Technologies (1999-2002).
- 1970-1971
- Vice-President, Entropy Limited.
- 1965-1971
- Student.
- Summer 1966
- Programmer, Defence Research Establishment Pacific, Esquimalt, BC.
- 1958-1965
- General List Officer, Royal Canadian Navy.
- 1947-1958
- Student.
Education
- 1965-1971
- PhD student, Mathematics/Computer Science, UBC.
Did not complete, because
of increased involvement with Entropy Limited.
- 1960-1962
- BSc student, UBC, graduating with first class honours
in mathematics and physics.
- 1958-1960
- BSc student, Victoria College, Victoria BC.
- 1953-1958
- University School (now St. Michael's University School),
Victoria BC. Placed first in class each year.
- 1947-1953
- Public schools in Duncan BC.
Selected projects
- 2006
-
Set up an HPC (High Performance Computing) cluster of 64-bit machines
running Fedora Core 5, using release 5.0beta of the OSCAR (Open Source
Cluster Application Resources) kit.
Much of the kit content is in OS distribution specific directories, and
at the beginning of this undertaking there were no Fedora Core 5
directories, making this more of a challenge than it might otherwise
have been.
Provided the client with detailed step-by-step instructions, enabling
client staff to replicate the process.
- 2004-2006
-
Participated in a project to develop an infrastructure for vending
machine management via the Internet.
This began with analysis, and ultimate rejection, of an existing web-based
application which the client had hoped to convert to this purpose.
Following this, a new database schema was developed, and user interface
screens for entering vending machine descriptions, product descriptions
and multiple-currency pricing, status review, etc, were developed using
PostgreSQL, Java, Java Servlets, Java Server Pages, and the Apache Tomcat
web server. Work included enhancements to a previously-developed Java
application for building SQL commands for constructing a schema from a
database describing the required schema.
- 2004
-
Continued development work on the FIRE email system, adding management
capability for groups of domains, upgrading from Exim version 3 to
version 4, configuring LDAP server replication, configuring Exim and GNU
Mailman for virtual-domain mailing lists.
- 2004
-
Developed a registration database for a convention, using XML,
Relax NG, XSLT, and the xmloperator environment.
- 2004
-
Solved a problem with the "layers" feature in the Scribus open-source
desktop-publishing program, and had the patch accepted by the author.
- 2003
-
Added LDAP authentication and a configuration file capability to the
cucipop POP server.
- 2003
-
Maintenance work on the FIRE email system, migrating from OpenLDAP
version 2 to version 3, and to a newer Perl LDAP API.
- 2002
-
Linux kernel programming, mainly USB driver software for PDAs using ARM
family CPUs. In the course of this, developed a standalone build
environment for drivers, and a methodology for non-recursive makes with
automated dependency handling. Gained some experience with the Doxygen
source code documentation facility.
- 2002
-
Worked on software tools for reconstructing IMAP mail folders.
- 2001
-
Redesigned the internals of the messaging library for a major internet
application and implemented the new design.
The new library required only minor modifications to the application
layer, and could interoperate with hosts still using the old library.
It provided enhanced capabilities through its use of the
"OpenSSL" (Secure Sockets Layer) library.
Interfacing to OpenSSL included designing and implementing two
OpenSSL-compatible "BIO" modules, which support RMS (Record Marking
Standard) and XDR (eXternal Data Representation), as required by the
application.
- 1999
- Database-backed GUI development in Java, using the Swing library
and the JDBC interface to the PostgreSQL database system.
- 1998
-
Developed a forms package using Visual Basic on MS Windows NT. Forms
display and user interaction were via a Wyse-60 ASCII terminal located
remotely from the PC and connected to it via a serial line.
- 1998
- Developed a web-based application using LDAP (Lightweight Directory
Access Protocol) to allow administrators and users to manage email
processing for multiple domains, including the creation of new domains.
- 1997
- Participated in the development of a turnkey firewall/server
package based on Linux.
- 1997
- Set up, from scratch, and administered an office system with a Sun
SPARCstation/Solaris mail and file server and multiple PC/Win95
machines.
- 1997
- Software development, in Perl, interfacing to the CyberCash payment
system.
- 1995-1996
- Administered an installation including Sun SPARC systems,
X terminals, and
Intel systems, running SunOS, Solaris, SCO, and Windows NT/95/WfWG.
In addition to the usual activities of managing user accounts,
installing software upgrades,
developing in-house applications, and the like, I was required on two occasions
to recover from a catastrophic disk failure, necessitating building a
replacement drive from backup tapes.
In each case the system was restored with
minimal loss of user data and availability.
Implemented Direct Inward Dialling
on the company's Norstar Meridian telephone system.
- 1993-1995
- Software development for embedded 68HC11 processors
in MPR Teltech's Flex/WAVE products, using a message-passing
multitasking system.
- 1992-1993
- Programming in support of MPR Teltech's ThinkLink project, in particular
the set-top box and communications processors.
- 1992
- Ported screen management software for an IBM 3270-like terminal, written in
PL/360 (an Algol-ish mid-level language) for the OS/VS1 environment, to C for
the UNIX environment.
- 1991
- Participated in the design of an embedded controller for HF radios
operating in a network.
- 1990
- Extended UNIX System V accounting software to track usage by project,
application program, and user.
- 1989-1990
- Fortran software for Choleski decomposition of large (20,000 rows) sparse
real symmetric positive definite matrices.
- 1988-1989
- Software for MS-DOS computers to track usage by project, application
program, and user. Consists of resident module (TSR) written in assembler, which
traps EXEC function calls and invokes a transient C program. Similar software
for Macintosh computers, a desk accessory written in Turbo Pascal.
- 1988-1989
- Wrote a front end SCCS driver program for AT&T's Source Code Control
System.
- 1988
- Unix printer driver for PostScript printer, written in sh and PostScript.
- 1986-1987
- Software for real time processing of stock market data arriving from
multiple sources.
- 1986
- Designed and implemented a server application for a store-and-forward wide
area network (FidoNet). On receipt of messages addressed to it, it would-subject
to authentication-carry out functions such as transmitting files and forwarding
mail, and charge user accounts accordingly.
- 1984-1985
- Participated in development of Modula-2 Compiler Validation Suite.
Developed Modula-2 I/O library for the VAX/VMS environment.
- 1983
- Ported the UCSD p-System to the Hewlett-Packard HP-150, beginning with an
IBM-PC implementation.
- 1982
- Ported the UCSD p-System to the NSC 32x32 processor family, beginning with
a Z-80 implementation. This included writing a 32x32 assembler in UCSD Pascal.
- 1977-1980
- Developed a full-screen text editor (together with an employee) and a
general conversational programming environment,
running under IBM's OS/VS1 (a batch environment) and
using 3270 display terminals.
This included usage accounting and billing software.
The system was still in service as of 1994.
During part of its lifetime it has run on a pair of CPUs (IBM 4341s)
with common user and log files residing on shared disk.
Written in IBM 370 assembler and PL/360.
Unlikely as this might seem today, each user's session ran in
a 256-kilobyte partition.
- 1978
- Led a team building a completely new suite of forest inventory programs for
Timberline forest inventory consultants, on the occasion of the BC Forest
Service changing all the rules.
- 1978
- Spent a month in Bhopal, India, doing forestry-related programming on an
ICL 1901A. A critical shortage of magnetic tapes made it necessary to develop
(without prior warning) a tape archiver program to permit more effective use of
the few tapes that were available.
- 1976
- Hardware and software for driving a Benson-Lehner drum plotter with a
Fairchild F-8 microprocessor.
- 1972-1973
- Designed and implemented (with employees) a high-level language with
run-time support for retrieval and processing of data from a large
hierarchically-structured data base. Written in Fortran for the CDC 6600 and
subsequently ported to the CDC 3300.
- 1971
- Mended DataGen Canada's core-resident real-time operating system (RTOS),
which was severely non-functional as delivered, in the course of doing a project
based on the Nova minicomputer.
- 1965
- While seconded by the Royal Canadian Navy to the Defence Research Board,
participated in an evaluation and comparison of two surface-to-air guided
missile systems. Designed and implemented a Fortran program to do
a detailed simulation of warding off air attacks with such a system.
References
On request.