Home

Overview

Skills

Recent Projects

Experience
At A Glance

History

Clients

Rates

Contact



Consulting Experience (1996–2009)

Venture Technologies, Inc.
Billerica MA
Sep. 2008 – Present

Product Design and Development
  • Project for Cynosure Inc.: Device driver for PCI controller board
  • Product runs on XP Embedded.
  • Designed and implemented a device driver in C using KMDF 1.7.

Venture Technologies, Inc.
Billerica MA
May 2008 – Present

Product Design and Development
  • Project for Hittite Microwave Corp.: Embedded software for GHz signal generator.
  • Hardware is ARM7-based MCU (LPC2468). Software implemented in C using Keil MDK and RTX RTOS.
  • Designed and implemented USB-CDC interface.
  • Designed and implemented Telnet and socket interfaces over Ethernet.
  • Designed and implemented GPIB interface using TNT4882 chip.

Venture Technologies, Inc.
Billerica MA
Apr. 2008 – Aug. 2008

Product Design and Development
  • Project for Hasbro, Inc.: wireless command and control of target device
  • Designed and implemented an ActiveX control to allow application development in a variety of languages.
  • Control API implemented in C++/ATL using Visual Studio 2005.
  • Used WinUSB interface to communicate with device.
  • Designed and implemented 8051 firmware for the wireless USB dongle which communicated with target device
  • Helped debug GP GCE001 firmware on target device.

PhotoTelesis LP
San Antonio, TX
Aug. 2006 – Apr. 2008

High-performance Digital Imaging and Communications
  • Designed and implemented a Windows AVStream driver for a CardBus-based video capture card
  • Worked primarily in C++ using DriverStudio 3.2; some sample code and test code in C
  • AVStream filter provides a capture pin for an MPEG-2 Program Stream, a preview pin for raw video, and a crossbar filter for selecting one of three video inputs
  • Supports two simultaneous channels of scatter/gather DMA (one for preview video and the other for MPEG-2 data)
  • Assisted with hardware debug and integration with delivery platform and application software
  • The card also contains a serial communications device; created INF files for multifunction install (using the Microsoft MF.SYS driver)

Gamry Instruments, Inc.
Warminster, PA
Jun. 2007 – Oct. 2007

Electrochemical Instrumentation
  • Ported existing 32-bit Windows NT kernel-mode device driver to 64-bits.
  • Also converted the driver from the Compuware DriverStudio Driver::Works framework to the new Microsoft KMDF framework.
  • Ported 32-bit class installer to 64-bits.

Chaos Game Engine
Loud Ant Software, Inc.
Portland, OR
July 2006 – Aug. 2007

Chaos Game Engine (for development of MMORPG games)
  • Work is primarily C++; LUA is used for some scripting
  • Client runs on Windows; uses OpenGL for graphics, OpenAL and DirectX for audio
  • Server runs on Linux; uses PostgresQL as back-end database
  • Project leader; act as resource for programming team, assign tasks, track progress, etc
  • Analyzed performance of client start-up using Vtune; increased speed by 50%
  • Fix build issues for server code on Linux (Fedora Core 5 and Debian 3.1), and get servers up and running for development use
  • Trace various database issues on server, using PostgresQL and related tools
  • Create and support customer releases for the Chaos Game Engine

Cranite Systems, Inc.
Los Gatos, CA
May 2007 – Jun. 2007

Secure Mobile Networking Solutions
  • Work was in C and C++ on the Windows Mobile 5 platform, using Visual Studio 2005
  • Debug a prototype port of the SafeConnect for Windows to the WM5 platform
  • Tracked down and fixed a host of porting issues (e.g. unaligned access, differences in driver implementation, and differences in NDIS architecure).
  • Got prototype working in time for demos to large potential customer

DataRemote Inc.
Ventura, CA
Oct. 2006 – Feb. 2007

Cellular Data Modems
  • Designed and implemented NT-style service, plus GUI configuration program
  • Service receives reports from wireless modems, and updates DNS record if IP address of modem changes.
  • Written in C++, using STL (plus ATL/WTL in the GUI)
  • Service uses Microsoft DnsModifyRecordsInSet API function for DNS Update and Remove operations

Tactical Software, LLC.
Nashua, NH
Aug. 2002 – Aug. 2006

COM Port Redirection Software
  • Ported driver to x64 (AMD64)
  • Researched Linux PTY implementation for Linux port
  • ODBC-based event logging system
  • COM-based configuration API
  • MMC snap-ins for controlling the TacServe serial port server and License server
  • Windows-based security in TacServe serial port server
  • License enforcement using UDP and OpenSSL Crypto library
  • Graceful (instead of abortive) TCP disconnect
  • Kernel-mode OpenSSL 0.9.7b
  • Asynchronous, multi-threaded, Winsock-2 based Windows NT Service
  • Fixed multi-threaded issues in License Manager service
  • Fixed SMP problems in client driver drivers
  • Work-arounds for differences in TDI on various versions of Windows (XP, NT, 98, ME)

