Additional Information
The following sections provide additional detail regarding some of the projects I've
worked on over the years. This information is intended to complement and expand on the information
provided in the resume linked above. (I firmly believe that a traditional resume should be
a single double-sided sheet of paper; but when you've been in the industry for
nearly 3 decades, that simply isn't enough space to cram everything in!)
Gentex Visionix
For the past few years I have been developing
head-mounted video displays. While my official job title is Software Engineer,
my role has expanded to encompass other related areas. I joined the company in
mid-2005, shortly after the formation of the Gentex Visionix group.
As an early member of the team, I have had a significant role in getting
the group's R&D effort off the ground.
In addition to developing embedded real-time code (using C and OpenGL) to run on VxWorks
and Linux, I developed portability libraries which allowed much of the embedded
code to be prototyped and tested on desktop workstations. I've also done customization
work on various pieces of the Linux platform (e.g. the GRUB bootloader) to accomodate
special requirements.
I was also responsible for
the initial set-up of much of the infrastructure on which the software development group relies
–
source code management system, in-house engineering Wiki server, OpenSSH gateway, etc. – and
still play an active role in maintaining and enhancing our computing and
network infrastructure. I have been closely involved in all aspects of the
software engineering process – from initial requirements, to design, coding, and
testing, to personally supporting successful demonstrations and test flights of
our systems at military bases around the US.
I have been
involved in the hardware effort as well. When the need has arisen I have traded my
keyboard for an oscilloscope probe, and worked on testing/debugging
custom hardware. This has included identifying and solving
a number of LVDS (high speed serial) signal integrity issues, among other things.
Tellabs
As a consultant at Tellabs, I worked on the network management system for
a commercial cable telephony platform. This involved working with a Microsoft
SQL Server back end, and a Windows GUI based front end. One of the projects
I tackled while there was a major rewrite of the "network discovery" subsystem,
which automatically maps out the topology of the network
to be managed.
Westell
As a consultant at Westell, I developed a number of firmware modules for
DSL modems and DSLAMs (Digital Subscriber Line Access Multiplexer). This
included network bridging functionality, support for in-the-field firmware upgrades,
and SNMP network management interfaces. I was also involved in
initial bringup and debugging of new hardware. Most of the development was done in
C, for VxWorks and AMX embedded OSes.
Quantitative Analytics
As a consultant at Quantitative Analytics, I ported a large legacy database
from Pervasive SQL to Microsoft SQL Server, and worked on various custom
databases and analysis tools used in the financial industry.
Fermilab
As a Computing Professional at Fermilab (a
national laboratory operated by the US Department of Energy), I worked extensively on their
ACPMAPS system, which was a groundbreaking (for its day) custom parallel processing
supercomputer containing over 600 CPUs. I assumed responsibility for all of the
hosting software (which ran on a UNIX-based front-end system), developed
most of the hardware-level system diagnostics, maintained the library
(Canopy) which supported the parallel algorithms being used by the physicists,
assisted with hardware testing and debugging, and optimized the high-speed communication
routines which were used for inter-node communications in the processor array.
Development was done in a mix of C and i860 (an early RISC processor) assembly language.
I also served as a liaison between the R&D group which built the system, and
the primary users of the system in the Theoretical Physics group.
After my departure from Fermilab, I was hired on a part-time contract basis
by one of the Fermilab scientists, to port some of the software I had
worked on at Fermilab to a new platform.
David Bruce and Company
As the lead software developer at David Bruce, I was involved in all aspects of
systems development, from initial requirements analysis through development,
testing, and end-user support. I was also responsible for technical management
of the entire software development team.
David Bruce's primary product was a portfolio risk analysis system,
which allowed the user to perform "what if" analyses on mixed portfolios
of equities, futures, and options. The system maintained historical databases of
market data, augmented with option implied volatility, beta, and correlation data
which was recalculated nightly; a real-time data feed was also available.
The analysis part of the system allowed the user to vary any two
independent variables (e.g. market volatility and interest rates), and view
a "map" of how this affected various characteristics of the portfolio. A hedge
optimization module was later added to the system as well.
While at David Bruce I was also involved in a number of other projects, including custom real-time
database servers, touch screen market workstations, and data feeds.
Community Technology
Not long after being hired, I took responsibility for many aspects of the custom
OS which was being developed in-house. Subsystems for which I was primarily or solely
responsible included
a dynamic linker to allow run-time library code to be shared between applications,
filesystem driver (compatible with the UNIX System V file system),
command shell,
bootstrapping code to load the OS from a cold start, and drivers for various devices
(asynchronous and synchronous serial ports, disk controllers, etc.).
Years later, I've come to realize that the custom OS we built way back in 1984-86 was
in many ways similar to the modern-day VxWorks RTOS (albeit in stripped-down form).
Other Projects
Side projects I have pursued over the years have included:
- I occasionally post on my Bits and Bytes
blog at the PC hardware review site The Tech Report. I also designed
and built their custom power supply load box,
which is used for their PC power supply reviews.
- For Bally/Williams Electronics – assisted in the design and implementation
of a video game prototype.
- For Powercore/CE Software – played a significant role in the design,
implementation, and debugging of a commercial Windows application (PC
interface software for an early PDA, the Sharp Wizard).
- For Ortron – assisted in interfacing a PC to a laser videodisk
player and touch-sensitive screen. Implemented a graphics editor, which
allowed interactive layout of screens and definition of touch zones.
- Custom Windows screen savers.