GARY HORTON

SUMMARY
I'm a Senior Software Engineer who is comfortable working in all layers of a product, from web tier to database - in fact, I'm happiest developing a full vertical slice. I gain professional satisfaction when I'm productive, contributing quality code and discussing design tradeoffs with teammates. It's becoming increasingly obvious to me that well-designed, sustainable software is primarily about testability. I'm all but an evangelist for Spring and REST.
TECHNICAL SKILLS
Java EE (JMX, JavaMail, JAXB, JNDI), Spring (DI, AOP, txn mgmt), remoting (JAX-RS (REST), JAX-WS, CORBA), database (JDBC, SQL, LDAP, iBatis, Hibernate, TopLink, JPA, PostgreSQL, Java DB, Oracle), Web-tier (JSF, Facelets, JSP, Servlets, Portlets, security, AJAX, CSS, Javascript, IceFaces, Balsamiq), testing (Mockito, JUnit, TestNg, Spring test framework), modeling (UML, E/R)

W
ORK HISTORY


Time-Warner Cable, Broomfield, CO

(Entertainment and communications industry providers of products and services on an enterprise scale, with 14 million customers - digital cable, high-speed internet and digital phone)

Senior Software Engineer, Advanced Technology Group
2008-present
Develop and evolve components and services for an enterprise application supporting cable plant operations. Current focus: streamline a cumbersome product installation process by retrofitting an RDBMS persistence layer to legacy CORBA code. Further simplify that process by providing a web-based management UI. Support corporate goal of exposing back-office data with a JAX-WS interface to the business logic. Concurrently working various other projects: a JAX-RS registry that facilitates seamless navigation between UI components; general product maintenance; and prototyping contemporary technologies as part of refactor/redesign for next-generation releases. Overall goals include lowered support costs, improved diagnostics and flexibility in framework selection.
  • Address ongoing bugfixes and new feature requests for established product deployed nation-wide
  • Provide new components supporting RIA experience and enhanced capabilities to facilitate ease-of-use for the product users
  • Refactor legacy code as needed to increase understandability, reduce coupling and improve diagnostics; in particular, factor out business logic from any particular framework to give the development team greater flexibility in technology selection, preserving the business investment while leveraging updated technology.
  • Produce proposals, prototypes and proof-of-concept exercises around technologies targeted to update the legacy codebase (RESTful and standard web services, JMX, JSF, etc.).
  • Participate in team reviews of proposed architectural patterns and infrastructure component designs supporting the next-generation release.
  • Publish extensive writeups to the team wiki outlining research findings, techniques and technical tips.

 

Sun Microsystems, Broomfield, CO

(Software and hardware products supporting enterprise-scale deployments)


Software Engineer, Network Storage and Solaris Software Divisions
2002-2008
Database and web lead, data modeler and business logic contributor for SAN management applications. Deliver common components for web and database layers. Produce innovations supporting project needs, resulting in three patents pending.
  • Collaborate with HCI experts to guide UI designs; principal developer for portlet and servlet implementations
  • Coordinate across business units and address varied stakeholder interests to implement Solaris Achievement Awards nomination tool; sole developer for this website (classic J2EE: security, persistence, transactions, notification, application logic and JSF front end)
  • Provide high-level persistence layers to enable service-tier developers
  • Conduct design presentations for architectural review committees
  • Deliver multiple projects in parallel
  • Provide inventions to fill gaps until industry standards emerge (see Patents Pending)
  • Facilitate team momentum by providing facade over complex plumbing - capture relevant aspects of data model, design/implement database physical model, design/implement high-level API to hide the complexity and provide value-added functionality - enabling teammates to concentrate on product-level features instead of infrastructure
  • Keep project schedule on track by absorbing departed teammate's responsibilities for providing core service-tier functionality - quickly learn SMI-S (Storage Management Initiative Specification), JMX (Java Management Extensions) and SLP (Service Location Protocol), using these technologies to develop module for automatic discovery of SAN elements, in effect the foundation of the service tier
  • Demonstrate proof-of-concept pluggable portlet framework to facilitate dynamic service deployments, providing a basis for a next-generation product with enhanced flexibility/modularity and reduced footprint

 

University Center for Atmospheric Research (UCAR), Boulder, CO

(Non-profit corporation formed to enhance the computing and observational capabilities of universities, comprising 66 Member and 20 Academic Affiliate institutions - administrative focus with some development facilities)


