Opcode Systems, Inc.
1992 - 1996
Senior Software Engineer/Engineering Lead
Windows 3.x, Windows'95, C++/C, 80x86 assembly,
Mac OS, 680x0 assembly, MIDI, digital audio
- Porting Macintosh music software to Windows 3.x and Windows'95
- Complete development of OMS 1.2 emulation DLL (MIDI routing)
Member of porting team for Vision 1.4 (MIDI Sequencer)
- This library provided the OMS API and its supported
data structures to Opcode's sequencer, Vision. Defined level of emulation
by examining Visions usage of the OMS API. The emulation was built around
the Win16 low-level MIDI API, handling all available MIDI ports and
data types, including System Exclusive.
Member of development team for Macintosh emulation DLL
- Porting Vision included editing for compiler specific
differences, developing tools to automate this editing, converting Motorola
68k code to either C or 80386, separating the real-time/interrupt portion
of the code from the UI code, replacing the Macintosh specific timer
related code with Win16 low-level Timer code, re-work code to deal with
different timer/interrupt architectures, re-work code to deal with big-endian/little-endian
issues; both internally and in cross-platform file formats.
Member of porting team for OMS 2.0 and OMS Studio Setup
- This library provides a subset of the Macintosh Toolbox
API and its supported data structures. Its level of functionality is
defined by Opcode's products requirements . It supports all of the major
managers, as well as others.
Assisted porting team for Vision 2.5
- The port of OMS 2.0 supplies all of the OMS API , including
the Name Manager, as well as the corresponding OMS Studio setup application.
I worked on the Win16 MIDI specific code development, along with all
of the real-time debugging. OMS 2.0 interfaces to the Win16 low-level
MIDI API through an "OMS Driver Emulator". This is code that
is compiled into OMS and emulates an OMS driver for each installed Win16
MIDI driver. OMS also requires more details about it’s MIDI system than
the Win16 low-level MIDI API offered, thus I had to go "under the
hood" to determine some things. This required different methods
depending on whether this is a Win16 or Win32 environment, thus I had
a section of Win16 code that loads and calls a Win32 DLL if it is running
Technical liason for Opcode/Microsoft contract
- I was the answer man for porting questions and debugging
Ongoing research into cross-platform development solutions
- Served as technical liaison and coordinator between Opcode
and Microsoft in regards to developing OMS for Windows’95. This included
developing specifications and participating in technical meetings both
at Opcode and Microsoft.
Opcode's Windows specialist
- I have examined several cross-platform tookits and continue
to explore how to most effectively develop software that runs on multiple
Successfully telecommuting 5 days a week
- I am the engineer that gets to answer all of the Windows
related development questions. This has been especially important for
the Macintosh programmers who are now developing code for Windows.
Implemented source control via SourceSafe
- Working from home I have access to our internal network,
e-mail, source control, and bug database; all remotely. I have developed
skills required to do this successfully.
Assisted in resolving cross-platform build issues and
setting up autobuild system
- The company was not using source control at all and
I implemented source control via SourceSafe.
- Assisted in resolving cross-platform issues in regards
to source control
- Assisted network admin in resolving the windows side
of cross-platform build and autobuild issues