Resume
for
Mark Whitis
Senior Computer Engineer


  • Device Driver Development
  • Real Time Systems
  • Internet Software Development
  • Information Security
  • Network Engineering
  • Online Financial Transaction System Development
  • Systems Engineering
  • Electronic Design
  • System & Network Administration
  • World Wide Web (WWW) Development
  • Scientific Programming
  • Reverse Engineering
  • Data Acquisition
  • Image Processing
  • Signal Processing
  • Infrared Astronomy
  • Lasers
  • Cryogenics
  • Biosecurity and Anti-terrorism
  • Facility Security
  • Stage Lighting, Sound, & Carpentry
[Linux Programming Unleashed Cover Image]

Coauthor,
Linux
Programming
Unleashed
ISBN: 0-672-31607-2


Contact Info

   Address:
      107-A Piedmont Ave SOUTH
      Charlottesville, VA 22903
   Phone: +1-434-409-3210 (Cell)

   WWW: http://www.freelabs.com/~whitis/resume/
   Email: whitis@freelabs.com

Be sure to include "[JOB]" in the subject line of email; anything vaguely resembling SPAM is ruthlessly deleted. Permission to add this email to any mailing lists, job opportunity related or not, is denied.


Experience

Software Development

Platforms

Designed and implemented software in a variety of languages on embedded systems, microcomputer (MS-DOS, CP/M, HDOS, Apple DOS), and multi-user minicomputers, workstations, mainframes, and supercomputers (VAX VMS, IBM VM/CMS, and UNIX).

High Level Languages

"C" and "C++"

Designed and implemented many "C" programs, most of which made use of powerful object-oriented features although written in a language which was not object-oriented.

Motor control software

Wrote embedded software to control large DC motors (for hoists, trolley cars, buses, locomotives, shuttle cars, and compressors) in a mixture of C language and 8051 assembler. Featured real-time software PID servos, regenerative braking with boost converter, built in data capture, and cryptographic controlled access to parameter settings.

Motor control communications protocol

Developed communications protocol for communications between motor controllers and protocol simulator.

PCB Isolation

Wrote C language software for PCB isolation (mechanical etching) which can read Gerber files from PCB layout software and produce G-Code to drive CNC milling equipment to cut away unwanted copper.

Stepper Motor Device Driver

Three-axis stepper motor device driver implemented as a loadable kernel module for Linux.

Linux Device Driver for Data Acquisition Card

Developed a loadable kernel module device driver for a CIO-DAS1600 data acquisition card. Unlike most such device drivers, this one was capable of simultaneous synchronized input and output on all digital and analog channels at rates of at least 1Khz as well as generating a synchronized pulse width modulated output.

Online Mutual Fund system

Developed a WWW based online trading system for one of the largest mutual fund companies with three quarters of a trillion dollars in assets under management. Developed on Solaris and AIX platforms. Developed a communications protocols for communicating trade data with mainframe applications. Used ODBC based access to Oracle DBMS.

Proxy Server

Developed a general purpose TCP/HTTP proxy server to provide secure fault-tolerant access to over two hundred financial web servers.

Online Store

Developed online store software in "C".

Molecular Kinetics Simulation

Designed and implemented a real time simulation of the behavior of ideal gas particles in an arbitrarily shaped confined or partially confined space with visual displays and audible feedback. This simulation was written in "C", ran on Sun Workstations under SunOS and OpenWindows or the X Window System. This was a double precision floating point accurate numerical model with special algorithms to achieve real time performance.

Terminal Multiplexor Software

Developed Berkeley Sockets based TCP/IP software to permit more than one terminal to share a process under UNIX (SunOS).

Concentrator

Developed Berkeley Sockets based TCP/IP software to consolidate financial transactions.

HP3-C Orion Update IV sonar buoy Acoustic Interface Unit:

