Will Sargent

http://tersesystems.com

will.sargent@gmail.com

Selected Work Experience

MyBuys

Redwood City, CA

April 2006 - August 2007

Principal Software Engineer

  • Added large amounts of business functionality, including Explicit On Sale, Price Reduction (with client specific thresholds), SKU Events, subscription and alert selector management tools, and integrations with NextAction, BlueHornet and Google Checkout.
  • Wrote a business-critical importer framework for importing product catalog, inventory and cross-sell data from XML files to database, using SAX and Spring JDBC with 1.5 concurrency utilities. The framework is orders of magnitude faster than the one it replaced and has comprehensive transaction handling, validation and error reporting, providing professional services with "hassle-free rollout" of clients.
  • Encapsulated Alert Generation business logic into a rules based system using actions and conditions configurable through Spring. Vastly increased throughput of alert generation matching of categories and keywords by using Lucene indexes instead of dynamic Oracle queries.
  • Wrote an HTML wrapper system to automatically construct product catalogs by crawling a client's website using a customized version of Heritrix. This involved bug fixes to Heritrix and internal code modifications to parallelize the crawl using a number of threads.
  • Built webMethods ETL flow to process and transform extremely large XML documents with minimal overhead, a technique found using some non-standard webMethods documentation. Wrote many java services for webMethods, including importer integration by executing it as an external application, avoiding JVM inconsistencies.
  • Optimized application by running performance tests with Apache Jmeter and profiling the result with Borland OptimizeIt and JMX, identifying bottlenecks where Velocity was not caching templates.
  • Defined an XML generation framework using XOM and Nux, for producing extremely large XML documents.
  • Added a test framework for unit, integration and system testing, using Spring Mock and an in memory HSQL database for integration testing. Wrote many unit tests using JUnit and EasyMock to cover existing functionality and provide a baseline for expansion.
  • Implemented a layered runtime configuration in Spring that resolves settings according to server, environment and module settings, allowing a single binary distribution to be used in all environments.
  • Trained and mentored new engineers on Spring, Hibernate, and Java best practices and held brown bag meetings to explain architectural changes and how (and why) to implement unit tests.
  • Identified, rationalized and refactored large sections of code that were deprecated, non-functional, or otherwise underperforming. Organized and resolved multiple conflicting Spring and Hibernate configurations. Documented remaining code using UML (Enterprise Architect), Javadoc, and technical overview documents in MS Word. Large amounts of database refactoring (schema and data) using Oracle 10g.
  • Wrote build system in Ant, providing automated development, production and QA distributions using a modular structure with common targets. The build system resolves compile time settings according to server, environment and modules, and automates database table creation, deletion, and import.
  • Migrated source code from CVS to Subversion. Managed SCM processes for company (branching, merging, tagging, conflict resolution). Set up a common Eclipse environment, with links to 3rd party source (maintained in SVN), and explicit library version management for each module.
  • Installed and configured CruiseControl with integrations to Checkstyle, PMD, and FindBugs, and a structure for supporting frequent releases.
  • Wrote scripts to automate deployment and installation of binary distributions to production, including tagging and manifests.
  • Supported QA extensively through migration to new build system, and cleaned and simplified QA environment.

Will Sargent

Los Angeles, CA

October 2005 - April 2006

Contractor for DirecTV

  • Reviewed technical architecture and made recommendations for DirecTV website.
  • Technical Lead for Entertainment Central portion of DirecTV website.
  • Designed and implemented Service Oriented Architecture for Flash and Web Services. This exposed services through an IoC container and integrated authentication and authorization with existing security systems.
  • Reviewed and recommended Flash Remoting products and design frameworks.
  • Made process improvements and provided technical assistance and review as necessary.

Will Sargent

Corte Madera, CA

June 2005 - August 2005

Contractor for Restoration Hardware

  • Wrote "Design Your Own Lamp" tool in Macromedia Flex, chosen as Site of the Day on Jul. 27, 2005.
  • Integrated DYOL tool with ATG components and repository on backend using Cairngorm framework.
  • Used FAST Echo actionscript in browser to enable merchant debugging of missing or corrupt photos.
  • Managed highly variable data by writing a tool to import Excel spreadsheet to database using POI library.
  • Wrote highly detailed design documents for DYOL in UML using Enterprise Architect.
  • Recommendations for future product catalog architecture for restorationhardware.com.
  • General site maintainence for restorationhardware.com.

Will Sargent

Corte Madera, CA

January 2005 - May 2005

Contractor for Restoration Hardware

  • Wrote most of the restorationhardware.com website.
  • Wrote gift registry administration web application for in-store representatives.
  • Rewrote internal product configurator web application.
  • Wrote enterprise build system using Ant 1.6, using common target libraries and macrodefs.
  • Evaluation of several JSP editors for front-end developers.
  • Technical review and evaluation of RIA solutions, resulting in Macromedia Flex purchase.

Will Sargent

San Francisco, CA

June 2004 - October 2004

