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: APL, BASIC, Emacs Lisp, Io, J, Common Lisp, Logo,
Forth, Haskell, 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, 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 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. (Berkeley, CA)
Senior Software Engineer. |
(2003-) |
Architected and implemented a highly-multithreaded game server as part
of a server suite for a next-generation online poker site, written in
C++ and under Linux. Was personally and solely responsible for all
game logic and user interface associated with the game table, as there
was a very thin Windows client. Engineered the server to be very
modular, easily accommodating the addition of new games, resulting in
a gaming platform offering the widest variety of poker games 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 game server. Delivered stable software with very
long uptimes even with no quality assurance department. Used Python
for various ad hoc tools and as an automation library for testing
through the use of bots. Helped with user interface design. 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 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 EmPy, a powerful
templating system which is steadily gaining in popularity.
(2001-)
- Freelance technical writer; wrote two articles for Linux Journal. Three
more commissioned articles pending. (1999-)
- Contributor to The Hanford Consortium, a volunteer bandwidth
cooperative1 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.