Home Knowledge Experience Contact Contact

Experience

Professional programming since 1982, independent consultant for over 20 years with a wide range of experience providing the skills to specialize in providing rapid application design and prototyping and/or proof of concept development evolving into robust product release applications.

Below are links to short descriptions of some of the projects I have worked on;

Sarnoff Corporation

Software Systems Engineer (2003 - 2009)

Integrated software and hardware components in a video based, object detection and recognition system for a D.A.R.P.A. sponsored project. Transformed single-threaded research level algorithm software into robust, optimized, multi-threaded and multi-process real-time production software. Developed system interfaces to communicate with a range of hardware components. Developed software interfaces providing the means to seamlessly integrate video processing algorithms written by third party venders. Designed and developed large scale database, stored procedures and triggers in a SQL Server environment, provided complete relational SDK helper functions in C#. Created multiple prototype graphical user interfaces utilizing Java, C#, Web Services and Active Server Pages.

Commercial Product Development (1997 - 1999)

Using Sarnoff's edge detection IP algorithms worked with a team to produce consumer applications. Worked on the design and implementation of graphical user interfaces (GUI) and digital video capture/input conversion for a line of Windows products used to create seamless 360 panoramic images from video or still image content.

Developed a Netscape Plugin displaying MPEG4 images under Windows and XWindows/Motif. The developed products were used by Sarnoff to create two spin-off companies.

Teratron Incorporated

Architect and project lead (2002)

Corba and ISA applications and component development.
Designed and developed CORBA components derived and extended from the Time-Warner Cable ISA components to provide Video On Demand services.

Developed server applications and ISA components for Stream Service and Content Store. Required protocols for communication with other system components include RTSP and LSCP using UDP and TCP/IP sockets. Responsibilities included working with clients to determine system design and requirements, development of server and client applications, system integration and system certification performed t the N2 BroadBand laboratories. System was written in Java using Borland JBuilder, support tools were written in C++ MFC using Visual C++.

Liberate Technologies

Software Application Development Manager (1999 - 2002)

Managed a team of software engineers designing, developing, integrating and deploying set top box interactive TV applications.

Responsible for all aspects of application product creation; from design through deployment. Further responsibilities included working with clients, mentoring junior developers, interviewing potential hires, creation of presentations and client training.

Projects included Video On Demand applications, JavaScript DOM class development, internet browser development, email application, use of ATVEF triggers, scalable embedded video windows and system libraries for video session and stream control providing UDP, TCP/IP, DSM-CC/SSP, LSC and RTSP support. Development was done using C (MS Visual C++), Java, JavaScript and VBScript within Active Server Pages (ASP). Target platforms were Scientific Atlanta and Motorola set top boxes. Integrated software and hardware components in a video based, object detection and recognition system for a D.A.R.P.A. sponsored project.

Transformed single-threaded research level algorithm software into robust, optimized, multi-threaded and multi-process real-time production software. Developed system interfaces to communicate with a range of hardware components. Developed software interfaces providing the means to seamlessly integrate video processing algorithms written by third party venders. Designed and developed large scale database, stored procedures and triggers in a SQL Server environment, provided complete relational SDK helper functions in C#. Created multiple prototype graphical user interfaces utilizing Java, C#, Web Services and Active Server Pages.

General Instrument

Software Application Developer (1996 - 1997)

Internet browser for interactive television

Developed an embedded system application for use as a graphical user interface menu system and Internet browser running within a set top box in a fiber optic broadcast television network. The application allows the user to setup the system box within the network as well as select broadcast video and television channels. Application runs under OS/9 operating system. The application became a prototype for VOD for broadband television.

Intel and IBM Corporation

Project lead and developer (1994)

Ported Intel Indeo digital video CODECs (compressor/decompressor) written by Intel for Windows 3.1 to work under OS/2 (WARP).

Worked closely with IBM and Intel teams, merging their respective technologies to create the end product. The CODECs are included as part of the IBM OS/2 2.1 - 3.0 WARP) and VideoIn products.

Intel Corporation

Digital Video CODEC application developer (1992 - 1994)

Achieved design and implementation of a Compression Manager application (ICM and ACM layer) allowing multiple input sources to generate a single AVI file containing multiple media streams. Designed to run under Windows, Windows 95 and Windows NT. This application is included as demo and example code for Intel Corporation?s Indeo Interactive product.

OLE Client/Server architect/developer

Designed and implemented a Windows OLE compliant server/client application capable of playing digital video/audio content. Includes a script language for automated play with timers, repeat loops, frame range and manual control switch. The resulting object was used for global sales presentations by Intel?s executive management.

Unisys Corporation

Communication driver developer (1991)

Responsible for the redesign and programming of the first two layers of SNA communications software used in the Unisys personal computer products. Reduced the original binary size from 60k bytes down to 15k bytes. Line speed was increased from 9600 baud to 38,000 baud before requiring use of DMA.