. . . .

Portfolio

 

updated:2018.09.09

david
Prev   Next   Site Map   Email
Please reload page for style change

VIEWING THIS SITE

  • Videos are provided in both webm and mp4 formats, with webm preferred. An old browser that does not recognize the video tag cannot play these but links are provided for downloading the files for offline viewing. Internet Explorer is better than Microsoft Edge, which fails to take advantage of progressive downloading of webm.
  • Javascript and cookies are used to enhance presentation and navigation but are not required. My smart Text Size facility requires both.
  • “far” links Prev Next provide sequential access through major topics, while “near” links Prev Next sequence through the pages of one topic. Home is the far link to this page. Page 1 is the near link to the first page of any topic that comprises more than one page.

AREAS OF EXPERTISE

Languages

C++, Assembler (X86, ARM, M68K, ADSP, Z8, Z80, Z8000, 8051) Python, Lisp, Perl, XpBat, Bash, Javascript, HTML, CSS, AWK, Yacc, Lex, Verilog. Application-specific language design.

Systems

MS Windows (XP, XPe, W7, Tablet, CE) Linux, and Android drivers and applications. RTOS system and application program design. User interface and touch-based application design. USB, TCP/IP, HTTP, and custom communication protocols. Distributed processing. Medical instruments. Microprocessor development systems.

Hardware

Microprocessor and multiprocessor system design. State machines, combinatorial and sequential logic, PLD, and FPGA. RX600, ARM, MIPS, X86.

EXPERIENCE


Thera Institute, Inc. Aptos, CA Nov. 11 - current

Principal Software Engineer

Developed C++ Win32 API interactive enumerated and curve function aspheric lens design programs based on differential calculus and refraction principles. Invented new mathematical proofs for deterministic lens calculations using the interactive program to discover roots of eighth-degree (and higher) polynomials. Developed Windows and Linux utilities. Formalized project history web standards. Improved touch pointer program in embedded ARM C and Win32 C++. Developed specialized laboratory control and data analysis software based on Linux and Posix network and IPC; BASH and Windows WSH scripting; and fundamental algorithms.

Integrated Device Technology, Inc. San Jose, CA Dec. 09 - Nov. 11

Staff Software Development Engineer, Advanced User Interface

Developed firmware and hardware for capacitive touch devices with ARM and MIPS CPUs and Android/Linux/Windows touchscreen drivers. Developed Windows program (Win32 GUI with USB-HID driver) with NXP LPC1342-based USB, I2C, SPI data acquisition system to support general touch and gesture algorithm development. Developed original DSP algorithms for multi-term acceleration, anti-jitter, touch/untouch position stabilization, and sub-perceptive gesture analysis. Four pending patents related to these algorithms and for low-noise, ultra-high-resolution differential capacitive touch device. Designed Subversion-based version control system integrating legacy and new branches into a unified schema with command-line scripts, Eclipse plugin (Subclipse), and TortoiseSVN interfaces.

Tyco Electronics, Elo Touchsystems div. Menlo Park, CA Feb. 06 - March 09

Senior Software Engineer

Designed and implemented drivers, interface libraries, and multi-lingual (English, European, Chinese, and Japanese) applications (including installers, co-installers, control panels, and property sheets) for USB (HID, isochronous, and vendor-specific) and serial touchscreens for Windows XP, Vista, XP embedded, Tablet PC, and CE. Invented driver-based means for a USB-HID mouse device touchscreen to mimic a Tablet PC pen device; edge calibration to improve touchscreen linearity and to automate edge acceleration configuration; driver-based multi-touch for resistive and capacitive touchscreens; and touch-specific UI widgets. Wrote XP-batch scripts to automate building release packages for WinCE 4.2, 5.0, and 6.0 for X86, ARM, and MIPS from a single code base. Wrote Perl scripts to manage multi-lingual database.

Abbott Laboratories, Diagnostics Division. Santa Clara, CA Oct. 98 - April 05

Senior Software Engineer (consultant)

Designed and implemented (in C++, x86 asm, 68K asm, lex, and yacc) clinical instrument development system, including self-configuring robot network, distributed multi-processing operating system, robot control language with dynamically configurable compiler, Windows-based (Win32 API) interactive debugging system. Windows 9x/NT/2K/XP universal device driver for high-speed serial and parallel communication with content-based routing and RDMA (Remote Direct Memory Access). Windows-based instrument controller with embedded XML, FCS (Flow Cytometry Standard), and proprietary databases; real-time data plotting; automatic code and dialog generation from declarative instrument definition; interactive help using MS word as document server controlled remotely via DDE. Stepper motor controller for synchronized operation of 20 motors using one CPU (MC68340) and FPGA (EPF10K30). Motor control language and compiler.

Abbott Laboratories, Diagnostics Division. Santa Clara, CA Oct. 94 - Oct. 98

Software Lead (consultant)