Software Engineer - Digital Library for Earth Systems Education
1999-2002
Architect/developer for digital library web application providing peer-reviewed Earth systems educational resources. Responsible for use cases, requirements, UML and data models, database implementation, middleware architecture and implementation, and infrastructure components. Provided guidance to team on new technologies (XML, JSP, etc.). Interviewed, selected technical candidates for hire as team members. Mentored junior developers on team.
  • Exceeded requirements in database performance (with maximum acceptable response time of 2 seconds, delivered system came in at 1/2 second)
  • Delivered system ahead of schedule, avoiding various slowdowns with lightweight approaches, including:
    • Avoided learning curve on XSL (at the time, an early adopter technology) by quickly implementing a simple rules-based declarative mechanism for XML-to-HTML transformation
    • Facilitated clear role separation on team by introducing JSP as the "interface" between web authors and database/service tier
    • Enabled rapid prototyping with dynamic reconfiguration mechanism, so that product look-and-feel could be modified without recompilation or webserver restart
  • Remedied exploding maintenance costs by advising a team doing many-to-many transformations to instead leverage the mediator design pattern
  • Produced cost savings (approximately $200K) by accomplishing delivery with a team of only 1.3 out of four originally allocated developer FTEs
Data Modeler / Software Engineer - Finance and Administration/Data Warehouse Group
1997-1999
Design/implement middleware, logical data model and web-tier aspects of decision support system for business information needs.
  • Increased productivity for both end-users and developers by restructuring DBA's existing procedures to use mirroring and increase availability uptime from 89% to 99%
  • Streamlined existing "sneaker-net" deployments and improved overall reliability by developed auto-sync mechanism to transparently push new files to fat clients, keeping them up-to-date...including automatic self-update of the syncing mechanism itself (reduced manual efforts from 3-5 hours per deployment to zero; with 4-5 deployments per month, this saved 12-25 person-hours/month)

 

National Center for Atmospheric Research (NCAR), Boulder, CO

(Non-profit corporation formed to enhance the computing and observational capabilities of universities, comprising 66 Member and 20 Academic Affiliate institutions - research and development focus)


Software Engineer - Atmospheric Technology Division
1987-1997
Developed GUI-based software (at the time, new technology) in support of real-time research flights, in particular a multi-year effort providing 2-D graphics and video displays of atmospheric conditions, both in real-time and as replay for post-flight analysis (WINDS - Window Display System). In use for 15+ years, WINDS was widely recognized as a de-facto standard; our team received a U.S. Dept. of Commerce Multi-Organizational Excellence award for collaborative effort adapting WINDS for the National Oceanic and Atmospheric Association (NOAA).
  • Provided an intuitive, quickly learnable front-end: new users were productive with GUI within minutes, as needed in field project settings with short, turbulent research flights and little preparation time (this not only increased productivity but also reduced costs since fuel for flights was very expensive)
  • Collaborated with NOAA in design, procurement, and deployment of WINDS in NOAA research aircraft, resulting in $1M increased revenues and an enhanced partnership between UCAR and NOAA
DESIGN PHILOSOPHY
Principles
  • Single point of change: lowered maintenance costs, extensibility, testability 
  • Declarative vs. procedural: more powerful abstractions, extensibility
  • Interface vs. implementation: encapsulation, polymorphism, reusability, testability 
  • Abstraction layers: put responsibilities where they belong
  • Small, quick development-release iterations: including customer feedback cycles to facilitate course corrections 
  • Process: iterative requirements/design/implementation cycles - unit/system/acceptance tests - profile for performance - regression tests
Outcomes
  • Sustainable - extended product lifetimes
  • Reusable - minimized redundant efforts
  • Extensible - react quickly to evolving customer requirements
  • Performance - footprint and user experience: stay competitive
  • Debuggable - lowered field support costs
  • Understandable codebase - accelerated learning curves for new staff, lowered maintenance costs 
PROFESSIONAL RECOGNITION
  • Nomination, Outstanding Performance Award, WINDS, 1998
  • U.S. Department of Commerce Multi-Organizational Excellence, 1998
  • Distinguished Service Award, C-130 project, 1994
  • Nomination, Technological Achievement Award, WINDS, 1991
  • Incentive Award, WINDS, 1991
PUBLICATIONS
  • Horton, G., 1994. Interactive graphical user interface system for real-time and post-processing display and analysis of aircraft measurements. Proceedings of AMS 10th International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, Nashville, TN, Jan. 23-28 1994, pp. 11-16.
  • Griffith, M., Horton, G., Pelk, J., 1991. Real-time window oriented data acquisition and display system for aircraft measurements. Proceedings of American Meteorological Society (AMS) 7th International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, New Orleans, LA, Jan. 14-18, 1991, pp. 471-4.
PATENTS PENDING

A named inventor on three patents pending, through Sun Microsystems program:

  • Portlet-based MVC Framework: design and implement a portlet-centric Model-View-Controller to facilitate schedule while waiting for a JSF-based MVC to emerge
  • Stylesheet Simulation for Portlets: design and implement dynamic look-n-feel management on a per-portlet basis, without relying on stylesheets at the page level (which compromises the spirit of portlet environments)
  • Dynamic Global Portal Environment Administration: design and prototype a pluggable mechanism allowing providers to hot-deploy new portlet content and functionality