Scotty Techology, Inc.
Atlanta, GA
May 2006

Video Phone
  • Project review for new version of video phone product
  • Review status of new hardware, and the software to go with it

Cranite Systems, Inc.
Los Gatos, CA
Mar. 2006 – Apr. 2006

Secure Mobile Networking Solutions
  • Created export driver (a.k.a. kernel-mode DLL) containing common code

Corrent Corp.
Tempe, AZ
Feb. 2005 – Sep. 2005

Network Security Appliances
  • Designed and implemented a Windows NDIS Miniport Driver for a new dual-port Gigabit Ethernet Adapter
  • The adapter has on-board processing to support IPSec Offload and TCP/IP Checksum Offload
  • The driver was created by using an existing Linux driver as a reference; not strictly a port, but it did require an understanding of how Linux drivers work

Imera Corp.
Santa Clara, CA
Sep. 2004

Microsoft NetMeeting Pluggable Transport
  • Designed an implemented a pluggable transport for Microsoft NetMeeting which allowed access to the data stream for encryption and decryption
  • The project was completed well ahead of schedule and under budget

Scotty/Zydacron Inc.
Manchester, NH
Jun. 2004 – Jul. 2004

Video Conferencing Products for Windows 95/98/NT/2000
  • Review development plan and schedule for new video conferencing codec board
  • Review driver and system code to assess further schedule risks
  • Found and fixed a few driver bugs.

Sentillion, Inc.
Andover, MA
Feb. 2004 – May 2004
Oct. 2003
May 2003 – Jun. 2003
Oct. 2002 – Mar. 2003

Vergence Suite (strong authentication, single sign-on, context management)
  • Designed and implemented “Bridge” for legacy OASGold application on very short schedule, to support a customer demo.
  • Designed and implemented “Bridge” for legacy ClinicalManager application (published from a Citrix server)
  • Adapter to allow LaunchPad to start, monitor, and control EPF in conjuntion with the EPF Bridge.
  • Pilot “Bridge” to allow legacy RIS Application Manager 6.2.1.0 and Physician Desktop 1.0 to participate in CCOW context (completed in 3 weeks)
  • “Bridge” to allow legacy McKesson EPF to participate in CCOW context
  • C++ System Tray application using Vergence COM objects to implement CCOW
  • System-wide CBT hook, window subclassing to monitor events in EPF
  • FindWindow, FindWindowEx, SendMessage, PostMessage, AttachThreadInput, SendInput used to control EPF from Bridge

Avantware, LLC
Berlin, MA
Nov. 2003 – Mar. 2004

SccIP Network Service Provider (Internet-based serial comm.)
  • AvantWare is a consulting company under contract with Travellers Express/Moneygram. I was hired to address various problems in the client-side SccIP device driver, primarily a concurrency issue which resulted in lost data under heavy receive loads.

Lexign, Inc.
Nashua, NH
Jun. 2003 – Oct. 2003
Sep. 2001 – Jun. 2002
Acquired by eiStream, Inc. in October, 2003; eiStream Inc. changed its name to Global 360, Inc. in January, 2005

Formerly icomXpress; formerly Keyfile, Inc.
  • Custom control using .NET (C++ and ATL 7.0) for KDS administation API<
  • Port 16-bit image display, annotation, print to Win32
  • Implement Active Document Server (ADS) for display and annotation
  • Use IPrint interface to implement printing of compound documents
  • Fix TIFF and CCITT Group 3 and Group 4 FAX decompression bugs

Dialout.Net, Inc.
Nashua, NH
Oct. 2001 – Oct. 2002

SccIP Network Service Provider (Internet-based serial comm.)
  • Port OpenSSL 0.9.6b to Windows Kernel Mode
  • Windows kernel-mode TDI client drivers (Compuware/Numega DriverNetworks)
  • Modify routing table; listen for incoming connections; retrieve DNS servers
  • Proxy server support (SOCKSv4, SOCKSv5, Web HTTPS Proxy)

Sophisticated Circuits, Inc.
Woodinville, WA
Aug. 2001 – Dec. 2001

Hardware and software for reliability, remote access, automation.
  • Windows WDM USB device driver for Kick-Off! product
  • Service to monitor hardware and OS
  • Control Panel Applet (CPL) to configure hardware and service
  • RPC interface for third-party integration

GeoTrust, Inc.
Wellesley, MA
May 2001 – July 2001

Internet identity, authentication, and security products

  • Microsoft Internet Explorer add-in COM objects
  • Browser Helper Object (BHO) to monitor navigation
  • ToolBand object with toolbar control to authenticate and display result
  • Explorer Bar InfoBand object hosting a web browser control to display additional details on request

Zydacron Inc.
Manchester, NH
Aug. 1996 – Apr. 2001

