Gregory L. Guerin -- Freelance Software Engineer and Developer
- Contact:
- Gregory L. Guerin
P.O. Box 40790
Mesa, AZ 85274
web pages:
http://www.amug.org/~glguerin/
email:
glgNOSPAMuerin@amug.org
(remove "NOSPAM" before sending)
- Language Proficiencies:
-
Java (J2SE), C, UNIX shells, awk, Forth, HTML, XML
- Assembly Language Proficiencies:
-
PowerPC, 68000 family, 8031/8051, 68HC11, 6809, 6800, Z80, 6502
- Language Smatterings:
-
Perl, JavaScript, AppleScript, C++, Pascal, Fortran, PostScript
- Project Credits:
-
The following list of projects, most recent first, describes
the company for which the work was done,
my role or position,
and a summary of the project or tasks completed.
-
Server Side Software (Seattle, WA) --
Contract Software Developer
-
2003-2004 --
Peered-network interconnect application (unreleased product)
written in Java for Mac OS X clients, eventually destined for other Java platforms.
Designed and implemented a graphical Swing-based workspace
providing configuration management so networked
peers could use specific types of devices as if they were local.
GUI provided a drag-n-drop metaphor of shapes, sockets, and wires
to represent network devices and routing, with full Undo/Redo support
and dynamic peer discovery.
Peers used mDNS/Zeroconf protocols for discovery (via Rendezvous & JmDNS),
and XML over TCP/IP for configuration.
Performance, quality, and configurability all
exceeded the client's initial expectations.
-
Private sports-booking operator (Phoenix, AZ) --
Software Product Developer
-
2002-2003 -- Ticket-acquistion automation engine (private software product)
written in Java for Windows, Mac OS, and Mac OS X platforms.
Designed and implemented a graphical AWT-based
application for obtaining specific kinds of sporting-events tickets,
automating a manual process that had been done by a
person repeatedly interacting with a web-browser.
The automated program only needed user interaction to
select team, event, and ticket price-range.
Automation then
performed the repeated actions (form fill-in and POST),
analyzed web-server responses and statistics,
tuned its own ongoing behavior,
notified the user on ultimate success or failure,
and presented the final ticket-purchase web-page
in the normal browser for purchase completion.
-
Synectics Business Solutions, Inc. (Ontario, Canada) --
Contract Software Engineer
-
2002 -- Mac OS file-archiving library for company's online backup service
written in Java for Mac OS and Mac OS X platforms.
Designed and implemented an extensible archive format
for Mac OS and Mac OS X files, based on my open source
MacBinary Toolkit for Java.
Archived file-access permissions, ownership, file-flags,
more than 4 GB per file, and
full Unicode filename, along with traditional Mac OS elements
such as resource-fork and Finder metadata.
"Critical element" tagging and structural extensibility
allows future subclassing so archived elements
can evolve over time yet remain compatible with older decoders
and older archived data.
- ZeroG, Inc. (San Francicso, CA) --
Contract Software Engineer
-
2001 -- MacBinary for InstallAnywhere
written in Java, for multiple platforms
Revised my open source
MacBinary Toolkit for Java
software for integration into the InstallAnywhere product.
Added support for Mac OS X, large files (over 4 GB), long UniCode filenames,
aliases, permission-bits and ownership identities, among other features.
Also tailored a set of encoders and decoders to their provided API,
to simplify integration into their existing product.
- Campbell-Hill Aviation Group, Inc. (Alexandria, VA) --
Contract Software Developer
-
2000 -- Aircraft Noise and Emissions Financial Impact Model
written in Java, for PC & Mac OS, and Unix servers
Designed and implemented a software simulation of an airline economics model
containing over 600 airlines world-wide,
an initial fleet of over 15,000 individually identified aircraft,
and various sets of parameters defining financial climate, noise-stringency regulations,
production capacity, and buyer/seller constraints.
Software must run as multi-year forecasting model under different constraints,
generate fixed and configurable reports for further analysis at end-of-year and end-of-run,
and be configurable for different parameter-sets as easily as possible.
Designed, implemented, and documented software according to client's
initial and evolving specifications.
Configuration was accomplished with simple text files (Java properties-files).
Reports were generated in tab-delimited text form.
Documentation produced in HTML (web pages).
Robustness, performance, and configurability all
exceeded the client's initial expectations.
- Transactor Networks/Brodia (San Francisco, CA) --
Principal System Architect
-
1997-98 -- Transactor E-Commerce and Ownership System
written in Java, for PC, Unix, Macintosh
Architected, designed, and implemented a network-object ownership system employing
a multi-tier client-server architecture to perform the
distributed authentication, cryptography, and essential network utility of unique
Limited Edition Digital Objects (LEDO's).
Granted
US
patent 6,119,229 "Virtual Property System"
on the resulting software system, with two co-holders Bruce Schneier and Ron Martinez.
System was intended as a foundation for networked games in which authenticated ownership
and value-exchange capability are required.
System also had use in other areas of e-commerce, such as coupons, membership cards,
customer support ("smart receipts"), or anywhere an authentic uniquely identifiable
digital object would be of use.
Architected overall system.
Designed and wrote major server-side sub-systems.
Designed major client-side sub-systems.
- Myriad Technologies (Scottsdale, AZ) --
Hardware and Firmware Developer
-
1998 -- 3-axis quadrature decoder in micro-controller
written in 89C2051 assembler
Application is an XYZ-positioning table.
Designed and developed hardware and firmware for an Atmel 89C2051 to decode 3 axes of
quadrature-encoded motion sensors. Each rising or falling edge of each signal-line
on each axis records an appropriate up or down count. Counts are kept as 24-bit,
32-bit, or other programmer-defined lengths configured at assembly-time.
Counts are read or cleared via RS-485 serial-interface.
Maximum count rate exceeded 1500 counts/sec on all 3 axes simultaneously.
1996 -- Low-cost programmer for Atmel 89Cx051 micro-controllers
written in 89C2051 assembler
Designed and developed hardware and firmware to program an
Atmel 89C4051, 89C2051, or 89C1051
micro-controller. Implemented: automatic device sensing;
S-record, Intel-hex, and binary auto-format detection;
program/verify;
device-read (hex dump, S-record or Intel-hex);
3 test-modes;
and other features.
Hardware consisted entirely of inexpensive commodity parts,
with a single Atmel 89C2051
at the core.
1995 -- Redesign DTMF and phone-line controller for reduced parts count
written in 8031 assembler
Redesigned existing 8031-based 2-line controller to reduce parts count by 50%,
reduce power-supply count from three (+/-12, +5VDC) to one (+5VDC),
and reduce power consumption by nearly 2/3.
Also designed test-fixtures and procedures for DTMF-unit testing.
(Co-development project for UltraMedia)
- WNET-13 (New York, NY) --
Contract Software Developer
-
1997 -- Lip-sync audio production tool
written in C, for Macintosh
Designed and developed a tool to analyze AIFF audio files and generate
tokenized representation of lip-sync position for animated cartoon characters
in an edutainment title then in production.
Drag-n-drop batch tool was designed, written, and accepted in less than 4 weeks,
including configurable features for animation frame-rate, error-reporting, and
audio-analysis thresholds for lip-position.
- Post-Linear Entertainment, Inc. (San Francisco, CA) --
Consulting Software Engineer
-
1996 -- Stargate Game (game and software design)
Architected game and software design of role-playing 3D game based on Stargate movie,
originally to be released in conjunction with TV-series.
Responsibilities included game design, general software design,
interface design of interactive object-bartering sub-system,
network architecture.
Client accepted proposed design and production began in 1997.
- Ultramedia (Tempe, AZ) --
Contract Software/Hardware Engineer
-
1995-96 -- Hotel Information Station
written in C, for CD-I player
Wrote software interface to CD-I player's serial port, for async
communication with external DTMF unit attached to phone line.
Rewrote DTMF unit's firmware (8031-based).
Redesigned DTMF-unit's circuitry to reduce parts count by 50%.
Designed test-fixtures and procedures for DTMF-unit testing.
- Kensal Corp. (Tucson, AZ) --
Contract Software Engineer
-
1995 -- "Triakis" - a medical-imaging program
written in C and PowerPC assembler
Converted portions of image-processing engine from existing
68000-assembler code into C for PowerPC (PowerMac), optimized for RISC,
benchmarked and validated against existing 68000 code.
- Spectrum HoloByte (Alameda, CA) --
Contract Software Engineer
-
1993-95 -- "Star Trek: A World for All Seasons" - a video game
written in C, for 3DO Multiplayer
Lead engineer. Assisted with game design. Engineered all areas of
game play (audio playback, video playback, drama-engine, user-interface,
interaction, etc.), except 3D-gaming sections. Designed and developed production
tools: image conversion, animation conversion, audio processing. My image-conversion
tool ran over 10 times faster than 3DO-Company's own developer tool, matched colors
better, could be used for batch processing, and was easier for artists to use.
- TRANS Fiction Systems (New York, NY) --
Contract Software Engineer
-
1994 -- "Alzheimer's Disease and Epilepsy" - medical/pharmaceutical information
written in C, for Philips CD-I player)
The Parke-Davis pharmaceutical company's information for doctors about their
new drugs for treating epilepsy and Alzheimer's disease.
Came in as emergency "fire-fighter" to replace lead engineer and complete
project after excessive delays. The 3-CD set was completed and accepted by customer
one week after I took over.
1992-93 -- "An Introduction to Sailing" - edutainment
written in C, for Philips CD-I player
Interactive edutainment to teach the basics of sailing.
Started project as 2nd engineer, creating production and support tools.
Took over as lead engineer when prior lead engineer left project. Re-engineered the
existing design, and did all software development to complete title.
1991 -- "Meet the Biospherians" - a guided interactive theater
written in MacForth, for Macintosh
On-site tourist theater at Biosphere 2 in Arizona desert near Tucson. A trained
guide creates a projection-video presentation in real time based on audience questions, then
interactively presents it. A Macintosh controls 5 laser-disc players (video content),
a live camera (presenter), a video switcher, a live-video NuBus card, computer-generated graphics and overlays,
and a lighting controller. Presenter builds presentation in 7-minute span while intro
video is playing, using point-and-click interface, then controls playback during live
interactive real-time presentation.
Performed all software development, most user-interface design, all support
tools (laser-disc catalogger, data conversion, etc.), testing, and final installation
at site.
Also created training version of software, and assisted in establishing training program.
1990 -- "Greed and Lust" - a game about office/business politics
written in MacForth
Drama-engine development, support-tools development
1990 -- "Math Shop" series - five educational games about math & algebra
written in MacForth
Converted existing Simon & Schuster games (DOS, Apple II) to Macintosh, adding
new clickable interface, all new art, all new sounds. Did all program conversion, new
development, support tools.
1989-90 -- "Star Trek: The Transinium Challenge" - a graphical Star Trek game
written in MacForth
All Macintosh-based development for dual-platform (DOS & Mac) production,
including support tools (image processing and conversion, sound, animation, etc.)
1988-89 -- "Hidden Agenda" - a game/simulation of Central American politics
written in MacForth
All Macintosh-based development for dual-platform (DOS & Mac) production,
including user interface, drama-engine development, and production tools (image
processing and conversion, animation, etc.). Created an interactive frame-based
editor for making animations.
1987-88 -- "Star Trek: The Promethean Prophecy" - a textual Star Trek game
written in MacForth
Converted existing text-based DOS game to Macintosh, creating clickable interface,
copy/paste, etc.
- Motorola Technical Training (Phoenix, AZ) -- Technical Instructor
-
1987 -- Taught 68000/020/030 hardware, assembly-language, peripherals, etc.
Taught various classes to engineers enrolled in Motorola's one-week courses. Although
Phoenix-based, courses were taught at various locations around US (SF-bay area,
Boston, Atlanta, etc.).
- Creative Solutions, Inc. (Rockville, MD) -- Software Engineer
-
1986 -- "Atari ST Multi-Forth" - software port
written in Forth and 68K assembler, for Atari ST
Ported and updated CSI's generalized 68000-based Multi-Forth system to the Atari ST
computer. Performed all engineering, and wrote substantial sections of documentation.
1985-86 -- "MacForth" - system enhancements
written in Forth and assembler
Various system enhancements, additions, bug-fixes, etc. for MacForth system.
- Motorola Microcomputer Division (Tempe, AZ) -- Software Engineer
-
1979-1986 -- Diagnostics Engineer, Tools Engineer
written in C and assembler, for UNIX etc.
System diagnostics, system self-test firmware, firmware debugger.
UNIX-based cross-compiler tools: C compiler, assembler, libraries.
Used C and assembler for a variety of Motorola's 68000, 6809, and 6800 computer systems.
Developed and taught internal C classes to other Motorola engineers.
All trademarks used are the exclusive property of their respective owners, and are used
only to identify the products of the trademark holders.
All trademark benefits inure solely to the respective trademark holders.
Copyright 1996-2004 by Greg Guerin.
To
Greg's Home Page
To
Greg's Software Page