Gregory L. Guerin -- Freelance Software Developer
- Contact:
- Gregory L. Guerin
P.O. Box 40790
Mesa, AZ 85274
web pages:
http://www.amug.org/~glguerin/
email:
glguerin AT amug DOT org
- Language Proficiencies:
-
Java (SE), C, Objective-C,
SQL,
HTML, CSS, JavaScript,
XML,
UNIX shells, awk, Forth,
various assembly languages
- 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.
-
Synectics Business Solutions (Toronto, Ontario, Canada)
-- 2006-2010
-
BackJack5 & Continuum remote backup software.
Cryptography, S3 storage, iDisk/MobileMe storage,
GUI, differential backups, SQL logging and reconstruction,
etc.
written in Java and C for Mac OS X clients.
-- Contract Developer, Principal Developer
Started as contract developer on isolated tasks,
eventually took over all client-side development of BackJack5 product.
Revised compression and encryption algorithms.
Designed and implemented differential backups: code analyzes files to backup and only stores the differences.
Redesigned and implemented logging of SQL database transactions for reconstruction if damage occurs.
Improved Amazon S3 storage handler to support arbitrarily large files.
SimpleDB and EC2 interfaces and management.
Various other tasks.
Designed and implemented product's automatic software update.
Produced Continuum product for Mac OS 10.5 and up from BackJack5 code base.
Designed and implemented integration with Apple's iDisk/MobileMe storage service.
BackJack5 product website
Continuum product website
-
WNET-Thirteen (New York, NY)
-- 2006
-
Rewrote lip-sync audio production tool from 1997
written in Java and C for Mac OS X clients.
-- Contract Software Developer
Rewrote tool from 1997 for use on Mac OS X, and potentially other Java platforms.
New tool had improved drag-n-drop, more flexible production options,
and provided better audio analysis than original.
-
IPLocks (San Francisco Bay Area, CA)
-- 2004-2005
-
Cryptography, DRM, software scaling redesign
designed software; coded in cross-platform Java, server-side and client-side.
-
- Contract Software Developer
Evaluated cryptographic strategies for restricting distribution of CD-ROM demos.
Created trial programs and tools.
Redesigned software strategies to increase parallelism and scalability.
Wrote specifications and created design diagrams.
-
Server Side Software (Seattle, WA)
-- 2003-2004
-
Peered-network interconnect application (unreleased product)
written in Java for Mac OS X clients, eventually destined for other Java platforms.
-- Contract Software Developer
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 network discovery,
and XML over TCP/IP for configuration and operation.
Performance, quality, and configurability all
exceeded the client's initial expectations.
-
Private sports-booking operator (Phoenix, AZ)
-- 2002-2003
-
Ticket-acquisition automation engine (private software product)
written in Java for Windows, Mac OS, and Mac OS X platforms.
-- Software Product Designer & Developer
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 (Toronto, Ontario, Canada)
-- 2002
-
Mac OS file-archiving library for company's online backup service
written in Java for Mac OS and Mac OS X platforms.
-- Contract Developer
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)
-- 2001
-
MacBinary for InstallAnywhere
written in Java, for multiple platforms
-- Contract Developer
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)
-- 1999-2000
-
Aircraft Noise and Emissions Financial Impact Model
written in Java, for PC & Mac OS, and Unix servers
-- Contract Software Developer
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.
-
Brodia/Transactor Networks (San Francisco, CA)
-- 1997-98
-
Transactor E-Commerce and Ownership System
written in Java, for PC, Unix, Macintosh
-- Principal System Architect
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.
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 two-line controller to reduce parts count by 50%,
reduce power-supplies from three (+/-12, +5VDC) to one (+5VDC),
and reduce power consumption to about 35% of the original.
Also designed test-fixtures and procedures for DTMF-unit testing.
(Co-development project for UltraMedia)
-
WNET-Thirteen (New York, NY)
-- 1997
-
Lip-sync audio production tool
written in C, for Macintosh
-- Contract Software Developer
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)
-- 1996
-
Stargate Game
-- Contract Software Developer (game design 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)
-- 1995-96
-
Hotel Information Station
written in C, for CD-I player
-- Contract Software/Hardware Developer
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)
-- 1995
-
"Triakis" - a medical-imaging program
written in C and PowerPC assembler
-- Contract Software Developer
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)
-- 1993-95
-
"Star Trek: A World for All Seasons" - a video game
written in C, for 3DO Multiplayer
-- Contract Software Developer
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 Developer
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 adventure game
written in MacForth
Converted existing text-based DOS game to Macintosh, creating clickable interface,
copy/paste, etc.
-
Motorola Technical Training (Phoenix, AZ)
-- 1987
-
Taught 68000/020/030 hardware, assembly-language, peripherals, etc.
-- Technical Instructor
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)
-
-- Contract 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 68000 assembler
Various system enhancements, additions, bug-fixes, etc. for MacForth system.
-
Motorola Microcomputer Division (Tempe, AZ)
-- 1979-1986
-
-- Diagnostics Engineer, Tools Engineer
writing 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-2011 by Greg Guerin.
To
Greg's Home Page
To
Greg's Software Page