Matthew Robert McEachen
PO Box 2735
::
El Granada, CA 94018
::
(650) 255-4949
::
::
http://matthew.mceachen.us/
Dedicated and successful software architect and
lead developer with more than 15 years of professional software
development experience in a wide array of markets.
- More than 10 years of professional development experience using Java for object design and programming
(j2se/j2ee), designing highly-available, multi-tenant web/SaaS
applications, XML/SOAP/REST servers, and rich client applications,
using JDBC/ORM
or XML to interface to backing data stores
- Won the JavaOne Coding Challenge
- Excellent analytical and creative problem solving skills, both
individually and as a member of a team
- Excellent oral and written communication skills
- UI design/HCI for both web and rich
client applications
(HTML/DOM,
Google Web Toolkit, Spring MVC, Java AWT/Swing, Macromedia
Director)
- More than 10 years of professional development experience on Unix
(Ubuntu, Debian, RedHat, Solaris), including shell scripting
and administration/security hardening
- More than 10 years of professional development experience with
RDBMS/ANSI-SQL (including MySQL and Sybase)
- Fluent in Perl and PHP, and want to spend
more quality time with scala, ruby and python.
- More than 10 years of experience with Java Application Servers
(Resin, Jetty, Weblogic, Tomcat, and others)
Employment
Adchemy, Inc.
February 2006 - present
Technical Lead, Principal Software Engineer
- Architect and implementor of Adchemy's initial pay-per-click bid management system, which included a patent-pending sparse-data analysis and estimation system.
- Architect and lead developer for Adchemy's flagship product, a multi-tenant software-as-a-service (SaaS) recommendation system leveraging regression analysis. The product is currently in closed beta.
CNET Networks
October 2004 - February 2006
Director, Product Catalog Engineering
- Lead and managed a team of 6 engineers in charge of
CNET's product catalog.
- Adopted agile project methodologies that
lead to a series of successfully launched, innovative projects that
improve data quality and streamline business workflow.
CNET Networks
July 2002 - October 2004
Senior Software Engineer
- Lead developer for PAM, one of CNET's product catalog management
tools. PAM is comprised of more than 50 JSPs and more than 150 supporting classes. Developed
and maintained all three tiers of the application: Sybase stored
procedures, data access and business logic classes (which use both JDBC and Hibernate O/RM), as well as the
presentation layer (which use JSP/DHTML/DOM/CSS2).
- Developed CNET's dual-level enterprise caching infrastructure that
supported both bottom-up (JDBC ResultSet caching to a XML filestore) and top-down
(In-memory caching of DAO-produced JavaBeans), significantly improving page-generation
times and reducing database load.
- Developed a JavaCC grammar and
supporting classes which allow business users to define complicated
yet humanly-readable product filters which are used to populate CNET's
extensive product catalog heirarchy.
- Was one of the primary developers in charge of migrating CNET's
50Mb of internally-developed Java-based software from Weblogic/Solaris to
Resin/Red Hat Linux in less than 2
months. Wrote RPM specfiles to
package up much of the Java codebase. Migrated the data access layer from
using Weblogic-provided database connections to using dbcp. Gave an
"RPM howto" chalk-talk to all CNET developers, and wrote extensive
internal documentation (using FAQ-o-matic)
to help other developers with the migration effort.
CNET Networks
December 2001 - July 2002
Senior Contract Software Engineer
- Designed and implemented JFC/Swing components and
data access objects for CNET's new Sales Force Automation
tool. Interfacing to the Oracle database was done through JDBC calls
and a JPublisher-provided data access layer.
- Wrote the cross-platform build and installation facility using
Perl and Java
WebStart/JNLP. Installations of SFA are automatically upgraded to
the latest version through JNLP, which minimizes CNET's IT ongoing
support and maintenance costs.
The Brodia Group
June 2000 - December 2001
Senior Contract Software Engineer
- As the engineering lead for Brodia's Consumer to Consumer
Payments project, designed and implemented a Risk Management
component, which provides a countermeasure for external fraud. The
technology is patent pending.
- Designed an open-sourced library to
provide the ability to partition an XML-parsing problem into discrete,
reusable components, while still using SAX. The Brodia Tapestry team
adopted the library for use in the presentation layer as well.
- Wrote the Transactor Wallet Servlet, and designed and wrote the
underlying XML-encoded protocol, ClientXML.
- Wrote business layer objects for Brodia's Transactor Platform,
including support objects for Visa's Three-D Secure Payer
Authentication protocol.
- Researched, designed and implemented the cryptographic library and
external interfaces to the library, which used the javax.crypto and
java.security APIs for runtime-bound cryptographic providers
(nCipher).
Providian Financial's Aria division
January 2000 - June 2000
Senior Contract Software Engineer
- As the senior engineer of Aria's Online Access engineering
team, architected and implemented their "foundation" packages,
providing common application services such as JDBC data object
pooling, runtime-configurable data caching, system logging, and an
xml-based data transport for communicating with the mainframe
datastores.
- Provided the presentation layer team with an objectified view of
the database tables required for the Online Access
functionality.
Bank of America
July 1998 - December 1999
Senior Contract Software Engineer, Architect
- As a member of Bank of America's Online Banking engineering
team, designed and wrote a number of application infrastructure
components, including a generic resource pooling mechanism. Online
Banking is a server-side Java2 application.
- Designed and instrumented a remote system monitoring framework
used by Online Banking. SysMon, an RMI-enabled JFC/Swing application,
can monitor any number of running Online Banking servers, gathering
status and statistics for the self-descriptive Remote System
Components currently being used by the server. SysMon can also render
aggregate statistic graphs, showing both historical and real time data
points for the monitored servers.
- Architected the object model for Online Banking's Bill Presentment
functionality. Application writers interface with a clean,
object-oriented "Bank Object" layer (like Customer, Payee, and Bill
objects), which proxy to multiple authoritative data sources.
Tenth Planet Explorations
September 1997 - July 1998
Lead Software Engineer
- Implemented three award-winning educational software products
that teach literacy skills to young children.
- Wrote an extensive library of drag-and-drop "behaviors" using an
object-oriented language designed for multimedia development. The
behavior library allowed for rapid prototype and application
development. Previous products had been implemented procedurally, and
required engineering effort for all product changes.
Enlighten Software Solutions
July 1995 - September 1997
Software Engineer
- Designed and implemented licensing and installation of
EnlightenDSM, which won UNIX Review's 1996 Outstanding System
Administration Product of the Year. Installation was done through a
Motif-based GUI. Licenses were granted through a web-based application
and licenses branded in the binary coupled to the inode.
- Ported EnlightenDSM services to Windows NT 4.0 Server.
- Redesigned EnlightenDSM 2.0 GUI.
- Co-designed the corporate web presence, performed corporate
system administration (email, web, ftp), and provided final-tier
customer support.
|
"The installation and
configuration was the easiest I have ever come across in Unix. The
user interface was clean and intuitive to work with."
INFOWorld, 11 Nov 96
|
"The organization and flow of
EnlightenDSM's installation procedure is as good as we have seen
... intuitive and easy to use."
UNIX Review, Oct 96
|
"Any time installing software on
Unix is easy - especially for something as difficult as systems
management - it's worth a mention. The install took us about an hour
from start to actual use."
Network Computing Online, 8 Nov 96
|
Education
Bachelor of Science in Computer Science from
University of California, Santa Barbara &
California State University, Hayward.
References are available upon request.