Additional Information
The following sections provide some additional detail regarding some of the projects I've
worked on over the years. This information is intended to complement the information
given in the resume linked above.
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 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 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, all the way
through 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.
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.
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.
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.
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.
David Bruce was also involved in a number of other projects, including custom real-time
database servers, touch screen market workstations, and data feeds.