Designed and implemented 20,000 lines of mixed C and 68020 Assembly Language diagnostics for the P3-C Orion Update IV sonar buoy Acoustic Interface Unit using the Tektronix "C" cross compiler and 68000 cross assembler on a VAX/VMS platform. Designed and implemented test executive software which integrated these diagnostics and those written by others and adapted "C" run time environment for diagnostics and operational code. Designed and Implemented 68020 mid-instruction exception handling code to provide for fault tolerance in the event of bus errors.

Autoguider

Designed and implemented Telescope Autoguider software in a mixture of "C", 80286 real mode, and 80286 protected mode assembly language. This was a computationally intensive real time control application which pushed a 10Mhz AT computer to its limits and would not have been possible without hand-optimized assembly routines.

Data Acquisition and Image Processing

Designed and implemented software to acquire images from an infrared detector array into an IBM PC AT compatible computer and to process this data. Implemented in a mixture of Zortech "C" and DSP56001 Assembly language. Software included device independent hierarchical window based graphics routines to draw points, lines, text, and images on display and hardcopy devices and the device dependent (CGA, EGA, VGA, etc) drivers; these routines, written in a mixture of "C"and 80286 Assembly Language were designed in a modular fashion to permit require device dependent routines to provide as few routines as possible but allowed additional routines to be supplied to optimize for a particular devices. Although largely object oriented, this application was written mostly in "C" to facilitate portability, efficiency, and to provide greater control of the implementation of the object oriented data structures. Designed "C++" interface to image processing routines to simplify end-user programming.

Menu System

Designed and implemented a menu system in "C" to integrate applications and memory-resident utilities (such as keyboard enhancers) in a Novell Netware based network of IBM PC and compatible computers with a wide variety of hardware configurations.

Network tools

Designed and implemented a wide variety of network tools on Corvus Omninet/Constellation II (Apple and IBM PC), Novell Netware (IBM PC), and UNIX (Sun and Alliant) platforms.

Data Conversion

Designed and implemented numerous "C" language utilities to process binary data on 9 track magnetic tapes on VAX/VMS and Unix platforms.

Misc. Utilities

Designed and implemented a wide variety of utilities to handle misc. data-conversion, calculation, and data-recovery applications.

Web based Email system

Involved in the design of a secure web based email system with cryptography.

Morse Code Tutor

Wrote C language morse code tutor program for Linux.

ADA

Member of the validation and verification team for the Telesoft ADA Compiler implementations for the UYK-44, 68000, and IBM 370 processors. One of the first ADA compilers ever developed, this compiler has since been marketed as IBM ADA 370 and Sun ADA.

BASIC

Wrote countless programs in various BASIC implementations on HP-3000, MS-DOS, CP/M, Apple II, Zenith Z-100, AIM-65, ELF-II, H-89, Osborne I, and TRS-80 computers. Included absence tracking, survey processing, and Direct Labor Accounting Programs.

FORTH

PASCAL

APL

Wrote a wide variety of small programs in APL, on IBM 370 APL SV and IBM 5100 platforms, primarily as learning and teaching exercises.

FORTRAN

Wrote a variety of small Fortran programs, in WATFIV and VAX Fortran environments.

LISP

Implemented an expert system in a expert system environment based on an IBM PC lisp interpreter. Wrote misc. programs in lisp.

Scripts/Operating System Command Languages

Wrote command procedures in UNIX (PERL, sh, csh, and BASH), VMS (DCL), IBM VM/CMS (Exec2, REXX), and MS-DOS (batch file) environments. Including non-trivial routines to provide UNIX "make" style automation of program compilation under VMS DCL, read incompatible magnetic tapes in REXX, and automatically create user accounts under UNIX.

Application Scripts

Experience with application specific script languages includes macros to link many spreadsheets together, process images, create three dimensional wire frame models, and complete automation of communications sessions.

Relational Databases

ASTEP

Designed and implemented a 3000 line application in DBASE III to perform testability analysis on complex military systems (such as the PATRIOT Missile System). Typical execution time was 72 hours.

