
office (408)
274-8669
Contract programming for any software project.
TECHNOLOGIES
Visual C++, C, MFC, Borland C++, VB Script, Java/JavaScript, TriMedia C, HTTP, FTP, IIS ISAPI, ASP, HTML, OpenDoc, 680x0 assembly. DirectX, DirectShow/NetShow, ActiveMovie, QuickTime (Mac & Windows versions), MPEG, JPEG, IADK, MPTK, Trimedia, tm1300, pnx1500, Geode,. Did SQL using ASP, JDBC, ODBC, and MFC to access Microsoft SQL 6.5 & 7.0 databases. WinCE 4.1, 4.2 and 5.0. POOM and OOM databases. WinCE Platform Builder. Design patterns.
WORK HISTORY
2001-2007 Contract Engineer
Work done for:
Brightscale (HDTV), Metta Technology (DVD playback), Philips Semiconductors (SSG Trimedia group, Network video playback), DualCor Technologies (Handheld PDA/Phone), Advanced Micro Devices (AMD) (Video playback), National Semiconductor(Video playback), Arcadyan (Audio playback).
(startup) Brightscale
Designed and wrote multiplatform/multithreaded media framework for use in an HD TV SOC using 4 MIPS processors. First platform up was x86 using open source Mpeg2 and AC3 codecs with my custom video and audio rendering written to simulate hardware structure.
Added features and testing while waiting for the chip to become functional. Wrote mini-graphics library as well as using open source Truetype font renderer for doing CC (Closed Caption) and Setup screens on an OSD. Added H.264 and VC1 video support.
Built as monolith application, also as 5 separate application using shared memory, and also under Cygwin to get ready to move to the chip.
Portrait Displays
Took over main shipping applications. Came in after engineers had left, so learned large code base really fast. Started doing ‘fire fighting’ releases and fixes immediately.
Major work cleaning up old code. Working towards as little required upkeep as possible.
Work done on Win32 app, MFC app with IE as GUI, COM objects, DLLs, etc.
(startup)
Metta Technology
Designed and wrote multiplatform/multithreaded
media framework for use in DVD playback for SD, HD, and BD (Blu-ray)
formats. Plays Mpeg, H264, AC3, etc.
Designed and wrote combination PS (Program
Stream) and TS (Transport Stream) demux.
Wrote a analysis and display application for
DVD xxx.IFO files. Decodes and displays all data structures and their
linkages to other files and data.
Philips Semiconductors (SSG)
Designed
and developed WinXP Server and Client applications for video streaming,
using TCP/IP and UDP (WinSock2).
Wrote Dshow source
filter that talks TCP/IP and UDP to external set-top box for streaming
video. Runs in memFile and netFile modes, for playing from a local file and
also playing from a network connection.
Designed
and developed embedded modules, input and output, used for streaming in and
out video files from an embedded PSOS device. These support using TCP/IP and
UDP (Blunk) and talk to the PC programs above over ethernet.
(startup), DualCor Technologies
Wrote Phone application to run under WinCE, using Wavecom phone module. Dials, answers, displays contacts, calls, skinable, etc. Launches other WinCE applications.
Wrote WinCE to WinXP communications and custom control code for Phone/PDA.
Managed Platform Builder for hardware image.
Designed and wrote WinCE Contacts application, WinCE Tasks application, and WinCE Calendar application, all patterned after PocketPC ones.
Designed and wrote WinCE Notes application, for quick drawn note taking.
Designed and wrote sync software between WinCE POOM and WinXP OOM, Outlook Object Model. For contacts, tasks, appointments, and email.
Wrote ‘soft keyboard’ apps for both WinCE and WinXP.
Wrote custom ‘app bar’ for WinXP.
Advanced Micro Devices (AMD), National Semiconductor & Philips Semiconductors (SSG)
For Advanced Micro Devices (AMD): (NOTE: National group, Geode, was bought by AMD. S, working with the same people). (Some work was joint between AMD and Philips)
Ported Trimedia application and codecs from IADK2.0 to MPTK 1.0 (pnx1500)
Ported Microsoft WM9 player and codecs to standalone embedded Trimedia platform using multiple network stacks.
Created host player and libraries for Trimedia hosted application configuration and playback.
Creation, tuning and rewrite of Trimedia DSP applications that control codecs and renderers. Adding support for dynamic reconnection.
Ported Trimedia application and codecs from SDE2.1(pnx1300) to IADK2.0 (pnx1300)
Helped port WDM 1500 driver to WinCE on Geode (low power x86 from AMD).
For National Semiconductor: (NOTE: Some work is joint between National and Philips)
Ported Microsoft WM8 player and codecs to standalone embedded Trimedia platform using multiple network stacks.
Enhancements on PCI drivers and support libraries for a custom DSP board, using the TriMedia with TmMan libraries. Some driver work on Linux, Win2000(WDM), and WinCE 3.0/4.0/4.1(DLL).
Developed Host PC (x86) to TriMedia (PCI card) communications for multimedia apps. Designed and wrote Host/Trimedia communications and control for MP3, Mpeg1/2, Mpeg4, WMT, RealPlayer across PCI using messages and DMA.
Developed remote media playback using RDP (Remote Desktop Protocol) and Virtual data channels. Designed and works for Win32 and WinCE with TriMedia DSP.
Changed DShow filter to support RealNetworks. Added stream parser for ids.
For Philips Semiconductors (SSG):
Created standalone version of WMA codec under IADK.
Ported RealNetworks player and codecs to standalone embedded Internet Radio platform. Developed TriMedia TSSA components for Real Networks.
Adapted RealNetworks’ Helix code to Trimedia.
Wrote WinCE/TriMedia test applications (C & C++) for TmMan driver verification.
Added multimedia capability for 3rd party WebPads using a Geode (x86) and Trimedia (DSP) running WinCE 3.0 & 4.0 and Linux.
Wrote web page RealPlayer ActiveX control for WinCE 4.0 and Win32. Reverse engineered existing one to match functionality
Arcadyan
Added DIVX and WMA support to application and playback engine.
Optimized playback for Mpeg streams, application level tuning.
Designed and implemented method for playing PAL clips on NTSC and NTSC on PAL.
Reconfigured connection software to use faster video scaler component.
Philips Semiconductor (SSG group)
Took over PCI driver and support libraries for a custom DSP board, using the TriMedia. Drivers worked on are WinNT, Win2000(WDM), and WinCE 3.0(DLL).
Wrote WinCE/TriMedia applications for playing MP3 and Mpeg2.
Developed Host PC (x86) to TriMedia (PCI card) communications for multimedia apps.
Developed TriMedia TSSA components for read/write from host PC.
Principle Engineer at a number of startups.
Senior Software Engineer (startup), InnovisionTV (aka Innovision Labs)
Have done evaluation of numerous Web platforms and products to use in an Internet TV.
Designed numerous parts of the software, at both the application and server levels. Software is designed for an Internet enabled TV.
Senior Software Engineer (startup), LinuxTV.com (parent company was ConnerTech)
Designed and wrote PVR (Personal Video Recorder) application for a TV settop box. Original program designed and coded on the PC and then moved to VxWorks. Application handles English, Chinese, and Japanese text displays (single & double byte fonts).
Wrote NT Server 4.0 applications to do data mining of EPG data. Numerous programs download, import, export, and data mine the EPG data.
Setup IIS and use ODBC for query of custom data in SQL Server 7.0 database.
Senior Software Engineer, TiVo Inc.
Designed and wrote an authoring program using Borland Builder framework. This app does Images, Sounds, Video clips, sends eMail, talks to servers using HTTP, and uses FTP to send and receive files. App uses SQL across HTTP to query an EPG database (Electronic Program Guide, TV listings). App is used in daily production of TiVo Magazine.
Java – Wrote programs to query database using HTTP and JDBC.
Wrote NT Server 4.0 applications to do data mining of EPG data. Numerous programs search, categorize, and process Movies for automatic insertion into daily data. Invented a lot of methods of mining data as well as preprocessing data for quick searches.
Wrote QuickTime movie processing app that captures video using a D1 capture card, it modifies the captured video in the CC area, then plays the video back out to a VTR.
Setup IIS and use ASP pages using ODBC for query of custom data in database.
Senior Software Engineer (startup), VSIS Inc. (owned by Mitsubishi)
Java – Wrote an embedded Java application for a handheld consumer device with color LCD screen. Designed and wrote EPG (Electronic Program Guide for TV) area of the application.
Java – Wrote user customization program that processed EPG data for individual users. This application runs on Java under Windows NT.
Java – Wrote a data parser and importer for EPG data. Uses FTP to get file, uses JDBC to import processed data into SQL Server database.
Java – Wrote exporter and export picker programs for EPG for any area of the US.
MFC/C++ - Wrote NT Server 4.0 shell applications to parse EPG text files and put parsed data via ODBC into the Microsoft SQL 6.5 database. Wrote program to extract data from SQL database for different time periods and areas of the USA.
Web – Setup internal web IIS server and ASP pages for custom data displays. Created realtime access from ASP pages to ODBC database for EPG displays.
Senior Software Engineer (startup), Media Guaranty
Java Wrote Java multimedia related apps. Wrote Java app using JNI for processing image data, wrote multi-threaded ‘job’ engine to handle multiple media processing threads..
Wrote multi-threaded processing apps using QuickTime, Inso, and DirectShow.
Contract Engineer (startup), TV Interactive.
MFC – Major enhancements and cleanup on an MFC SDI application that allowed graphical editing of hot-spot image areas for a hypertouch book. Added FTP support.
MFC - Wrote an ‘engine’ MFC application that displayed Internet web pages, played MPEG movies, displayed JPEG and GIF images. Program also talks using HTTP across the Internet. Used IE Explorer ActiveX and ActiveMovie OCX controls.
C++ - Wrote NT Server 4.0 shell applications to automatically send email (POP3) and to parse a text file and put parsed data into the Microsoft SQL 6.5 database.
ISAPI – Wrote a IIS 4.0 ISAPI extension, called using HTTP and talks to a SQL database.
Web - Designed about 20 HTML and 10 ASP pages for forms entry, database connection, and auto-generation of HTML from a server side ASP file.
Senior Programmer (startup), Magnifi, Inc.
Designed and implemented a set of WindowsNT SDK C++ multi-tasking programs used for multimedia file analysis, auto-generation of preview images, sound clips, and extracting all text. Using GIF, MPEG, JPEG, QuickTime, DirectShow, NetShow, and Inso.
Senior Programmer (startup), Power Computing, Inc.
Prototyped SDK test control software for Windows95 before work moved to Texas.
Developed manufacturing control software and diagnostics for making Macintosh systems. Wrote numerous test suites to test new computers through the manufacturing process as well as load them with semi-custom software sets.
Network data collection using AppleTalk and Open Transport, test station control software. Software to gather and correlate testing software from multiple test sites in the factory.
Lead Programmer, Sony Electronics
Designed and developed a graphical program launcher and MPEG movie player application that is used to showcase Sony’s first Windows95 PC computer..
Wrote a Windows95 screensaver for sequencing through images.
Java - Did Java prototyping on new Internet TV product, channel selection and TV features.
Lead/Manager - 2 contractors for the Internet product while still programming full-time. Worked with Sony Marketing, Sony QA, Intel Project management, ATI graphic engineers, and CompCore MPEG engineers to ship the system.
Lead Programmer, Claris Corp. (Apple Computer)
: Broke apart ClarisWorks, an integrated program suite, into separate OpenDoc parts.
: Lead/Manager - A group of 3 full-time people working on both Mac and PC versions.
Senior Games Engineer (startup), Rocket Science Games
Developed a Game Compiler used to layout and optimize streaming video and audio for full motion branching video CDROM based games. Developed a Game Validator that ‘played’ the game to verify data paths were valid.
Wrote low level caching drivers to optimize reading from a 1X CD. Games were for the PC, Sega, and 3DO.
Created a Macintosh based remote debugger for the embedded Sega game system.
Contract Engineer, QuickTime, Apple Computer
Developed MovieShop for optimizing layout of Video and Audio on CDROMs for QuickTime. Developed MovieAnalyzer to display movie data and look for problems.
Wrote low level caching data handler for QuickTime optimized for reading from CD.
Helped design and implement other areas of QuickTime with the core team.
1987-94 Owner of my own part-time software business, IT Makers
Designed, developed, and sold my own programs for the Macintosh.
Prototyper, also called Marksman, is a programmer’s tool for designing user interfaces and generating source code for C++, C, and Pascal.
Designed, developed, and sold a Multimedia CDROM title for the Macintosh, titled “The Illustrated Civil War”. This has over 700 grayscale images as well as sound.
Contract Engineer, MediaVision
Designed and developed all software for the 1st Mac sound board, ProAudio Spectrum.
Boot code in ROM for this NuBus plugin card. Simple status and signatures.
Designed and wrote the sound drivers, including MIDI support,for this board. That included both record and playback for multiple channels, frequencys, and rates.
Designed and wrote a simple JoyStick driver
Designed and wrote a SCSI driver for supporting devices attached to this card.
Created a sound playing and editing application for use with this board.
Contract Engineer (startup), Vividus
Wrote the 32bit Paint portion of the Cinemation animation program.
Lead Programmer, C-Cube Microsystems
Specified the APIs for the JPEG Image Compression Workshop and all programming interfaces for C-Cube’s compression board.
Wrote a simple driver to control the JPEG compression chip on this card.
Lead/Manager - 4 programmers doing Windows and Macintosh SDK software
Engineer at Macintosh related companies.
Senior Engineer (startup), Radius, Inc.
Designed software to play video on the Macintosh, called Radius TV.
Designed and wrote the firmware and drivers for the Video capture card.
Developed a special effects graphics program that operated on captured video images.
PrecisionColor features, color temp and gamma correction, and did all the GUI.
Write an ADB driver for controlling an external screen measurement device.
Acorn - Coded the first QuickDraw graphics acceleration board for the Macintosh. This was an embedded system on a NuBus card for doing graphics.
Software Engineer, Apple Computer, Inc.
Converted QuickDraw, Apple’s graphic library, from B/W into Color.
Designed a graphics kernel and mini-OS for an embedded system, a bed-of-nails board tester for 68000 Motherboards.
Drivers/diagnostics for floppy disk drives, SCSI drives, CDROMs, and tape backups.
Diagnostics for fax modems using telephone noise test systems
EDUCATION
B.S.E.E., Electrical Engineering, Calif. State University at Fresno