IBM Compatible PCs, PIC microprocessor, Nintendo Gameboy
32/16 bit Windows/DLLS/COM, MSDOS, FreeBSD, Linux, Embedded Systems
Visual C/C++ with MFC, C/C++, GCC, Strong Boost experience, Visual Basic, Unix shell and utilities
Develops and markets automobile test and diagnostic equipment. Developed C++ server application with MSVC and Boost libraries.
Develops and markets visible and infrared camera electronics. Developed C++ program with MSVC and MFC for configuration of FPGA programmed for these electronics.
Furnishes diagnostic evaluations and maintenance solutions for industrial production machinery and for equipment used in power generation, HVAC, and mobile fleets. Principal industries served also include the marine, construction, mining, trucking, transit and aircraft industries. Developed a new version of their LEM Testing machine. Required
· Design and construction of a custom circuit board with onboard PIC microprocessor.
· Custom optical system for specimen illumination
· Custom Firmware written in C to:
o Control linear state with a stepper motor
o Control an illuminator
o Synchronize A/D conversion
o Transfer data to PC Host using USB protocol
· PC Host program writing C++ with MFC to
o configure, calibrate and operate the LEM
o run the test and retrieve results through USB port
o Graph results
o Perform statistical analysis using multi-variable linear regression.
o Save/post results
Greystone Digital Inc.,
and markets special "Large Key" keyboards. We developed an updated
version of their product with a USB interface. This include hardware design,
firmware, and boot loading updated firmware through the USB interface. The
product itself is now being manufactured in
Develops and markets products using "Assistive Technology". Developed updated hardware for an updated version of the InfoGrip BAT. The original design consisted of microprocessor, EPROM, battery backed RAM, on two separate circuit boards (right and left handed). The original version took a man-year to program. Our modern version consists of a one chip solution which implements a USB interface, fits on "flipable" circuit board for right and left handed versions. This product required two man-months for all hardware and software development. Key technologies used are:
· PIC microprocessor
· CCS C compiler
· USB implementation compatible with standard USB HID device class.
Develops and manufactures software for Electronic Design Automation. This project consisted of developing a custom addition to the Boost Serialization Library to support portable binary archives. Cadence is a use of Boost libraries and uses this extension in one of its verification products.
· C++ Templates on 6 different *nix platforms
· Boost libraries
Develops & manufactures embedded systems to serve the automotive service industry. This project was a telematics application. That is, it consists of modules with radio modems installed in vehicles which continuously connect to a central server via GPRS protocol. The central server can than monitor in real time the position and diagnostic status of all vehicles in the fleet. The major aspects of this project include:
· USB Device drivers
· Embedded system using Motorola 68331
· C programming language Multi-Threaded application
· Motorola G.18 and G.4 Radio modems for GPRS connection.
Develops & manufactures the world's highest resolution Atomic Force Prober (AFP). Wrote C++ code integrate Multi Probe's next generation hardware with the widest possible variety of application software including .Net languages, TCL/TK, Python and others. Tools used include:
· USB Device drivers
· Windows Driver Model (WDM)
· Boost libraries
Procore provides contractors with software and services that improve the efficiency of construction projects. Wrote code to embed Microsoft Project into the Procore website. This permits Procore to seamlessly integrate Project update and edit with other services that Procore offers. This used a combination of VBScript, ASP, MS Project Object model scripting.
Boost.org is an organization dedicated to providing peer reviewed C++ libraries that provides advanced features for C++ programmers. These libraries are distinguished by:
· High quality - before being accepted as a boost library, candidates are subjected to an extremely rigorous peer review system to assure utility, correctness, and elegance of design.
· Portability - all boost libraries are subject to testing on a variety of compilers and operating systems.
· Correctness - exhaustive test cases for each library
· Power - many boost libraries use advanced C++ features such as template meta-programming to make libraries more flexible and powerful.
· Breadth - the code base in the boost libraries is extremely large and varied.
My submission - the Boost Serialization Library has been accepted into boost and should appear soon as part of the official boost release.
Raytheon Corp., Electronic Warfare Division,
and implementation of test station software to test infrared sensors under
conditions of extreme temperature and vibration. This application was written
in Visual Basic and used, COM, captured Video,
Reactive Sputtering, Inc.,
Implementation of Windows graphical User interface programs to control proper flow of gases in a sputtered coating system system. Used C++, MFC, ATL COM Objects, mult-threading, serial communication and STL.
Design and implementation of a new GUI for the world's most powerful microscope. This was built with Microsoft VC++ with heavy reliance on MFC. It incorporates hundreds of thousands of lines of code used to operate the microscope hardware. Taught MFC courses for 15 programmers.
Design and implementation of a COM automation object to permit the reading and editing of data tags (song title, etc) on MP3 files from either Visual Basic or VBScript. This COM object can be embedded in web pages and automatically downloaded to the client system. It can then be invoked to edit the data tags embedded in MP3 files.
Santa Barbara Software,
This application also used OLE DB and the Microsoft Jet database DLL to access a local data base used for transaction logging and other tasks.
Design and implementation of programs to test and benchmark various searching algorithms. This was implemented using the STL templates from the C++ Standard Library.
Design and implementation of Win 32 applications for uploading and manipulating data files captured by a hand held vehicle monitoring device to a PC via a serial port.
· Data is uploaded to a directly connected PC or to a stand alone program via telephone line and modem. The Telephone line monitor application functions without operator interaction to save data to disk files. Up to four phone connections can be handled simultaneously.
· File viewer application permits viewing, graphing, saving to disk, emailing files uploaded from the device, or selected from Windows file explorer or from on WEB page links.
· The file viewer was integrated into WEB pages via Microsoft Explorer Internet Component Download service. Web pages can include special HTML tags which cause Internet Explorer to determine whether the latest version of the application is installed on the users machine. If not, and security settings permit it, the application is automatically downloaded, and configured for the users environment. Henceforth, web pages could contain links to these types of data files on any server on the WEB.
· All national language dependent resources are held in separate DLLS which permits switching between languages while the program is in operation. The program starts with the language specified by the current user in the Windows 95 settings. Languages implemented were English, Japanese and Spanish.
· When directly connected to a hand held vehicle monitor this application can graph vehicle operating parameters in real time. Real time data can be captured to disk files for later use.
· Applications operate under Win 3.1 via Win32s.
· These applications are being deployed by American and Japanese Honda Divisions and Toyota Corp.
Engelhard Corporation (now Telaire), ,
and implementation of a program to control a telemetry "black box"
through a serial port. This program downloaded and stored and accumulated data
such as temperature, relative humidity, CO2 concentration etc, and graphed the
results. Also implemented real time graphing of data. This product is part of a
sensor/telemetry package sold by Engelhard. Used an off the shelf graphing OCX
and Visual Basic.
of a specialized browser for a CDROM database to be sold to companies in the
chemical industry. Used Visual Basic to tie together OCX graphing control and
Jet Database Engine queries. The database itself was prepared/maintained with
Adaptation of General Software BIOS for an embedded PC designed to host DOS Telephony applications. Required implementation of pseudo drivers to emulate non existent hardware in order to make the platform totally PC compatible while requiring the absolute minimum of hardware. Written in Microsoft Macro Assembler.
Programming of a special purpose file editor which builds configuration files to be downloaded into a hand held microprocessor driven automobile diagnostic device. This is a Windows Application written with Borland C++ 4.52. This program consists of about 6000 lines of C++ code which makes heavy use of the Borland OWL library. It was delivered in about 10 weeks.
and implementation of a WWW site for the online registration of magazine
subscriptions. Web surfers through the Hewlett-Packard web site can learn about
and subscribe to the new HP Magazine "networked!" through this site.
This applications gathers and validates the data from the user, and downloads
on demand to the subscription fulfillment company. This applications was
written in PERL 4 and runs on an Linux server.
Development of a database application for the World Wide Web. This takes information exported from a database and generates standard and custom web pages that can be loaded to a Web Server as a group. It has been used to generate thousands of Web pages for organizations such as the Direct Marketing Club of Southern California as well as others.
Development of a DOS TSR that works a telephone speech system to deliver results of a data base inquiry over the telephone. Uses TRT Provide telephone application development system, Wollongong TCP/IP stack, Borland C/C++ and an implementation of a unix style sed editor to translate text into spoken sentences.
Implementation of Postman's Sort on HPUX, and SCO Unix. This program is used on EBSCOS Text Retrieval Server. It is a Unix implementation of the Postman's sort retail product which they have also licensed for inclusion in EBSCO's CDROM package for DOS.
Design and programming of a student scheduling program. This program considers student course requests and priorities as well as teacher skill set. The algorithm developed is a variant of a classic linear programming assignment algorithm. Formulating the problem in this way permitted me to demonstrate that the algorithm might converge in a reasonable time. This was developed and implemented under Windows/NT using MFC to build a testing/demo framework.
Durand Communications Network,
Implementation of Fax Receive for Class I, II, and 2.0 Modems under Windows 3.1 . This was integrated into the Filexserver retail product.
Completion of Filexserver. This is a program written in Visual C/C++ which is distributed as a retail product. It acts as a file transfer similar to Laplink, a BBS and as a Fax receive station under Windows. Can handle upto 12 communications lines.
1994 Miramar Systems, Santa Barbara
Debug of user interface for Windows Appletalk client agent. Built with MS Visual C/C++ and MFC.
Centura Software (Formerly Gupta) Corp.,
Incorporated sorting product into SQLBase SQL Server product. This was done on an OEM/royalty basis.
Robert Ramey Software Development,
A general purpose linear time file sorting program. This was the subject of an article published in the C Users Journal and later sold as a commercial product through Programmer's Shop and Provantage. This was implemented for Windows/3.1, Windows/NT, UNIX and OS/2.
1993 Interactive Visions, Santa Barbara
A screen saver featuring 3-D animation. This was developed under contract as a commercial product.
Jib Ray Inc.,
A conveyor system built from autonomous inter-connected computer controlled motors. Among other things this required construction of a code translator with the Unix M4 tool to work around problems with the motor's native code.
and operated Datatec
· Porting of a C Compiler to the Data General C-350.
· Design and programming of a multi-tasking system used for trading foreign currency. This was written in RATFOR as C was not available for the indicated machine at the time. On the strength of this application the company was sold in 1986.
· An interrupt driven execution time profiler written in C for MSDOS computers.
· Numerous utilities written in C for MSDOS.
· Numerous business applications written in COBOL.
· Enhancement of structural engineering applications written in FORTRAN.
· Async communications to link micros and mainframes written in two different assemblers. Eventually this was replaced by porting an XMODEM protocol program to both of the machines.
" Is Boost Broken?"
given at BoostCon 2010
" The Boost Serialization Library" given at Software Development West 2008
"Making a Boost Library" Presented at OOPSLA,'05 workshop "Library Centric Design", October 2005
"The Postman's Sort" C Users Journal, August '92
"Add a Source Debugger to your C compiler" Computer Language, April '88
Spanish: Fluent reading,
writing and conversation.