Planned and directed software development of the CD3200 hematology analyzer. Developed multi-domain, hierarchical software/firmware version control system using PolyMake as a job control language to automate project rules for programming MC68340, I8051, Pentium, MC6809, and FPGAs in C, Assembler, VHDL, and Palasm. Developed run-time selectable Japanese and European languages user interface under English MSDOS. Designed and wrote robotics control language compiler using BISON and FLEX; embedded HTTP server (on FTP’s PC/TCP stack) with dynamic HTML page creation; MS-Windows-based visual algorithm development program. Led 10 software engineers.

Hitachi, Inc, Instrument Division. Hitachinaka Japan April 94 - Sept. 94

Senior Software Consultant

Adapted 747 and 917 clinical analyzer software to Phar Lap DOS extender. Developed bimodal drivers using paired real and protected DLLs with mode gates for debugging simultaneously under real and protected versions of Microsoft Codeview. Designed serial comm, GPIB, printer, touch screen, and other drivers.

Microgenics Instruments, Inc. subsidiary of Boehringer Mannheim GmbH July 91 - Aug. 93

Senior Software/Firmware Engineer

Developed clinical analyzer firmware in Z80 assembler and C and managed the electrical engineering department, directing five electrical engineers. Designed digital and analog circuitry using Lattice GAL, AMD Mach, and standard components. Designed and programmed (in C++ and x86 asm) clinical instrument simulator and guided probe test apparatus. Wrote x86 asm device drivers for SmallTalk. Designed (HW+SW) ADSP2105-based PID servo controller, stepper motor drivers and controllers.

Hitachi Instruments, Inc. and Boehringer Mannheim GmbH Jan. 90 - July 91

Senior Software Engineer (consultant)

Prepared and led seminars for European and American LIS (clinical Laboratory Information System) developers and programmers. Maintained 747 clinical analyzer software.

Hitachi Instruments, Inc. Feb. 88 - Jan. 90

Principal Software Engineer (consultant)

Designed the Model 747 clinical analyzer software. Developed embedded system concept, architectural design, and implementation in C and 80286 assembly language on PS2 and ISA computers. Implemented real-time multitasking on MSDOS using DMA, interrupt-driven state machines, and threaded task dispatcher. Designed serial laboratory communication protocol (transport and application levels) which became an industry standard. Developed GPIB, RS232, and printer drivers; printer and disk spoolers; multitasking error reporting engine; real-time multi-user database and windowed user interface; keyboard macro processor; mapping mechanism to print an exact image of the screen display; high-speed on-screen graphing system using custom characters; context-sensitive help engine. Developed text formatting language and process that enables a single program to present on-screen text in any European language (initially released with German, Italian, French, and Spanish). Led 15 software engineers.

Cabrillo College. Aptos, CA Jan. 84 - Dec. 87

Electronics Department Instructor

Subjects included digital hardware, logic theory and realization, state machines, microprocessor system design, and assembly languages.

ASTEC RF Products, Inc. division of BSR International Dec. 84 - Mar. 86

Senior Digital System Engineer (consultant)

System, hardware, and software design and implementation of satellite-seeking television receiver (TVRO). Developed hard real-time multitasking operating system to support robotics, DSP and artificial intelligence on (Motorola) MC6803 microcontroller. Designed system, hardware, and software for GPIB-interfaced automated production test system. Three patents granted for satellite seeking and radio receiver control hardware and processes (implemented in firmware).

Synertek, Inc. subsidiary of Honeywell Feb. 83 - Jan. 84

Senior Engineer (independent contractor)

Conceived, designed, and implemented Z8 in-circuit-emulator sold by Synertek as the MDT20. Developed all hardware and software based on original “in-situ emulation” research. Wrote Z8 and 8048 assemblers and disassemblers. Developed distributed multiprocessing operating system; RS232 and IEEE488 communication drivers; debugger user interface; microprocessor-controlled universal EPROM and fused (PAL) device programmer. Wrote programs in Z80, Z8 and 8048 assembly languages and BASIC.

PUBLICATIONS

PATENTS

  • Pending   “Touch Device Gesture Recognition”   Text   Drawings
  • Pending   “Touch Sensitive Device Adaptive Scaling”   Text   Drawings
  • Pending   “Differential Capacitive Touch Sensor”   Text   Drawings
  • #8,493,357   7/23/2013   “Mechanical Means For Providing Haptic Feedback in Connection With Capacitive Sensing Mechanisms”   Text   Images
  • #4,801,940   1/31/1989   “Satellite Seeking System For Earth-Station Antennas For TVRO Systems”   Text   Images
  • #4,785,302   11/15/1988   “Automatic Polarization Control System For TVRO Receivers” Text   Images
  • #4,783,848   11/8/1988   “TVRO Receiver System For Locating Audio Subcarriers” Text   Images

CONTACT

David McCracken
6850 Freedom Blvd.
Aptos, CA 95003
P.O. Box 1475
Aptos, CA 95001-1475
831-688-0358
davidm@ixont.com