In the fall of 1990 I started work at Mentor Graphics in the Unix porting group. I helped create and roll out the software development environment which Mentor Graphics used to develop it's entire product line on Unix and Apollo systems.
In April of 1994 I began working at Intel as a software engineer in the Supercomputing Systems Division. At the time, Intel produced the worlds fastest supercomputer. The line of supercomputers used OSF1 as their operating system. I undertook the job of completely revamping the existing build process and system to make it more reliable, reproducible and faster.
After completing my work in SSD I moved into the Intel Architecture Labs. The Labs objective is to create new demand for higher performance processors. Towards this end I worked on may different projects over the years. From single person, very short time deliverable prototype to projects that delivered actual product code as a part of small focused software development teams and which lasted for over a year.
|
Project History
|
| Jul 2008 - Dec 2008 |
Windows Application and Middleware
The client's product is essentially a custom PC with a custom data acquisition system. I was
brought to work with the development team. I was responsible for one major feature. The feature
post processes the acquired data in near-real-time. I developed a framework which will allow
the required feature and future, similar features to be easily incorporated into the product.
The framework is implemented as a single shared dll which exposes both managed and unmanaged
interfaces. The dll is implemented in C++. A test framework was also developed which allowed
the injection of real or simulated data into the running system to verify the algorithms are
working correctly and to help with debugging and development. A visualization application was
developed in C#, using the Windows Presentation Framework to also help with development.
|
| Jun 2007 - Mar 2008 |
Windows CE and Linux Development
General software engineering. Part of a team developing
a portable, SD/HD, video editing recorder.
Responsibilities included, but were not limited to:
-
Windows CE serial driver debugging and incorporation
into the system.
-
Coordination of software source updates and integration
with a remote development team.
-
Development of a build environment which enabled all
Windows CE and PPC, Linux code to be built from a
single Cygwin shell command.
|
| Feb 2007 - Apr 2007 |
Embedded Linux distribution
Using the TriplePoint Linux Distribution I worked with
Dean Gehnert
to develop a stand alone MPEG-2 HD/SD-SDI decoding system.
The system is a single board system with a PPC440 processor
and a pair of FPGAs that perform the video decoding.
|
| Jan 2007 - May 2007 |
Windows Application Development
General software engineering. Part of a team producing
a maintenance release for an existing Digital Sampling Oscilloscope
In addition to bug fixes, some new features were implemented.
Added functionality and bug fixes to existing
MFC based, Windows application, product code. Updated
install packages (InstallShield), and helped with QA.
|
| Mar 2006 - Dec 2006 |
Embedded SDK / Windows Application Development
General software engineering.
Responsibilities included, but were not limited to:
-
Working in conjunction with Dean Gehnert
architected and implemented an embedded SDK to support application
development for a fingerprint sensor. The SDK originally was targeted
for Windows CE but was also worked on Windows XP. This SDK became the
backbone of all of the company's future software development.
-
Adding new features and trouble shooting existing software
applications and libraries.
-
Developing a software build process in place for existing
products. This included daily builds.
|
| Feb 2006 - May 2006 |
GPS Windows CE Driver
Developed a Windows CE 5.0 driver for the RFMD RF8110 GPS receiver. Working from a Linux
driver, a Windows CE 5.0 was developed. The driver was implemented on a Logic PD PXA270
based system. The RF8110 utilizes a SPI interface with the host processor.
|
| Oct 2005 - Dec 2005 |
Embedded Linux distribution
Brought up the TPI Linux distribution (TPInux) on an Intel, PXA 427
(Sunrise Lake) development system.
As part of bringing up the distribution I added the
Linux 2.6 kernel and GCC 4.1.x cross compiler tool chain to it. I
also debugged an LSI SATA Raid controller driver.
|
| Sep 2005 - Nov 2005 |
Embedded Linux distribution
The Linux distribution that TriplePoint has developed was moved to two
new XScale development platforms. These development systems were used
to benchmark SATA controller performance for a future product based on
similar hardware.
|
| Apr 2005 - Sep 2005 |
General SW Engineering Support
Working in conjunction with Brian Colony
I helped architect and implement a distributed test system for use by Veriwave.
The test system can dynamically schedule different types of test jobs as well as
manage the test resources from common resource pools across the QA test network.
Provided documentation and training to other members of the QA team.
|
| Jan 2005 - Apr 2005 |
Macintosh (MacOSX) SATA Raid Controller Driver
Ported a Linux SATA Raid controller to Mac OS X 10.3.5. Drivers for this
controller existed for both Linux 2.4/2.6 as well as Windows XP. Utilizing as much
of the existing code as possible, I developed a Mac OS X driver derived from
the IOSCSIParallelInterfaceController class which is part of the Mac OSX driver
framework. The driver supported hotplug devices as well as operating system
power management functions.
|
| May 2003 - Nov 2004 |
Windows (XP/Win2K/Win9x) Wireless LAN Adapter Configuration Utility and Infrastructure
Developed a Wireless LAN adapter configuration utility similar
to the Windows XP zero config utility. The differences are the
support for a different supplicant which supports more EAP types
than the standard Windows XP supplicant as well as improved
diagnostics to help users understand the cause of problems they
may be experiencing. I also worked on the infrastructure components
that supported the configuration utility. The infrastructure
manages profile storage as well as auto-association.
|
| Dec 2002 - May 2003 |
Macintosh (MacOSX) 802.11 Wireless LAN Adapter, USB Driver
Developed a USB driver for a Prism based, wireless LAN adapter. The driver supported hotplug
adapter insert and removal as well as operating system power management functions.
|
| Apr 2003 |
Linux system to supply Kerberos services
The previously developed linux distribution was ported to an XScale based hardware
platform. Modifications to the previous version of the distribution included new
kernel patches and changes to support a different hardware platform.
|
| Aug 2002 - Dec 2002 |
802.11 Wireless LAN Adapter Driver
Developed a Novell, 16 bit ODI driver for a Cisco Aironet wireless adapter. This
is a DOS driver which runs on a embedded handheld device.
|
| Jun 2002 |
Linux system to supply Kerberos services
Created a custom linux distribution for a Strong-ARM based single-board-computer. The
distribution provides Kerberos, NTP, SNMP, TFTP, FTP services. The goal was to develop
a turnkey system that could easily be managed through a web interface for deployment
into customer environments with little or no IT staff and little or no Kerberos administration
experience.
|
|
Below is a survey of the projects I worked on prior to joining TriplePoint.
|
| Apr 1995 - Apr 2002 |
Senior Software Engineer, Intel Labs, Intel Corp.
InfoWise I & II
A Novell GroupWise email addin that utilized relevance technology to add new search
capabilities to the GroupWise client. This was a 2+ year project with 7 Intel software
developers.
I was responsible for design and implementation of the backend meta-data storage
service which stored meta-data for each email item and provided the relevance search
technology. This service was written entirely in C++ as an out-of-process COM server.
It used ODBC to connect to Microsoft's SQL server.
Another role I undertook on this project was as a technical contact between Intel and
a 3rd party that would actually sell the product to end users. The engineering for this
company was located in London, England.
|
|
Flathead
Working alone and in my spare time I extracted all of the meta-data storage and relevance
technology from the InfoWise product code and rewrote it to improve the efficiency and the
API. This was later used in two separate deals with outside companies.
|
|
RealPresenter
A multi-media application that was developed by Intel Labs for Real Networks Corp. RealPresenter
is an easy way to add audio and video to a PowerPoint or Html slide presentation. It also has the
capability to broadcast that presentation over an intranet. As part of this team I was responsible
for design and development of several major components. A majority of the development was done in
C++ and made extensive use of COM components.
|
| 1991 - 1995 |
Software Engineer, Porting Group, Mentor Graphics Corp.
At the time of my joining Mentor Graphics, the company was porting it's software from
Apollo workstations to Unix workstations from Sun and HP. I joined the Porting Group
and worked on the software development environment. The software development environment
was comprised of a collection of tools that helped developers move source code between
the Apollo and Unix worlds. Later, primary development moved from the Apollo workstations
and onto Unix workstations. The development environment was expanded to fully support
configuration management, revision control and automatic handling of the software projects
"food chain". I played a significant role in the development of the software development
environment.
|
| 1987 - 1991 |
Software Engineer, Lab Instruments Division, Tektronix Inc.
Initially I joined Tektronix as part of the Lab Instruments Division marketing
group developing utility software for the Tektronix 370 Curve Tracer. From
this I moved into engineering where I worked with a fast paced development
group creating a new family of digital sampling oscilloscopes, the 11800 series.
As part of this team I was responsible for the design, implementation and
maintenance of several subsystems. The scope contained one Intel 80286 and
two Intel 80186 microprocessors and utilized a real-time operating system (VRTX).
|