[logo-128.png] Erik Max Francis San Jose, CA, USA EMAIL [1]max-resume@alcyone.com WEB [2]http://www.alcyone.com/ LINKEDIN [3]/in/erikmaxfrancis/ TWITTER [4]@erikmaxfrancis JABBER erikmaxfrancis SKYPE erikmaxfrancis UPDATED 2023 Dec 24 __________________________________________________________________ OBJECTIVE To obtain gainful employment in a challenging position at a forward-looking company, utilizing my particular skills and talents under a Unix, Linux, Unix-like, or platform-agnostic environment. I'm passionate about learning and particularly enjoy building complex software from scratch. SKILLS * Programming languages: C++, C, Python * Operating systems: Linux, Solaris, OpenBSD, NetBSD, and other Unix-like operating systems (both System V and BSD) * Other languages: APL/J, BASIC, Forth, Go, Haskell, Io, Java, JavaScript, Common Lisp, Emacs Lisp, Logo, Mathematica, Objective-C, Pascal, Perl, PostScript, Prolog, Tcl, Scheme * Tools: Bourne-like shells (sh, bash, zsh) and shell utilities, gcc, gdb, GNU Make, Ninja, emacs, m4, awk, sed, telnet, ssh, rsync, wget, curses, screen, gnuplot, CVS, SVN, Perforce, git, Bugzilla, Jira, Confluence, Status Hero, Trello, Apache, sendmail, qmail/ezmlm, procmail, BIND, named, tinydns, X Window System, ctwm, sawfish, GNOME, Netpbm * Technologies: TCP, UDP, HTML/XHTML, HTTP, SSI, CGI, XML, RSS, Atom, SVG, JSON, Markdown, AsciiDoc, reStructuredText, wikitext, LaTeX, RTF, PDF, SMTP, NNTP, DNS, SSL/TLS, CORBA, SQL & SQLite3, OpenGL, Canvas, jQuery, Unicode, IRC, XMPP, Slack, POSIX threads, regular expressions, client/server networking, object orientation (including patterns), domain-specific languages, system administration, system security, API design * Python technologies: pydoc, PyPy, Medusa/asyncore, PIL/Pillow, NumPy/Numeric, BeautifulSoup, PyOpenGL, pygame, docutils, Python 2 vs. 3 compatibility * DevOps: agile programming; unit, integration, and system testing; continuous integration (CI) and continuous delivery (CD); microservices and containers (Docker, LXC, etc.); infrastructure as code; configuration management * Advanced concepts: analytic geometry; differential, integral, vector and tensor calculus; linear algebra; statistics; predicate calculus; physics (classical mechanics and quantum mechanics, special and general relativity); astronomy; astrophysics; artificial neural networks; machine learning; cellular automata; Lindenmayer systems; finite state machines; genetic algorithms and genetic programming; evolutionary computation; fractals; artificial life * Writing: technical documentation, how-to, non-fiction, technical advice on popular science fiction novels WORK EXPERIENCE Stealth startup (distributed) Senior Software Engineer. (2015-2019) Designed and implemented the architecture for a highly-extensible multiplayer game server in Python, designed to serve thousands of simultaneous players per shard. Designed domain-specific language for specifying the world and configuration. Advised and assisted on world and puzzle design. Worked under heavy NDA for stealth startup. Telecommuted. Ultimate Gaming, Inc. [formerly CyberArts, Inc.] (Emeryville, CA) Senior Software Engineer. (2003-2014) Designed, implemented and maintained a highly-multithreaded poker server as part of a server suite for a next-generation online gaming platform, CyberArts Foundation, written in Standard C++ under Linux. Handled the full lifecycle from design, implementation, bugfixing, release, through to maintenance. 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. Designed the system to be fully localizable and skinnable from a data-driven source. Assisted with the design and structure of the XML-based client-server protocol, as well as the architecture of Foundation, the full server suite. Advised on the design of the other server components, including the CORBA interfaces and SQL schemas needed for their interactions. Assisted with the creation of a Game Developers Kit, allowing customers to independently write their own games. Helped with user interface design. Delivered stable software with very long uptimes, even initially with no dedicated quality assurance resources. Met demands for customization and feature requests for numerous customers with aggressive, rapidly-changing, and often overlapping schedules. Wrote a high-performance client library in Python for testing the server through the use of bots, as well as for other ad hoc tools. Achieved hightened performance through multiple forked asynchronous (event-based) cores able to run high-level scripts using threads. Wrote emulator for backward compatibility with legacy Python scripts. Designed and implemented the Player Segmentation Module API designed to allow administrators to efficiently specify groups of players through well-defined criteria. Created a domain-specific language to specify these criteria, which would compile the queries to actual SQL queries and wrappers. Used SQL optimization techniques to make the queries efficient despite their sometimes high complexity. Integrated an XMPP client library and exposed an XMPP API for developers. Switched over to agile methodologies and converted the poker server to support a later thick HTML5 client using a JSON-based protocol. Also performed technical interviews. Joined the company as employee number 4 under NDA for the first year as part of a stealth startup. Telecommuted. Adobe Systems, Inc. (San Jose, CA) Computer Scientist/Senior Computer Scientist. (2000-2001, 2003–2004) Ported the Scalable Vector Graphics (SVG) core engine written in C++ to Linux and Solaris (from Windows and Macintosh), making possible the SVG Linux viewer for Mozilla. Implemented and maintained a company-wide, portable (Linux, Solaris, Windows, Macintosh) API for SVG rendering and importing, utilized by multiple Adobe applications, including Illustrator and Photoshop. 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 test system in Python to render a suite of test files and interactively display differences from the blessed testcases through a simple GUI. Provided expertise in C and C++ Standards conformance and portability. Partially telecommuted. Later, returned to the Advanced Technology Group, and designed and implemented SVG Renderer, a portable (Linux, Solaris, Windows, Macintosh) Python application using the SVG core library, in order to render SVG documents to a variety of image formats via the Python Imaging Library. Created the application to be used as a standalone rasterizing utility; 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, and locally manipulating the resulting rasterized image; and as a Python module. Telecommuted. Adobe Systems, Inc. (San Jose, CA) Computer Scientist. (1995-1998) Quickly and simultaneously learned the Illustrator 5.5 and 6.0 plugin API (Macintosh), 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. Later, developed and maintained internal functionality and plugins 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. RELEVANT ACTIVITIES * Open source contributor, including numerous Python modules and applications available at [5]http://www.alcyone.com/, including: + [6]CAGE, a cellular automata library, + [7]chess, a chess moves adjudicator, + [8]fauxident, an identd security system, + [9]uid, a customizable unique ID generator, + [10]BOTEC, an astronomical and astrodynamics library, + [11]ZOE, an OpenGL-based 3D graphics engine for rapid prototyping and visualization, and + [12]EmPy, a powerful templating system used widely enough that is available as a system package for most Linux distributions; a revamped major version (4.0) was released in late 2023 (2001-) * Freelance technical writer; wrote two articles for [13]Linux Journal (1999-) * Offered pre-publication scientific and literary comments on the novels Bowl of Heaven and Shipstar by Gregory Benford and Larry Niven (2010-2013) * Contributor to The Hanford Consortium, a volunteer bandwidth cooperative of system administrators and software engineers supporting a set of servers running Linux, Solaris, IRIX, OpenBSD, and NetBSD (2001-) ℰ