Erik Max Francis
San Jose, CA, USA
UPDATED 2017 May 15


To obtain gainful employment in a challenging position at a forward-looking company, utilizing my particular skills and talents under a Unix, Unix-like, or platform-agnostic environment. Telecommuting preferred.



Ultimate Gaming, Inc. (Emeryville, CA) Senior Software Engineer. (2003–2014)
Designed and implemented a highly-multithreaded poker server as part of a server suite for a next-generation online gaming platform, CyberArts Foundation, written in C++ under Linux. Was personally and solely responsible for all poker game logic and user interface associated with the poker table, given an extremely thin and portable (Windows, Macintosh, Flash) client. Engineered the server to be very modular, easily accommodating the addition of new poker variants, resulting in a poker gaming platform offering the widest variety available in the market. Also designed the system to be localizable and completely skinnable from a data-driven source. Assisted with the design and structure of the XML-based client-server protocol. Advised on the design of the other server components, including the CORBA interfaces and SQL schemas needed for the various interactions between these components and the poker server. Assisted with the design of a Software Developers Kit, allowing customers to independently write their own game servers. Assisted with the architecture of Foundation, the server suite itself. Used Python to write a high-performance client architecture for testing through the use of bots, as well as for other ad hoc tools. Helped with user interface design. Delivered stable software with very long uptimes through the use of unit tests, even initially with no quality assurance resources. Met the demands for customization and feature requests for numerous customers with aggressive, overlapping schedules. Joined the company as employee number 4 under heavy NDA for the first year as part of a stealth startup. Telecommuted.

Adobe Systems, Inc. (San Jose, CA) Senior Computer Scientist. (2003–2004)
As a part of Adobe's Advanced Technology Group, implemented SVG Renderer, a portable (Linux, Solaris, Windows) Python application using the SVG core library, in order to render SVG documents to a variety of image formats (PNG, GIF, JPEG, etc.) and options. Designed the application to be used as: a standalone rasterizing utility (requiring no network access); an HTTP server which, when provided an SVG document via a POST query, would rasterize the document and respond with the resulting image; as an HTTP client that would interact with an SVG Renderer server, providing the source SVG document and locally manipulating the resulting rasterized image; and as a Python module which provided developer access to any or all of the above features. Telecommuted.

Adobe Systems, Inc. (San Jose, CA) Computer Scientist. (2000–2001)
Ported the Adobe Scalable Vector Graphics core engine written in C++ to Linux and Solaris (from Windows and Macintosh), making possible the SVG Linux viewer for Mozilla. Implemented and maintained company-wide, portable (Linux, Solaris, Windows, Macintosh) API for SVG rendering and importing, utilized by many Adobe applications, including SVG Viewer, Illustrator, Photoshop, and Adobe Graphics Server/AlterCast. Interfaced with these other teams as clients to provide them the APIs and functionality that they needed. Provided technical advice and support for clients of those APIs on Macintosh, Windows, and Solaris. Ported an automated build validation tool written in Python to Linux and Solaris, which ran against every change entered into source control. Wrote an automated system in Python which would render a suite of test files, and either interactively display differences from the blessed testcases through a simple GUI for human interaction. Delivered a high-quality product with no dedicated quality assurance department allocated to the project. Provided expertise in C and C++ Standards conformance and portability. Partially telecommuted.

Infoseek, Inc. (Sunnyvale, CA) Consultant. (1999)
Designed and implemented a log tracking daemon for Linux and Solaris in C++, which monitored a complex mail log in realtime (with very high traffic) and streamed out a condensed log of key events in a unified, company-wide format; said daemon responded to Unix signals for various changes in behavior, including the creation of an on-demand HTML report. Telecommuted.

Adobe Systems, Inc. (San Jose, CA) Computer Scientist. (1996–1998)
Developed and maintained plugins and internal functionality for Illustrator 7.0 and 8.0 (Windows and Macintosh) in C and C++. Responsibilities included general rasterizing libraries, raster file formats (most prominently GIF and JPEG), Web features (including hyperlinks and imagemaps), Smart Guides, and transformation and shape tools.

Adobe Systems, Inc. (Mountain View, CA) Computer Scientist. (1995–1996)
Quickly and simultaneously learned the Illustrator 5.5 and 6.0 (Macintosh) plugin API, the latter of which was under heavy development at the time. Worked with a small team to obtain basic testing of the entire API of over 500 calls, as well as depth and applied testing over the most important calls, including several complete plugin features. Also developed a rapid prototype in Java for a research project which converted Illustrator documents to class files runnable as browser applets.

Adobe Systems, Inc. (Mountain View, CA) Member of Technical Staff. (1993–1995)
Designed, implemented, and organized automation testing frameworks in QA Partner 1.2 and 2.1 for Illustrator 5.5 and 6.0 (Macintosh), Adobe Type Manager 3.7 and 3.8 (Macintosh), and Type on Call 4.0 (Windows and Macintosh), along with a suite of testcases using this framework to validate each build. Eventually led team of two additional testers to maintain, use, and extend this framework. Also created new testing tools, including an output-based print validation system for PostScript Level 2 devices.

Sameena, Inc. (Milpitas, CA) Member of Technical Staff. (1992)
Designed and implemented a sales-oriented customer tracking database system in C under SunOS 4.1, using curses as a terminal interface. Trained staff on the use of this database.