Steven W. McDougall

Electrical Engineer - 40+ years in hardware, software and algorithm development

swmcd@theworld.com
https://theworld.com/~swmcd/steven

198 Worcester Rd
Hollis, NH 03049
(978) 758-7053


EDUCATION

Stanford University, MS, 1983
Electrical Engineering

Princeton University, BS, 1982
Electrical Engineering and Computer Science
Engineering-Physics Program

EXPERIENCE

Grant Street Group, Pittsburgh PA
Senior Software Engineer   2014-present
Wrote tax collection and billing software
Perl, MySQL, JavaScript, HTML, CSS, bash, git, Linux, NiFi, Windsurf Sonus Networks, Westford MA
Principal Software Engineer   2009-2013
Wrote diagnostic and monitoring software for telephone switches
Perl, C, MySQL, bash, Linux, SVN, RPM, RRD, PHP, Kohana, SNMP SiCortex, Maynard MA
Senior Software Engineer   2007-2008
Wrote software for a 6000-core Linux cluster computer
Linux, Python, Perl, bash, SVN, Portage, RPM, SLURM, Syslog, NTP, LDAP, Nagios, RRD Incipient, Waltham MA
Software Architect   2004-2006
Wrote software for managing big storage systems
Win32, C++, Perl, SQL WebEvent, Andover MA
Senior Software Engineer/Technical Lead   2003
Wrote software for a web-based calendar application
Linux, Perl, JavaScript, HTML, XML, MySQL Avid Technology, Tewksbury MA
Principal Software Engineer   2000-2002
Wrote software for distributed storage systems
Linux, WindowsNT, Mac OSX, C/C++, Perl Senior Software Engineer   1997-1999
Wrote software for video editing systems
WindowsNT, MSVC++ Oscient Pharmaceuticals Corporation, Waltham MA
Senior Software Engineer   1995-1996
Wrote software for DNA sequencing operations
VAX/VMS, Solaris, C++, Perl Senior Scientific Programmer   1993-1994
Developed software and algorithms for DNA sequencing
VAX/VMS, Solaris, C++, Perl Sepracor, Marlborough MA
Senior Software Engineer   1992
Developed instrument control software
DOS, Microsoft C/C++ Varityper, Billerica MA
Senior Software Engineer   1991
Developed software for networked printing systems
Mac OS, DOS, C/C++ Osteo-Technology, Framingham MA
R&D Engineer   1987-1990
Developed hardware, software and algorithms for medical ultrasound equipment
DOS, Microsoft C GCC Technologies, Bedford MA
Manufacturing Engineer   1985-1986
Developed OEM disk-drive manufacturing process
Mac OS, Lightspeed C Design Engineer   1983-1984
Mac OS, C, various assemblers XEROX PARC, Palo Alto CA
Engineer   1983 (part time)
VAX/VMS, Pascal IBM, Poughkeepsie NY
Engineer   1982 (summer) Princeton University
Research Assistant   1981-1982 (part time)
HP-1000, C CIBA-GEIGY, Ardsley NY
Programmer   1980 (summer)
IBM System 370, PL/I

SKILLS

OS
Linux, Win32, Mac OSX, MS DOS, VAX/VMS
Languages
C/C++, Perl, Python, PHP, bash, Java, JavaScript, SQL, Go, FORTRAN, Pascal, PL/I, LISP, APL, BASIC
Databases
MySQL, MS SQL server, Oracle, Sybase, Filemaker Pro
Markup
HTML, CSS, XML, SVG
Protocols
TCP/UDP/IP, HTTP, SNMP, SCSI, AppleTalk
Development environments
Unix/vi/make/gcc/gdb, Windows/MSVC++, Macintosh Project Builder
Version Control
git, Subversion, ClearCase, Perforce, CVS, SCCS, RCS
System Management
Slurm, Syslog, Nagios, LDAP, NTP
Graphics
GD, GD::Graph, Perl/Tk, X/Motif, Macintosh, MetaWINDOW
Hardware
PC, Macintosh, Sun Sparc, DEC Alpha, DEC VAX
Assemblers
8086, 68000, 6502, 8051, PIC
CAD
NiFi, Orcad
AI
Devin

FREEWARE

Convert::yEnc
yEnc decoder, with database of file parts
Game::Stones
Play the game of Stones - an exercise in dynamic programming
News::Newsrc
Manage newsrc files
Pod::Tree
Parse a POD into a static tree. Includes Pod::Tree::HTML for translating PODs to HTML.
Set::IntSpan
Manage sets of integers, newsrc style: 1-7, 15, 23-28
Set::Window
Manage an interval on the integer line
A heap
malloc() and free(), with diagnostics and integrity checks

Tech notes

PerlMonth articles

Perl documentation

Object-oriented programming in Perl
It's all done with mirrors
Module Mechanics
How to build a perl module
Module Anatomy
A skeleton for a Perl module
Module PODs
How to document a perl module
Program Anatomy
A skeleton for a Perl program
Program PODs
How to document a perl program

Steven W. McDougall / swmcd@theworld.com / 2026 Jul 22