Note to recruiters: I am unlikely to be interested in any employment outside the
Portland city limits, and absolutely not interested in relocating to another metro area.
OBJECTIVE:
Stimulating, challenging employment as a software engineer for an
organization that values experience, creativity and a quick yet careful mind. With a lifelong
concern for the environment, work related to green technology or energy would be
particularly attractive.
Languages & Standards
Java, JSP, JSF, JEE/J2EE, EJB
SQL (PostgreSQL, Oracle, MySQL, MS
SQL Server)
HTML5, CSS3, XML, XSL
Javascript
Ruby
PHP
C
Python
C++
PERL
Project Highlights
Full-stack development of social networking site for crossword
puzzle enthusiasts, as a responsive, modern Javascript web application
tied to a RESTful Java-based back-end.
Various complex, highly-interactive web widgets using HTML/DOM/CSS/
Javascript/AJAX
User interfaces for social media apps and e-commerce systems,
including Facebook support.
Designed and created a scriptable/pluggable data exchange automation
system.
Embedded user interface and media framework for an advanced plasma
video/television system.
Created an IDE for the EsiObjects language.
APIs and Frameworks
jQuery, Backbone, Underscore, Handlebars
JAX-RS 2.0 (Jersey, RESTEasy)
Jackson
Dropwizard
JBoss/Wildfly
JDBC, Hibernate/JPA
JUnit, TestNG, Mockito, EasyMock
Swing/JFC, AWT
GAE, GWT
Zend
Tapestry
GNOME
POSIX, glib, glibc, gtk
+ too many more to list
Development Platforms
Linux/GNU
UNIX
MS Windows 95 - 7
MS DOS 2.x - 6.x
Apple OS X 10.7
PRINCIPAL SOFTWARE DEVELOPMENT SKILLS:
Full-stack application developer with extensive experience designing and
creating web-based as well as installed applications, and the design and
use of RESTful APIs. Firm grasp of object-oriented concepts and design.
Strong believer in testing, and test-driven development (TDD).
Adept at porting code between platforms; can debug and refactor complex
code written by others. Extensive experience simplifying overly-complex
code. At some jobs I've deleted more code than I've written. I am very
adaptable and write carefully-designed, readable, testable, well-tested,
and well-documented (when not self-documenting) code.
OTHER STRENGTHS:
Strong work ethic; work well under pressure. Very quick learner yet
patient teacher. Excellent English writing and editing skills. Good verbal
communication skills (with individuals as well as groups). Can read,
write and speak Italian and German fluently.
RECENT EMPLOYMENT AND PROJECT DETAILS:
June 2014 - February 2016: Software Engineer, Castle Rock Associates (Portland OR)
Full-stack engineer developing browser-based RESTful applications in
the transportation sector. Created two completely different and
complex touch-enabled web UIs from scratch for TG-Segments, one of
Castle Rock's flagship applications (used by state and local agencies
across the US to manage reporting of inclement weather conditions on
highways). Maintained and improved numerous other applications, both
modern (i.e. Web 2.0) and legacy (JSF). Wrote unit tests for new code
as well as to isolate and identify complex, difficult to diagnose
problems in "untestable" older code. Front-end tech: Javascript, CSS3,
HTML5, Backbone, Marionette, jQuery, etc. as well as obsolescent
systems such as JSF/JSP, Prototype. Back-end tech: JBoss 5/7/Wildfly,
Tomcat.
April 2012 - Present: Owner and principal developer, Crucible (Portland OR)
A social-networking site for cruciverbalists (crossword enthusiasts),
developed as a part-time personal project to experiment with new technologies
and maintain and improve my skill set. Web-based front end makes extensive use
Backbone, jQuery, Underscore, etc. Back-end is Java-based, using Dropwizard as
a highly-scalable, lightweight framework bringing together Jetty, Jersey,
Jackson, and Hibernate to produce an extensive, well-tested, RESTful API.
August 2012 - June 2014: Software Engineer, Monsoon Commerce (Portland OR)
Part of small team responsible for development, testing, maintenance and
deployment of more than a dozen web applications essential to the operation of
the business—both internal and customer-facing services (Ruby on Rails, PHP).
Helped to port a mission-critical RESTful service from Rails to Java (Jersey
JAX-RS, Amazon EC2, MongoDB). Some experience with Hadoop and Amazon S3.
May 2012 - July 2012: Contractor, iWonder Media
Web UI development (Java, Google App Engine, GWT, VLC) for a
web/social media startup with first-round funding.
Nov. 2009 - Jul. 2011: Sr. Software Engineer, Lemonade (Lake
Oswego, Oregon).
Principal UI Engineer for small e-commerce company. Refactored old,
bloated server-side codebase (PHP, Javascript, Zend Platform/Server,
Facebook) into a streamlined system with maximal code re-use and well-ordered
MVC architecture. Led 3-person team in reworking messy, unmaintainable
Javascript codebase into a sleek, object-oriented, AJAX-based system
striving to push work to the client (web browser), reducing page load
times and server load. Our system was used by top entertainment figures
(including Taylor Swift and Justin Timberlake) to sell merchandise
through branded versions of the application, as well as through
Facebook (with a brandable, custom Facebook app).
Aug. 2006 - Dec. 2008: Sr. Software Engineer, Comotiv Systems
(Portland, Oregon).
As principal UI Engineer for this startup, helped
architect, design and create a complex, multi-threaded remote
collaboration tool that supported cross-platform, multi-person video-
and audio-conferencing and file sharing, using agile development methods
(Java, Swing, JMF, Hibernate, Webstart).
Oct. 2005 - Apr. 2006: Software Engineer/Architect, Blue Cross/Blue Shield of
Minnesota. Lead Engineer and Architect for the SelectAccount Operations Controller,
a flexible, scriptable framework to allow automated exchange of data with
various business partners. Wrote numerous plugins for the framework to
facilitate exchange of data from BC/BS' Oracle and FoxPro databases with
specific partners. Designed and developed an ORM solution to facilitate
rapid development of Java code to communicate with FoxPro databases.
Also created a GUI to allow manual/unscheduled data exchange operations.
(Java, SQL, JDBC, Hibernate, XML, Log4J, FoxPro, Swing).
Jan. - Sep. 2005: Software Engineer,
Help/Systems (Minnesota).
Developed complex user interfaces for the market leader in IBM iSeries
operations automation and monitoring software (Java, Swing).
EMPLOYMENT AND PROJECT DETAILS, continued:
Oct. 2002 - Dec. 2004: Software Engineer, TriAxial Data Systems
(California). Primary developer of a flexible data management application framework
(UI: PHP/DHTML; back end: EsiObjects [object-oriented
MUMPS]). As part of the project, created an extension to the PHP
language which allows objects on a remote database server to be accessed
natively within PHP (using C, TCP/IP, PHP4, PHP5). Also identified and
fixed several bugs within the official EsiObjects and PHP language
implementations.
Feb. 2001 - Oct. 2004: Software Engineer, Giavaneers (California).
Worked with a team of developers on various software projects under contract
to Giavaneers' clients:
Ported portions of a popular anti-virus system from Windows to Linux (UI:
Java, SWING, C, C++ JNI, GTK2; back end: C++, C).
Developed portions of an Integrated Development Environment (IDE) for a
leading FPGA manufacturer (Java, SWING, AWT).
Developed portions of a UI and application
framework for digital TV (Java, XML) as an embedded system built on a
Linux-based OS. Primary engineer on email and speech synthesis components
(Java, C, JNI, Festival).
Resolved numerous bugs in a complex, client-developed enterprise systems
security framework (Java).
May - Jul. 2004: Personal Project: Geode
Developed an IDE to allow development and debugging of software in the
EsiObjects language on Linux-based platforms (previously impossible
without a Windows-only IDE). Project goals: Facilitate work for a paying
client while improving Linux GUI development skills (using C, GTK2,
EsiObjects TCP/IP protocol). Result: Success! Within a month I was
regularly using Geode for my work, and soon released a stable, alpha
version of Geode to the community under the GPL (open source license).
This project is no longer maintained as I no longer have any use for it.
For source code and a screen shot, see
http://geode.sourceforge.net.
Feb. - Nov. 2000: Software Engineer, macroplay.com
(California).
Principal UI engineer at a sports-oriented internet startup. Developed the
front-end for several related web applications, including an e-commerce
system (JSP, JAVA, DHTML, Javascript, CSS), and did some work on the
back-end database system (EJBs, SQL). Finished all assigned projects before
leaving (voluntarily) to pursue more challenging career opportunities in
another city.
Jan. - Nov. 1999: Various independent contracting work in Italy:
@all.it: Internet development and programming for an ISP.
All'Informatica Shop: Technician for computer retail
store. This had nothing to do with Informatica software, about which
I know nothing.
Digivision: Soft- and hardware demonstration and user training (in
English and Italian) of PC-based digital video editing systems.
Acquarelli Video: Digital video production assistance, web
design.
EARLY SOFTWARE DEVELOPMENT EXPERIENCE:
1987. Wrote quality control software under contract for Gillette Papermate (in Pascal, using
serial communication with a Sartorius precision balance).
1986 - 1990. As owner/founder of Cavan Int'l, designed LABBS, a
computer bulletin board system with early support for email, public and
private discussion forums, binary file transfer protocols, and online games,
which was used on several systems across the US (Pascal). Developed and sold
AOLA, a simple DOS-based ANSI character graphics and screen editor for use by
BBS operators and software developers (Pascal). Operated "LAPD", a BBS
hosting software development discussion forums as well as providing games,
free software and documentation. Also developed and distributed some other
small utility programs (Pascal, x86 Assembly Language).
FORMAL EDUCATION:
B.S. degree in Chemistry, with multiple honors, University of
California at Santa Cruz. (1995)
A.A. degree in Computer Programming, with honors (at age 15),
Santa Monica College. (1987)
HOBBIES/INTERESTS:
Antique motorcycle repair and restoration.
Home restoration and remodeling (first-time homeowner).
Woodworking
Writing
REFERENCES
Excellent personal and employment references available upon
request.