Purchase Orders

Designed and implemented a system for automating purchase orders in DBASE III.

Misc.

Wrote a variety of misc. database applications using a variety of microcomputer based database systems.

Assembly Languages

8088/V20/80286 16 Bit Microprocessors

Autoguider, protected mode. (Described under "C" language).

68000/68020 32 Bit Microprocessor

P3-C Orion Sonar Buoy Acoustic Interface Unit (Described under "C" language).

DSP56001 Digital Signal Processor

Infrared Detector Array data acquisition (Described under "C" language).

TMS32010 Digital Signal Processor

Speech Processing/Special Effects.

8080/8085/Z80 - 8 Bit Microprocessors

Implemented an asynchronous communications file transfer program in 8080 assembly language.

1802 - 8 Bit Microprocessor

Wrote a wide variety of programs in 1802 hand assembled machine language. Included many games, graphical simulations, sound effects and real time system level code, such as bit-banging asynchronous serial I/O, cassette modulation/demodulation, FORTH kernel, and printer driver. Many projects included Hardware interfacing.

6502 - 8 Bit Microprocessor

Designed and implemented code to control DC and stepper motors for an automated milling machine and several robots in AIM 65 and Single board environments. Designed and implemented a neural network for character recognition. Have also written small programs in Apple II environment and have disassembled many 6502 programs.

6800/6801 - 8 Bit Micro and Single Chip Micros

Wrote benchmark programs for 6801 family single chip micros. Have hand assembled programs for a 6800 based trainer.

6805 Single Chip Micro

Have written a program to drive an alphanumeric fluorescent display.

8051/80C552 Single chip Micro

Wrote optimized 8051 assembly code routines to accellerate C language motor control software, including special multiply and scale routines.

UYK-44 Military Computer

Inspected ADA compiler generated code for code generator errors as part of the validation and verification of one of the first ADA compilers.

IBM 370 family processors

Inspected ADA compiler generated code for code generator errors as part of the validation and verification of one of the first ADA compilers.

Freely available (open source) software

The following software packages, written in C under Linux, are available for download from web site. In addition, there are some miscellaneous example programs developed for the book Linux Programming Unleashed.


Internet/World Wide Web (WWW) Development


Scientific Programming

Covered under Software Development, Astronomy, and Image Processing section headings.


Electronic Design

Test Equipment

Designed Printed Circuit Board for a Fault Insertion Device, a hand-held, battery powered piece of test equipment which is used to induce faults in digital equipment in order to measure the performance of diagnostic software in complex systems.

Data Acquisition and Control

Isolated Half Bridge 1GBT driver circuit

Designed half bridge driver circuit for 1600V 1000A IGBTs (Insulated Gate Bipolar Transistors) which can be cascaded to drive multiple transitors in parallel and included differential inputs and outputs and temperature monitoring.

Analog to Digital Conversion

Designed electronics, in conjunction with a junior engineer, for preamplification, subtracted double sampling and analog to digital conversion of signals from infrared detector arrays.

Stepper Motor Drivers

Designed and built a number of stepper motor drivers.

RAM-based word/stimulus generator

Designed, in conjunction with a junior engineer, a computer controlled RAM-based word generator with individually variable word dwell time to significantly reduce RAM size needed.

Telescope Interface for Autoguider

Designed interface between an IBM AT based autoguider and the NASA 1.5M Telescope on Mt. Lemon.

Temperature Stabilization System

Designed and built a temperature stabilization system for a Fabry-Perot Interferometer which used a heating jacket and a heated air supply, both servo controlled with redundant circuitry to protect delicate equipment from malfunctions.

Motor Control Interface board

Redesigned an interface board for a motor control system to incorporate differential inputs and outputs on digital and analog signals for improved noise immunity, programable window comparators, flexible PWM steering, and improved isolation on serial RS-422 I/O and parallel operator inputs to 1500V.

ATE Pin Driver