Video Conferencing Products for Windows 95/98/NT/2000

  • VxD, WDM, and NT Kernel Mode Device Drivers
  • TAPI 3.0 TSP and MSP
  • H.221 engine, supporting H.242, H.230, and HDLC.
  • DirectDraw, DirectShow, Video DMA, Win98 Kernel Mode Transport
  • NetMeeting 3 UI and IPluggableTransport; NetMeeting 2 T.120 Transport
  • RadVision H.323, RTP
  • H.261, H.263 parsing (for Microsoft’s Extended Bitstream Info)
  • Q.922, T.123, FECC
  • DTMF tone generation; NDIS WAN Miniport driver

Sonoma Systems Inc.
Marlborough, MA
Oct. 1999 – Apr 2001
Acquired by Nortel Networks Corp. in October, 2000

Sonoma Integrator
  • pSOS, Cygwin, Procomm
  • Flash File System
Sonoma Xchange PBX
  • Windows NT 4.0 Kernel Mode Device Driver for PCI Riser
  • SNMP Extension Agent
  • Remote Software Update Tool
  • System Monitor Service

Okena Inc.
Waltham, MA
Feb. 2000 – Jan 2001
Acquired by Cisco Systems, Inc. in April, 2003

Security products for Linux and Windows 98/NT/2000

  • VxD for Win9x, WDM Drivers for Win98/2000
  • Kernel Mode Device Drivers for Windows NT/2000

Factpoint Inc.
Burlington, MA
May. 1999 – Oct. 1999
Formerly NovaSoft, Inc.

Factpoint TrustValidator product
  • Browser Helper Object (BHO) for Internet Explorer
  • DDE client/server to monitor Netscape Browser
  • System Tray Icon object

Xevo Inc.
Marlborough, MA
Feb. 1998 – May 1998

Technology for Application Service Providers

  • Contributed technical and managerial expertise as company was forming
  • Produced prototypes and demos for prospective customers, investors

Network Engines
Randolph, MA
Sep. 1997 – Oct. 1997

MP-700 fault tolerant systems

  • Created a Software Development Plan.
  • Evaluated SMX Modular RTOS; various SNMP Management Stations
  • NT 4.0 Service Troubleshooting

Telco Systems
Norwood, MA
Sep. 1996 – May 1997

Producer of network equipment

  • TELTRAC device simulator
  • Runtime error logging and exception handler subsystem
  • SNMP Agent DLL and Installer for Windows 95, NT 4.0



Work Experience (1980–1996)

Watermark Software Inc.
Slough, England
and Burlington, MA
1992–1996
Acquired by FileNET Corp. in August 1995

Founder; Director of R&D
  • Windows 3.1, 95, NT 3.51, 4.0

  • Manager and lead developer for Internet Product Development (ISAPI, Netscape Plugin)
  • Manager of Developer Services (PVCS, Atria ClearCase, builds, tools)
  • Project Manager for port of Watermark client to the Macintosh
  • Manager and lead developer for Watermark Image Server (NT SCSI Class driver for optical jukeboxes, folders, admin tools, backup/restore)
  • Manager and lead developer for Watermark Client (imaging, TIFF, annotation, OCR, display, printing, faxing, graphics import/export)

Keyfile Corporation
Nashua, NH
1989–1992
Keyfile became Internet Commerce Express (icomXpress) in April 2000; it was acquired in October 2001 and became Lexign, Inc. Lexign was acquired by eiStream, Inc. in October, 2003; eiStream then changed its name to Global 360, Inc. in January, 2005

Project Leader
  • Windows 3.0, 3.1 (16-bit)
  • TIFF 5.0, CCITT Group III and Group IV
  • Imaging, anti-aliasing, annotation, scan, print, fax
  • Source control (PVCS, T-Lib), software builds, install

Adra Systems, Inc.
Lowell, MA
1988–1989

Senior Software Engineer
  • 3D rasterization (AT&T DSP32C)
  • Tektronix 4109 display emulation (68K workstation)
  • MS-DOS coprocessor
  • Ports to VA GPX, Sun 3/60, and DEC workstations.
  • SCSI driver for PC parallel port.
  • Mouse and tablet drivers for PC

Foxboro/Octek Inc.
Burlington, MA
1985–1988

Project Manager
  • Next generation Machine Vision System
  • OS9/68K, VME; MS-DOS, Magic/L
  • Hardware design and debug (Analog I/O, Frame Buffer, DSP boards)
  • Image processing microcode (TMS32020)
  • C Libraries for Image Processing
  • Demo applications for sales support

Infinet Inc.
Andover, MA
1983–1985

Senior Software Engineer
  • Network Management System
  • UNIX v7, BSD 4.2, Ultrix
  • Source control and system maintenance.

Nixdorf Computer Corp.
Burlington, MA
1980–1983
Acquired by Siemens in 1990; Spun off as Wincor-Nixdorf in 1999

Project Leader
  • Multi-user word processing system
  • Data General NOVA, RDOS
  • Z80 Intelligent Terminals