Click here
to download a Word97 doc file of this resume
September 2005
RESUME of William C. Simpson
Interface Consultants, Inc.
3375 Westpark Drive #143
Houston, Texas
77005-4262
713 / 529-3706 Work
Internet Email Address: neo@ifc2.com
WWW home page URL: http://www.ifc2.com
CAPABILITIES: Software/Hardware design:
- Software:
Device Drivers, BIOS, C, Assembly, Unix
Internals, UNIX (FreeBSD, OpenBSD), Linux, AIX, SGI, Sun, HP-UX,
- Applications:
SCSI, Fibre Channel, Network, Embedded
Systems.
- Hardware:
Intel and Motorola Microprocessors, FPGA, PALS,
State Machines, TTL, CMOS, excellent debugging skills.
- Interfacing:
PCI, PCMCIA, ISA, Versatec, DR11-W, serial
and parallel ports.
EDUCATION: B.S.E.E., M.S.E.E., plus 21 post-master's credits.
EXPERIENCE: 32 years of software/hardware design.
Interface Consultants, Houston, TX (9/85-present) - Contract consulting on
the following projects:
- Developed embedded Linux SCSI target emulation of media changer (tape library) devices. (2005)
- Performed performance profiling to optimize data throughput during data compression. (2005)
- Modified RedHat Linux SCSI target emulation to support autosense to support Fibre Channel. (2005)
- Developed ANSI tape labeling utility for ASCII and EBCDIC tape labels in C on RedHat Linux. (2005)
- Debugged RedHat Linux SCSI device driver shared
memory pinning for DMA issue. This difficult problem required
capturing SCSI bus traces on site and writing debug code to obtain data
visibility. (2005)
- Wrote utility to verify virtual tape data integrity by validating meta-data, headers, and compressed data.
- Wrote utility to dump tape format and data for virtual and physical tapes in C under RedHat Linux. (2005)
- Design and analysis for file system performance tuning under FreeBSD and RedHat Linux. (2005)
- Developed SCSI pass thru library using SG_IO ioctl under RedHat Linux. (2005)
- Developed embedded Linux SCSI target emulation and Fibre Channel target
emulation for tape backup appliance under RedHat ES. (2004)
- Developed embedded firmware for 4 barrel frozen drink machine. (2004)
- Developed data compression feature for TapeLabs TapeServer virtual tape
emulation appliance. (2004)
- Expert witness on the PCI bus. Detailed review and analysis of PCI bus
arbitration, fast back-to-back bus cycles, and chipset HDL implementations.
(2004)
- Developed FreeBSD Fibre Channel target emulation for TapeLabs TapeServer
embedded appliance. (2003)
- Developed virtual tape drive emulation for TapeLabs TapeServer embedded
appliance. Emulated tape drive media using SAN disk files. Apache and PHP web
based user interface developement. (2003)
- Expert witness on PC architecture. Detailed review and analysis of ISA bus
hot key IRQ implementations, cache memory, paged memory. (2003)
- Developed FreeBSD based factory diagnostics, ported device drivers and
kernel to new chip sets, revised Broadcom gigabit ethernet driver for Panasas NAS
disk storage clusters .(2002)
- Revisions to machine tool dimensional tolerance program in C. (2002)
- Developed embedded firmware in C to implement automatic beverage machine
cleaning cycle, cell phone modem data reporting, special diet drink operation
modes, and dial-up modem status reporting. Developed Apache and PHP web based
FreeBSD server for web based data reporting. (2001)
- Set up and maintain Apache web servers, email servers, and DNS servers under
FreeBSD. (1999)
- Developed TapeLabs FreeBSD
based SCSI tape and library management switch using Apache web server, PHP,
Postgress, and C. SCSI target device driver development for Adaptec SCSI
controllers. (1999 - 2003)
- Wrote Sun Solaris SCSI printer target driver for high speed color and monochrome
printers. (1999)
- Ported AMI MegaRAID PCI SCSI RAID disk controller to Solaris 2.7 for
X86 and Sparc. Added private ioctl interface. (1999)
- Wrote IBM RS/6000 AIX 4.1/4.2 STREAMS device driver for
ISA internal modem. (1998)
- Wrote SGI IRIX 6.4 and 6.5 device driver for Ikon
10118 DR11W PCI interface board. (1998)
- Ported AMI MegaRAID PCI SCSI RAID disk controller and Realmode boot driver to
Solaris 2.6. (1998)
- Unix kernel port of TCP/IP compression product to IBM AIX 4.3, HPUX 11, and
Solaris 2.6 for BMC
Software. (1998)
- Wrote IBM RS/6000 AIX 4.2 device driver for Symbios/NCR
PCI SCSI adapter - tape drive emulation. (1998)
- Wrote high performance OpenBSD and FreeBSD UNIX
device driver for AMI
MegaRAID PCI RAID disk controller. (1997)
- PC BIOS modifications to add PCMCIA ATA flash disk boot and run of BSDI Unix
for IP V6 Internet router for Compaq Network Products Division. (1997)
- Wrote SGI O2 IRIX 6.3 device driver for PCI bus high speed interface. (1997)
- Wrote IBM RS/6000 AIX 4.2 network device driver for
Alteon (Nortel) PCI Gigabit ethernet adapter. (1997)
- Designed high accuracy measuring system using Actel FPGA, optical encoder,
quadrature decoding, and IR communication. (1997)
- Notebook PC system keyboard controller 8051 BIOS code development to support
battery I2C interface for Compaq. BIOS development to support Win95,
changes to Plug-and-Play, PCMCIA, hibernation, suspend/standby, screen save,
Advanced Power Management 1.0/1.1 (APM), docking. ISA Plug-and-Play (PnP)
development under Win95. (1995 - 1997)
- Wrote IBM
RS/6000 AIX 4.2 device driver for PCI bus high speed
interface. (1996)
- Wrote Linux and MSDOS SCSI target driver for NCR
Symbios 53C8XX controller. Tape drive emulation. (1996)
- Wrote IBM RS/6000 AIX 4.2 device driver for high speed
printer/plotter. Support for smit and installp. (1995)
- Design of sub-sea blow out protection control system using RadiSys and
Force VME system running VRTX on Motorola 68332
CPU. (1995)
- Design and analysis of pharmacy pill dispensing machine for MediTrol. (1995)
- Embedded scanning/alarm system. Modbus RTU protocol. (1995)
- Embedded real-time control firmware using 68HC11 microprocessor. (1994)
- Ported IBM RS/6000 AIX 4.1.2 device driver for Ikon
10113 plotter interface and Ikon 10111. (1994)
- HDLC communications controller modifications. (1994)
- SunOS and
Solaris SCSI target drivers for thermal and color
Schlumberger printers. (1993)
- Ethernet device driver for IntelNetport print server for Intel. (1993)
- Wrote IBM RS/6000 AIX 3.2.5 device driver for Ikon
10113 high speed plotter interface. Training video for device driver
installation, trouble shooting and theory of operation. (1993)
- Solaris
SBUS device driver development for Texas Microsystems,
Inc. (1993)
- Embedded PC firmware for hand held leak detector. (1993)
- Embedded real-time control firmware using 68HC11 microprocessor. PC Modbus
master station and 68HC11 Modbus RTU data acquisition and control. (1993)
- Wrote embedded burn in test diagnostic firmware for 80186eb in Microsoft C.
PC host control program in C using C-scape and Async Manager libraries.
Communications using Modbus protocol and IIC. Also programmed 80C781 (8051
family) in C for Daniel Industries (1993)
- Taught 486 architecture 5 day courses at Intel
Chandler, AZ, Intel Folsom, CA, Intel
Portland, OR, Texas
Instruments Dallas, TX, and Unisys Salt
Lake City, UT. Developed and presented 486SL course and logic analyzer lab for
Computervision. (1993)
- Wrote Novell Netware device drivers for 82595 LAN chip in assembly language
using MASM 5.1 and 6.0 for Intel. (1992)
- Industrial PC hardware and firmware design. Custom motherboard BIOS
extensions using C-thru ROM.
- Embedded 80186 firmware design for Conitel 2020 and Redac 70 RTU protocols
under IBM RCM real-time executive. (1991)
- Designed two PC/AT bus (ISA) boards to interface to HGS LaserDot plotter and
Versatec interfaces. Work included circuit design, Actel FPGA design, PCB
layout, and debug. Wrote BIOS extension for DMA support of printer interrupt
17h. (1991)
- Design and debug of 486/33 EISA motherboard using Intel 82350DT
chipset for Intel. (1991)
- Wrote MS-DOS device driver for IKON 10111 high speed Centronics/Versatec plotter interface. TSR extends BIOS
printer interrupt 17h to support double buffered DMA. (1991)
- Programming in C for PC network plot spooler using TCP/IP. Included BIOS
level programming and real-time DMA and interrupt handling. (1990)
- Design of Ethernet and Token Ring coprocessor using 386SL processor for
Intel. (1990)
- Wrote Unix software licensing package for Sun Sparc, DEC
Alpha, IBM RS/6000, HP 720, SGI, Decstation, DG Aviion,
and Intergraph Clipper. (1990)
- Embedded 80186 firmware design for Conitel 2020 RTU protocols under
IBM RCM real-time executive.
- Enhancements to IBM RS/6000 AIX device driver for Versatec
plotter interface board in C (and for PS/2 PC AIX). (1990)
- Design of RS/6000
AIX device driver to extend operating system kernel for
RTIC communication coprocessor support (1990)
- Programming in C for PC network plot spooler using TCP/IP. Included BIOS
level programming and real-time DMA and interrrupt handling. (1989)
- Designed IBM RS/6000 AIX device driver for Versatec
plotter interface board in C (and for PS/2 PC AIX). (1989)
- Designed Versaplot RANDOM compatible library interface to
Zeh plotting software. (1989)
- Wrote Intergraph tutorial for PC Microstation in
Microsoft Fortran and C. (1989)
- Hardware design of 386sx laptop PC motherboard. Software BIOS modifications
for Intel. (1989)
- Designed HSRCOL compatible library interface to Zeh plotting
software. (1989)
- Analyzed font aliasing effect and wrote software simulator for Ferranti.
(1989)
- 386 PC motherboard design and BIOS modification, 8042 PC/AT keyboard BIOS
microcontroller programming, battery backed up RAM design for Intel. (1988)
- Programming in C (68010) for embedded VME bus seismic rasterizer using AMX
realtime executive. Auscom 8400 IBM channel interface design for Dupont. (1988)
- Multibus II (MB II) 386 design for space station at Motorola for Intel.
- Designed font editor in Borland C for Ferranti. (1988)
- Taught RMX286 course at Aerospace, Inc, for Intel. (1988)
- MB II 386 design for F16 at General Dynamics for Intel. (1987)
- RMX286 & MB II configuration and debug at EG&G for Intel. (1987)
- RMX286 & MB II configuration and debug. Remote boot over Ethernet at
Watkins Johnson for Intel. (1987)
- Graphics programming in C, and Assembly on VAX and PC. Auscom 8900 IBM channel
interface realtime programming on PDP11/73 (Q-bus) for Logic Sciences. (1987)
- Wrote embedded 80188 RTU application in PL/M for Allen Bradley Modbus
protocol. Wrote simple realtime exec to handle communications, A/D scanning, and
digital input/output. (1987)
- C, PLM86, and PLM286 programming for Flight Simulators at NASA. Design with
PAL's, RMX86, MB II and SCSI disk interface at Singer-Link for Intel. (1987)
- Graphics drivers in C for Air Traffic Control radar displays. Evaluated 2K
by 2K anti-aliased displays. GKS, CGI, DGIS, and controller interfacing at
Magnavox. (1987)
- Embedded 8748 microcontroller real time assembly language programming.
Design and programming in Borland C graphics mode for machine tool tolerance
program. Designed DXF file translator to display Autocad drawings from C
programs. (1987)
- Embedded 8031 and 80186 RTU programming. High speed ECL digital design on
VARS graphic controller (112 MHz). Designed IBM Channel
interface (FIPS60) software and hardware between mainframe and Multibus I.
Designed Multibus Expander to connect two Multibus card cages with bus masters
on either side. Programming in C, PL/M 86, PL/M 286, assembly, under RMX, and
XENIX at Ferranti
International Controls (1985 to 1987)
DIRECT EMPLOYMENT FOR THE FOLLOWING COMPANIES: (June 1972 to Sept 1985)
- Omnicomp Graphics Corp
., Houston, TX (Aug 84-Sept 85)
SENIOR DESIGN CONSULTANT - Graphics software/hardware for OMNI 1000 and 2000.
DEC DRV11-W interface to VAX 11/780. 80188/8086 programs in C, PL/M, FORTRAN,
and assembly for GKS. Multibus-II interface w/ PALS. Embedded 8086/8087/8089
programming for OMNI 1000 GKS graphics controller.
- HERCO
, Houston, TX (July 84) CONSULTANT - Diagnostic
programs for PDP11/34 under RSX11.
- Argonne Systems Inc
, Houston, TX (April 84 - June 84)
SENIOR ENGINEER - Designed Multibus II bus interface w/ PALs for DEC J11 CPU on
Multibus II.
- Welex,
Halliburton
Logging Systems, Houston, TX (May 80 - Apr 84) SR.DEV
ENGINEER - Designed well logging data acquisition hardware/software: STD and
Multibus boards w/ 8085, 8086, 8748 embedded processors in realtime well logging
application. PL/M, C programming. Used 7220 graphics and IEEE-488 bus.
- Houston Engineering Research Corp.
, Houston, TX (May 77
- May 80) SR. TECHNICAL STAFF - Embedded realtime SCADA system hardware/software
using Varian V77, DEC PDP11/34, 6800, Z80/S100 bus, RSX11, FORTRAN, and Basic.
- Electrical Engineering Department,
Lehigh University (June 75 - May 77) INSTRUCTOR- Taught EE courses on
communications, digital and analog design. FORTRAN programming for Bethlehem
Steel Research Lab.
- Hamilton Standard, Windsor Locks, CT (June 72 - June 75) JUNIOR PROJECT
ENGINEER - Digital design, FORTRAN and assembly language programming for data
acquisition systems.
PERSONAL:
U.S. Citizen, non-veteran, married, no children, homeowner, excellent health,
hobbies: Linux, internet.