Designed analog pin driver circuit for ATE (Automated Test Equipment).

Programmable Logic

Verilog FPGA code

Wrote Verilog code for FPGA (Field Programmable Gate Array) based motor control circuit.

Microcomputer/Microcontroller

Disk Controller

Aided in the design of a floppy disk controller board for the AIM 65, a 6502 based laboratory computer.

6502 Microcontroller

Designed an I/O intensive 6502 based controller board.

Microprocessor

Designed a microprocessor as an independent learning exercise.

High Voltage

Hazardous Voltage Indicator

Designed Hazardous voltage indicator capable of operating over an unusually wide supply voltage range of 10V to 1500V, including PCB layout with proper clearances between all traces.

Armature Voltage Measurement Circuit

Designed a differential amplifier circuit for measuring motor armature voltage which is capable of operating with up to 2000V common mode voltage.

DC-DC converter

Designed DC-DC converter circuit with 1000V overvoltage protection on input.

Misc

Game Show Lockout Circuit

Designed and built an expandable 12 channel circuit to identify which contestant had pushed their button first.

Computer Aided Design

Experienced not only in the use of CAD systems such as Printed Circuit Board Layout, Schematic Capture, Thermal CAD, and general purpose 2D and 3D CADD but also in their design and implementation.


Electronic (and mechanical) Troubleshooting and Repair

Diagnosed and repaired radios, televisions, transceivers, stereos, theatrical equipment, computers, computer peripherals, video cameras, video monitors, lasers and laser power supplies, test equipment, sewing machines, electrical wiring, plumbing, and more, often without schematics or other essential information.


Information Security


Diagnostics and Test Engineering

Mapped fault coverage of diagnostics. Wrote diagnostic software (P3-C Orion AIU). Designed and implemented software to analyze test coverage (ASTEP). Aided in the design and implementation of software for fault selection and to determine test execution order. Designed and implemented an expert system to aid in diagnosing faults in a piece of test equipment.


Computer System and Network Administration and Maintenance

Corvus Omninet/Constellation (APPLE/IBM)

Novell NETWARE (IBM PC)

Managed a network of 50 IBM PC compatible computers, two repeaters, 900 feet of cable, and spanning two buildings based on Novel Netware and Corvus Omninet. Designed special circuits to protect against lightning damage (which had been a common occurrence). Wrote network utilities and discovered a major security flaw in Novel Netware.

NFS (UNIX/IBM PC)

Managed a network of NFS nodes including Sun Workstations and IBM PC Compatible computers based on ETHERNET, TCP/IP, and NFS protocols which was part of The TCP/IP Internet (ARPANET, DDN, MILNET, NSFNET, etc.) DECNET and UUCP protocols were used to communicate with non-TCP nodes including the SPAN network (DECNET based Space Physics Analysis Network). Replaced sendmail with IDA sendmail to streamline communication with many other networks in the USA and overseas. Managed graphic workstations with X-WINDOWS, NEWS, and SUNVIEW. Installed many public domain UNIX programs, including KERMIT, GNU Emacs, IRAF, Patch, Unshar, IDA Sendmail, and VMS-Backup. Setup Domain Name Server.

Service Provider

Setup and managed a network with dedicated downstream connections and web farm. Configured Cisco routers and Linux based routers/firewalls, switches, DSLAMs. Installed leased line WAN connections using DDS(DS0), T1, MVL/DSL, and modems over analog lines for upstream and downstream circuits. Used Multiport ethernet cards and WAN cards under Linux. Developed a Linux based firewall.

Data Center Design

Specified hardware and network architecture for a multi-site redundant fault tolerant data center with hundreds of terabytes of RAID storage.

Linux System Administration

Installed and maintained Linux (Slackware and Redhat distributions) on a variety of hardware including servers, desktops, laptops, and router/firewalls.


Reverse Engineering

Software

Disassembled many programs, or portions thereof, to overcome poor documentation or to develop patches. A few examples of programs that were completely disassembled:

Hardware

Reverse engineered many pieces of hardware, usually to make repairs or connect to undocumented systems. Just a few examples:


Astronomy

Large Telescope Use and Operation

Used the 3 meter aperture IRTF on Mauna Kea, the 2 meter telescope at Kitt Peak National Observatory (KPNO), the 1.5 meter telescope at CTIO (Chile), the 2.3 meter telescope at the Wyoming Infrared Observatory (WIRO) and operated the 1.3 meter telescope at KPNO, the NASA 1.5 Meter telescope on Mount Lemmon, and the FLWO 1 meter telescope on Mount Hopkins. Total of at least two dozen observing runs.

Infrared Detector Arrays

Fabry Perot Interferometer

Wrote software to control the optical feedback, voice coil driven NRL Fabry-Perot Spectrometer Etalon Servo System. This software was subsequently modified to control a piezoelectrically driven Queensgate Etalon with capacitance micrometer feedback and to test meshes using the voice coil driven, capacitance micrometer feedback Infrared Satellite Observatory Long Wave Spectrometer etalon. This program was gradually modified to deal with six different detectors. Communicated with data acquisition equipment via RS-232 and IEEE-488.

Telescope Autoguider

Designed and implemented telescope autoguiding (star tracking) software for an AT class computer in a mixture of C and 80286 Assembly Language (real and protected mode) which used a centroid based algorithm to provide more accurate control and information useful for later data reduction that is unavailable from the less computationally intensive four quadrant algorithm.


Image Processing


Lasers

Experience with gas and solid state lasers, including nitrogen (ultraviolet), helium neon (red, yellow, orange, green), argon (visible, multiple wavelength), and carbon dioxide (infrared) lasers. Repaired laser tubes and power supplies.


Cryogenics

Cryogenic experience includes safe handling of Liquid Nitrogen, Liquid Helium, Dry Ice. Have had the opportunity to become familiar with construction practices used inside a variety of instrument dewars in astronomical applications.


Biosecurity

Wrote a 60+ page document on combatting bioterrorism through the mail and by other means.


Facility Security

Experience with ultrasonic, microwave, and Far Looking Infrared (FLIR) motion detectors, code entry systems, electronic strikes and electric gates, telephone dialers, audible alarms, and magnetic perimeter sensors. Experience with vidicon, nuvicon, silicon target, warm CCD, SIT, and ISIT type cameras and metascope and image intensifier based night vision equipment. Experience with infrared detector arrays.


Theatrical Experience

Stage Lighting

Experience with resistance, autotransformer, and manually and computer controlled SCR dimmers. Regularly wired into three phase 100 to 800 amp per phase 110/208V circuits. Experience with ellipsoidal reflector and Fresnel spotlights, floodlights, color bars, and specials. Operated Super-Troopers and other follow spots. Maintained all of this equipment.

Sound

Setup and operated a wide variety of sound equipment for live shows.

Video

Operated video cameras, special effects generators, computer video sources, and video tape recorders to tape live performances.

Equipment Repair

Performed extensive repairs on lighting instruments, dimmers, follow spots, mixers, cables, tape decks and microphones.

Stage Carpentry

Constructed sets for a variety of main stage and experimental productions.

Movie Projectionist

Setup and operated 16mm equipment with manual and semi-automatic changeover.


Examination Design

Developed test questions for a Linux pre-qualification exam used by recruiters.


Employers


Clients

Past clients, direct and indirect, have included:

Listing does not imply endorsement by, or of, these organizations.


Publications

Coauthor,Linux Programming Unleashed

The following chapters were written by Mark Whitis (237 pages):


Education

Self Educated

Security Clearance

Held government confidential and secret clearances as required during past employment.

Licenses and Certifications

Personal Data

Birth date: 4/6/64, U.S. Citizen by Birth.


This file is maintained by Mark Whitis (whitis@freelabs.com).