Contractor for eLuxury.com (thru ATG)

  • Wrote a high capacity multi-threaded inventory management system (IMS) with redundant failover.
  • Wrote backorder and order reservations into IMS to filter ordered items from available stock.
  • Integrated shopping cart into IMS so that items in shopping cart are reserved and removed from available stock.
  • Worked on cascade filter to remove categories and products that had no available stock from the catalog.
  • Integrations to Retek (Purchase Order) and Uniteq (Warehouse Management) systems.
  • Incorporation of Design by Contract techniques into build processes using ESC2 program verifier.
  • Fulfillment Pipeline integration for Inventory Adjustments, Ship Confirms and Purchase Order updates.

HL Yoh Company

Seattle, WA

July 2003 - January 2004

Contractor for AT&T Wireless

  • Design and implementation of B2B Commerce Site.
  • Redesign of commerce framework on ATG Commerce.
  • Extended Commerce framework for new relationships and groups.
  • Custom DSS Scenario Actions, Conditions and Events to support new groups.
  • Continuous Integration Build Environment using Ant, Checkstyle, PMD.
  • Integration of existing commerce site to Ariba, using cXML.
  • General consultant for Java, JHTML, database, XML, J2EE and strange bugs.

HL Yoh Company

Seattle, WA

January 2003 - June 2003

Contractor for AT&T Wireless

  • Code review and refactoring of existing codebase.
  • ATG Dynamo knowledge transfer to in-house staff.
  • Build, Process and Architecture recommendations.
  • Presentations on Dynamo Best Practices.

Art Technology Group

San Francisco, CA

November 2001 - September 2002

Senior Engineer, Professional Services

  • Validation framework and build environment recommendations for classmates.com.
  • Design and implementation of ATG Services internal portal.
  • Wrote Siteminder authentication and LDAP authorization for PG&E.
  • Wrote critical sections of XML parsing and customization for Sun.

Art Technology Group

San Francisco, CA

Febuary 2000 - November 2001

Software Engineer, Product Development

  • Wrote several of the baseline gears in first release of Portal product, including XML persistence layer.
  • Technical review, QA, debugging framework code and assists with other engineers.
  • Editorial review of Portal Programmer's Guide.
  • RDF, Metadata and Metamodelling research.

Art Technology Group

San Francisco, CA

September 1999 - Febuary 2000

Senior Engineer, Professional Services

  • Tech Lead and part-time architect on transcoding for Vodafone.
  • Tech Lead for dynamic workflow experience for Hewlett Packard.
  • Technical integration of DCS 4.5 events to Insight for Accrue.
  • Mentoring, best practices documents and code review for other engineers.

Confluent

San Francisco, CA

April 1998 - April 1999

Senior Software Engineer

  • Wrote a Web Calendar, abrio.com, focusing on the persistence layer and event hierarchy.
  • Wrote a Java Swing personal organizer using RMI and Swing events for conflict resolution.
  • Wrote portions of Visual Thought, a software diagramming tool freely available on my website.

Saint Francis Memorial Hospital

San Francisco, CA

June 1997 - April 1998

Systems Integration Analyst

  • End to end integration of major financial systems (HBOC, SMS Unity) using CAI TDM (Message Oriented Middleware).
  • Integration, support and testing of Clinical, Lab, Coding Systems using HL/7.
  • Setup and integration of HP/UX Integration Engine.
  • Random database design and implementation.
Proficiencies and Expertise

Software Engineering Expertise

Enterprise Web Applications, Batch Applications, Domain Driven Design, Agile Methodologies

Domain Experience

Retail, Fulfillment, Telecommunication, eCommerce, Ad-driven Marketing

Java and XML Libraries

Core Libraries, Swing, Spring 2.0, Hibernate 3.2.1, Webwork 2.0, Velocity 1.4, Servlets, JDBC, JNDI, JTA, RMI, JAXP, SAAJ, JMS, SOAP, JavaMail, EasyMock, DBUnit, JMeter, OptimizeIt, Lucene, XOM, Nux, Log4J, p6spy, c3p0, Xerces, Xalan, Jaxen, POI

Web Skills

(X)HTML, AJAX, JSTL, JSP, CSS, Firefox Addons (Firebug, Aardvark), Proxies (Fiddler), Browser Incompatibilities

Database

Transaction Management, Oracle Design and Optimization, Solid, Berkeley DB, MySQL, PostgreSQL, HSQL

System Administration

Linux, FreeBSD, Firewalls, OpenSSH, FreeS/WAN, Siteminder, Apache, iPlanet Enterprise Server, iPlanet Directory Server (LDAP), JVM Configuration, CruiseControl, Exim, Courier IMAP, Perforce, Subversion, Capistrano

Personal Projects

Bookie (Bookmarks Manager), jEdit (XML Plugin), PMD (custom rules), Mockobjects library for ATG Dynamo, Ecco Pro / Shadow Plan integration, Yahoo Widgets, and updating the blog with techniques and small hacks.

Affiliations

IEEE