Resume
for
Mark Whitis
Senior Computer Engineer
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.
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).
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.
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.
Developed communications protocol for communications between motor controllers and protocol simulator.
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.
Three-axis stepper motor device driver implemented as a loadable kernel module for Linux.
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.
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.
Developed a general purpose TCP/HTTP proxy server to provide secure fault-tolerant access to over two hundred financial web servers.
Developed online store software in "C".
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.
Developed Berkeley Sockets based TCP/IP software to permit more than one terminal to share a process under UNIX (SunOS).
Developed Berkeley Sockets based TCP/IP software to consolidate financial transactions.
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.
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.
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.
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.
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.
Designed and implemented numerous "C" language utilities to process binary data on 9 track magnetic tapes on VAX/VMS and Unix platforms.
Designed and implemented a wide variety of utilities to handle misc. data-conversion, calculation, and data-recovery applications.
Involved in the design of a secure web based email system with cryptography.
Wrote C language morse code tutor program for Linux.
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.
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.
Wrote a wide variety of small programs in APL, on IBM 370 APL SV and IBM 5100 platforms, primarily as learning and teaching exercises.
Wrote a variety of small Fortran programs, in WATFIV and VAX Fortran environments.
Implemented an expert system in a expert system environment based on an IBM PC lisp interpreter. Wrote misc. programs in lisp.
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.
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.
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.
Designed and implemented a system for automating purchase orders in DBASE III.
Wrote a variety of misc. database applications using a variety of microcomputer based database systems.
Autoguider, protected mode. (Described under "C" language).
P3-C Orion Sonar Buoy Acoustic Interface Unit (Described under "C" language).
Infrared Detector Array data acquisition (Described under "C" language).
Speech Processing/Special Effects.
Implemented an asynchronous communications file transfer program in 8080 assembly language.
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.
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.
Wrote benchmark programs for 6801 family single chip micros. Have hand assembled programs for a 6800 based trainer.
Have written a program to drive an alphanumeric fluorescent display.
Wrote optimized 8051 assembly code routines to accellerate C language motor control software, including special multiply and scale routines.
Inspected ADA compiler generated code for code generator errors as part of the validation and verification of one of the first ADA compilers.
Inspected ADA compiler generated code for code generator errors as part of the validation and verification of one of the first ADA compilers.
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.
Covered under Software Development, Astronomy, and Image Processing section headings.
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.
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.
Designed electronics, in conjunction with a junior engineer, for preamplification, subtracted double sampling and analog to digital conversion of signals from infrared detector arrays.
Designed and built a number of stepper motor drivers.
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.
Designed interface between an IBM AT based autoguider and the NASA 1.5M Telescope on Mt. Lemon.
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.
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.
Designed analog pin driver circuit for ATE (Automated Test Equipment).
Wrote Verilog code for FPGA (Field Programmable Gate Array) based motor control circuit.
Aided in the design of a floppy disk controller board for the AIM 65, a 6502 based laboratory computer.
Designed an I/O intensive 6502 based controller board.
Designed a microprocessor as an independent learning exercise.
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.
Designed a differential amplifier circuit for measuring motor armature voltage which is capable of operating with up to 2000V common mode voltage.
Designed DC-DC converter circuit with 1000V overvoltage protection on input.
Designed and built an expandable 12 channel circuit to identify which contestant had pushed their button first.
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.
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.
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.
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.
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.
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.
Specified hardware and network architecture for a multi-site redundant fault tolerant data center with hundreds of terabytes of RAID storage.
Installed and maintained Linux (Slackware and Redhat distributions) on a variety of hardware including servers, desktops, laptops, and router/firewalls.
Disassembled many programs, or portions thereof, to overcome poor documentation or to develop patches. A few examples of programs that were completely disassembled:
Reverse engineered many pieces of hardware, usually to make repairs or connect to undocumented systems. Just a few examples:
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.
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.
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.
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.
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.
Wrote a 60+ page document on combatting bioterrorism through the mail and by other means.
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.
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.
Setup and operated a wide variety of sound equipment for live shows.
Operated video cameras, special effects generators, computer video sources, and video tape recorders to tape live performances.
Performed extensive repairs on lighting instruments, dimmers, follow spots, mixers, cables, tape decks and microphones.
Constructed sets for a variety of main stage and experimental productions.
Setup and operated 16mm equipment with manual and semi-automatic changeover.
Developed test questions for a Linux pre-qualification exam used by recruiters.
Past clients, direct and indirect, have included:
Listing does not imply endorsement by, or of, these organizations.
The following chapters were written by Mark Whitis (237 pages):
Self Educated
Held government confidential and secret clearances as required during past employment.
Birth date: 4/6/64, U.S. Citizen by Birth.
This file is maintained by Mark Whitis (whitis@freelabs.com).