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), SQL, C, Objective-C, UNIX shells, awk, Forth, HTML, XML


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) -- Contract Developer, Principal Developer
2006-2010 -- began as contract developer on isolated tasks, eventually took over all client-side development of BackJack5 product.
written in Java and C for Mac OS X clients.

  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. Various other tasks.
  Designed and implemented product's automatic software update. Produced Continuum product for Mac OS 10.5 and up from BackJack5 base (link to Continuum). Designed and implemented integration with Apple's iDisk/MobileMe storage service.
  BackJack5 product website.
  Continuum product website.

  WNET-Thirteen (New York, NY) -- Contract Software Developer
2006 -- Rewrote lip-sync audio production tool from 1997
rewritten in Java and C for Mac OS X clients.

  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) -- Contract Software Developer
2004-2005 -- Cryptography, DRM, software scaling redesign
designed software; coded in cross-platform Java, server-side and client-side.

  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) -- 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 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) -- 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 (Toronto, Ontario, Canada) -- Contract Developer
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 Developer
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 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) -- 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 Developer
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 Developer
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 Developer
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 Developer
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 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) -- 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-2010 by Greg Guerin.


To Greg's Home Page
To Greg's Software Page