Erik Max Francis
San Jose, CA, USA
Formats: [*]HTML, [2]text, [3]PostScript, [4]PDF.
EMAIL [5]***-******@*******.***
WEB [6]http://www.alcyone.com/max/
LOCATION San Jose, CA, USA
OBJECTIVE
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.
SKILLS
* Operating systems: Linux, Solaris and other Unix-like operating systems
(System V and BSD); IRIX, OpenBSD, NetBSD, etc.
* Programming languages: C++, C, Python, Java, Perl.
* Other languages: ActionScript, APL, BASIC, Emacs Lisp, Io, J, Common
Lisp, Forth, Logo, Haskell, Mathematica, Objective-C, Pascal,
PostScript, Prolog, Scheme, Tcl.
* Tools: Bourne-like shells (sh, bash, zsh) and shell utilities, gcc, gdb,
make, emacs, m4, awk, sed, telnet, ssh, screen, gnuplot, CVS, SVN,
Perforce, Bugzilla, Apache, sendmail, qmail/ezmlm, procmail, BIND,
named, tinydns, X Window System, ctwm, sawfish, PNM.
* Technologies: TCP, UDP, HTML/XHTML, HTTP, SSI, CGI, XML, SVG, RTF, PDF,
SMTP, NNTP, DNS, MD5, SHA, SSL/TLS, CORBA, SQL, OpenGL, Unicode, POSIX
threads, regular expressions, client/server networking, object
orientation, system administration, system security, API design.
* Python technologies: Medusa, PIL, Numeric, PyOpenGL, pygame, docutils,
psyco.
* Advanced concepts: analytic geometry; differential, integral, vector,
and tensor calculus; linear algebra; predicate calculus; physics;
artificial neural networks; cellular automata; Lindenmayer systems;
finite state machines; genetic algorithms and programming; evolutionary
computation; fractals; artificial life.
* Writing: technical documentation, how-to, non-fiction.
WORK EXPERIENCE
CyberArts, Inc. (Oakland, CA) Senior Software Engineer. (2003 )
Architected 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 Game 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.
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 and functionality 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.
RELEVANT ACTIVITIES
* Open source contributor, including numerous Python modules and
applications available at [7]http://www.alcyone.com/, including: a
cellular automata library, a lambda calculus explorer, an identd
security system, a customizable unique ID generator, a URL validation
system, an OpenGL-based 3D graphics engine for rapid visualization, and
[8]EmPy, a powerful templating system which is steadily gaining in
popularity. (2001 )
* Freelance technical writer; wrote two articles for [9]Linux Journal.
Three more commissioned articles pending. (1999 )
* Contributor to The Hanford Consortium, a volunteer bandwidth cooperative
of system administrators and software engineers who support a base of
300 users and 500 domains on eight Solaris, Linux, IRIX, OpenBSD, and
NetBSD servers. (2001 )
* Webmaster of a dozen domains which altogether receive about 10 000
unique visitors per day. (1995 )
EDUCATION
* Attended De Anza College (Cupertino, CA), with particular emphasis on
computer science courses.