Joseph Gamache
http://www.team345.com/
10-506 Mountain Laurels Drive
Nashua, NH 03062
(603) 801-9330
  jgamache@team345.com


PROFESSIONAL SKILLS
  • Languages: 
Java, C++, ActionScript, JSP, XML, HTML,  Perl, C, Maven, Ant
  • Java J2EE
2.x and 3.x, EJB 3, 2.x (JPA,BMP, CMP and CMR), JMX/MBeans, Spring 2.x, Struts), iBATIS, Hibernate, JAAS, Castor/XML, JMS, JMX,  XDoclet, JBoss, WebSphere (6.1 and 5.x), Oracle OC4J, some WebLogic, JetSpeed
  • IDEs
Eclipse 3.x, RAD 7.x, Together, Rational Rose, JBuilder, JDeveloper, some WebLogic, Visual Studio, Emacs
  • Databases
Oracle (8.1.5 through 10G), MySQL, SQL Server, PostgreSQL, Access, JDBC
  • Operating Systems
Linux (various flavors), Windows (XP, 2003, Vista), Solaris 10, AIX
  • WebServices
IBM WebServices, Axis WebServices, Microsoft SOAP Toolkit (2.0 and 3.0), Oracle WebServices

PROFESSIONAL  EXPERIENCE
Jul 08 - present

Fidelity Equity Information Technology (EIT),  Senior Consultant 

  • Developing a new Equity Trading System to replace the existing 25 year old legacy system.   This new system is being built from the ground up based upon the Domain Driven Design methodology and employing the latest Java technologies: 
    • Spring Framework (2.5.x) based for configurability and dependency injection
    • Hibernate (3.x) peristence to Oracle database,
    • iBATIS for stored procedure execution on the Mainframe (IBM AS400)
    • Oracle TimesTen in-memory database for performance
    • Lean development approach using the Sapient Hybrid Agile Methodology
  • Advanced highly integrated development environment  integrating continuous builds via Hudson with code style rules via Checkstyle, unit testing via JUnit, and Test Coverage via Clover.
  • Coordinate daily with our remote India team on Agile Story progress and status.  This track has 2 India Developers and 6 QA Engineers.  The overall project has over 40 remote resources in India.
  • System is architected to handle future (current requirements are 5% of the daily volume on the NYSE) as well as High Availability and Disaster Recovery (HA/DR).
  • Perform a wide range of tasks: shell/perl script writing to support automated deployment, Java/Spring/Hibernate development for critical functions, Agile training for off-shore developers, Hudson job definition, using Maven, for Continuous Integration needs.
Sep 07 - Jun 08

Fidelity Brokerage Company Technology (FBCT), Lead Architect,  Merrimack, NH

  • Defined and performed detailed implementation of a  next generation Java/J2EE n-Tier architecture for the division.  Technologies used were: 
    • Adobe Flex 3 (and Cairngorm) as the RIA front-end, JAX-WS 2.0 for webservice access to other clients
    • Java Persistence API (OpenJPA contained within Websphere 6.1.0.x) for simple access to Oracle 10.2,
    • iBATIS for issuing complex queries via Stored Procedures to Oracle 10.2 
    • Spring 2.5 for configurability and dependency injection
  • More than the sum of these technology pieces the architecture allowed each front-end to determine the best connection for their own needs, while isolating the business object implementations from the connection mechanism.  Development was done in RAD 7.0 with the FlexBuilder Plugin installed.  Created EAR and WAR files deployable to Websphere 6.1
  •  Managed development activities of a remote development team (of 8) in North Carolina.   Included weekly status reporting, day to day issue resolution and work product definition.  Remote Team Members consisted of 2 Developers, 3 QA, 1 DBA, and 2 Business Analysts.
  • Created the Technical Architecture to modify the existing Margin Risk applications to be suitable as a standalone Brokerage product.   Introduced use-case centric based requirements modeling using UML for the Requirements Documents and other UML diagrams for the Design documents.   
  • Implemented several batch processes in Java 1.5.  Each process was responsible for processing a unique data file, performing filtering, and invoking a stored procedure via JDBC.
  • Created a new build/deployment system.  A single tarfile can be deployed to the many servers (Solaris 10 Zones) and a post deployment script applied machine-specific substitutions to tailor the configuration settings to that environment: Test, QA, Development, or Production.
  • Created and institutionalized the use of a project Wiki to serve as Engineering Notebooks available to all team members.
  • Drafted project plans to assist project manager.
Mar 04 - Aug 07

Fidelity Investments, Fixed Income Division, Lead Architect,  Merrimack, NH

  • Lead the effort to define a custom Event-Driven Architecture to bring real-time Market Surveillance to the Fixed Income division which deals with Taxable and Municipal Bonds as well as Taxable and Municipal Money Market instruments.
  • Indications of Interest (IOIs) are brought into the system via the FIX protocol.  Each generates an event recognized by the system and an Observation is created.   Indicatives are added to observation by going to various data sources such as Bloomberg.  Finally, Analytics unique to the instrument type (such as FADN or CMO) are calculated, stored and presented to the end users (Traders).  Usually the entire process takes 1-2 seconds.
  • The design was centered around an in-memory database that support Continuous Queries.  Additionally, the modular structure and use of interfaces created low coupling between services which became reusable.  Spring 2.x was used for database accesses to increase performance and reduce the amount of coding.  The application consists of on the order of 20 multi-threaded processes.  Each such process communicates via JMX to a central JetSpeed portal allowing for remote monitoring and control.
  • Tailored the Fidelity Standard Development Methodology to suit the specific project needs
  • Lead requirements definition process working hand in hand with the respective business counterparts, usually a senior trader on a given desk
  • Prepared project schedules and milestones with Microsoft Project
Oct 06 - Mar 07

Sotheby's., Consultant,  New York, NY (part-time. so dates overlap)

  • Developed architecture of Java middle-tier for Sotheby's new online bidding system.   Sotheby's had extensive in-house experience in their own custom data layer as well as in the Presentation layer.  They did not have experience implementing a three-tier Java-based web architecture using Struts, JAAS, and other current technologies.  All work presentation layer work was internationalized (I18N).
  • Each major segment of the web site was implemented in Java 1.5 as a Struts 1.2 Module.  Implemented the Absentee Bidding and Condition Reports modules.  Absentee Bidding is fairly self explanatory.  Condition Reports allow auction experts to disclose possible flaws and are posted for all to see via the web site.  
  • Created innovative Class/Object structure that eased Struts development and increased consistency throughout the development staff.
  • Implemented the login and security approach via JAAS.
  • Application was deployed on SunAppserver and Java 5
Feb 03 - Feb 04

National Leisure Group, Inc., Senior J2EE Specialist,  Woburn, MA

  • Joined a team assigned with doing the impossible: build an entire Realtime Hotel Reservation/Inventory System from the ground up in three months.  All team members were senior, top-notch individuals.  This system was used by many web clients including Orbitz and Yahoo Travel.  We succeeded with a May launch date.
  • Developed EJB 2.x CMP/CMR Enterprise Java Beans for a Hotel Reservation System.  Used Eclipse, XDoclet, and Ant to generate EJBs to map to approximately 45 tables in an Oracle 9 database.  CMR was used for 1:1, 1:M, and M:M relations.  Entire task took approximately 1 week!
  • Developed specific business services for various aspects of the system.  These services ran in parallel with other services, scheduled via messages sent by Message Driven Beans (MDBs).  Also developed the set of objects for the external system interface.  This interface is an XML interface and Castor/XML was used to generate the corresponding Java classes.  Developed both compile-time and runtime tests in JUnit.
  • Developed a series of Facade objects to load the Hotel data into the database.  Built a series of JSPs, Action classes and Tiles to provide a user interface for entering Hotels.  Built for use around the world, all screens were developed with internationalization.  The inventory and pricing for over 1000 hotels has already been loaded through this UI.  Used JAAS to provide a secure (MD5) login mechanism.
Jul  02 - Jan 03 British Telecom, Inc.,  J2EE Consultant,  Braintree, MA
  • Designed a three-tier web-based system in Java to replace the existing Oracle Forms-based method of booking conference calls.  All web page development was done within the Struts framework and using Tomcat.  Defined packaging structure, software standards, and the database tables.  Session beans and container-managed Entity beans were used throughout the design.  The web-server, middle-tier, and database (Oracle 9i) were all designed to run on physically separate machines for security purposes.  Deployment used JRE 1.3.1_04.
  • Created Web Services to provide access to actual bridge hardware (from Octave and Compunetix)  used for booking conference calls.   Used JDeveloper and the OC4J (Orion) Application Server to house the web services.  Used JNI to Java-enable a Windows DLL to communicate with the Octave bridge.
  • See additional writeup here:  http://www.team345.com/btci.html 
Oct 99 - Jun  01 SmartLynx Inc., Vice-President of Engineering, Londonderry, NH (part-time, then full-time)
  • What was initially a part-time role grew into becoming Vice-President of Engineering for a development staff of 18.
  • Prepared quarterly presentations to the Board of Directors
  • Met with  external clients and vendors to keep them abreast of product development and direction of the company.
  • Recruited and hired all full-time engineering staff.
  • Instituted approach and plan to move product from it's C++ heritage to Java.
  • Jack of all trades in a small engineering organization: designed the workspace centered around dedicated team rooms, setup the use of coding standards, mentored staff, conducted reviews, worked with Sales with potential clients, conducted progress reviews with existing clients, and drove the movement to new technologies such as XML and Java.
Apr  00 - Apr 02 Blackstone Computing, Worcester, MA (offsite/ part-time, then full-time)
  • Designed and built a JSP-based solution to web-enable the end users interface with the compute farm system.  The JSPs execute inside Tomcat running with Apache.  All HTML was generated via perl scripts that processed standardized page descriptions in XML.  The JSPs automatically invoked certain applications and formatted tabular HTML result pages.
  • Implemented a CORBA-based solution for fault tolerance that would work with any application.  One application was started, if another was detected on the same host or network, then the application would go into a wait mode.  Many performance parameters were tunable via data in a property file.
  • Acted as a lead architect to design and  help develop a high performance compute farm solution for Biotech (Life Sciences) and EDA customers. The solution was 100% Java (although several interfaces transported XML), and ran on several operating systems.
  • Architected, designed, and implemented scheduling code and algorithms that controlled usage of the assets on the compute farm.  This code was all in Java, made extensive use of EJBs and  multicast messages.  Further, the entire application was multi-threaded as it was event driven.
  • Designed and  built EJB components for the compute farm server running inside Borland's J2EE Application Server, and the associated client API. This server made use of Java EJBs for persistent storage.
  • See additional writeup here:  http://www.team345.com/blackstone.html
Mar 99 - Mar 00 Liberty Mutual Portsmouth, NH
  • Worked on the Vision 2000 Personal Markets system. Vision 2000 is a new n-Tier Client-Server system that automates the processing of insurance claims. Worked is performed in C++ on IBM AIX servers and Windows clients. Since part of the system is in production to over 3,000 users across the country and part of the system just beginning development for later releases, the full software development lifecycle is supported. Lead effort to redesign and reimplement the entire Claim Creation Rules (decides how many and what types, such as Liability, No Fault, etc, of claims are created) and Claim Owner Rules (automatically determines the correct Representative that will own the claim).  Managed four development engineers and was responsible for all technical decisions of the project.
  • Developed automated program to process payment errors. Processing of payment errors was a labor intensive, manual process. I conceived of , designed, and implemented an automated solution in C++ that routed corrective information to the payment originator via the in-house workflow system.
  • Developed an internal Web site, all in HTML,  for the Production Support Team.  This frame-based site allowed for easy access to a host of information ranging from frequently asked questions, to important phone numbers, to example source code.
  • Provided expertise and mentoring in advanced Object-Oriented techniques to development staff. Tools in use: RogueWave Tools.h++, DCE, Encina, Continuus
Aug 98 - Nov 99 Fidelity Investments Boston, MA
  • Developed programs in Perl under Linux to perform analysis of raw market data (directly from a market feed). Also developed C++ programs to do automatic, distributed performance testing and analysis of new products being developed within Fidelity.
  • Principle role on the architecture definition team. Defined an entirely new, enterprise-wide, distributed processing system for handling Real-Time market pricing data. A major issue on this project was insuring adequate performance. To alleviate this concern, Team345 (two of us were on this project) designed and implemented high performance simulation in C++  targeted to Sun's Ultrasparc architecture running Solaris 2.6 on multi-processor hardware. The focus of this effort was strictly on the distribution and communication aspects of the project. Underlying communication protocols of this effort were multicast UDP and TCP.
  • Distributed processing was achieved through the use of Tibco's middleware, The Information Bus (TIB). An Object-Oriented isolation layer was designed and implemented in order to wrap the Tibco 'C'-only API.. This not only decoupled the application from future third party changes, but also presented a tailored interface specific to the local domain.
  • Reviewed existing requirements, developed a design document, produced C++ code, and provided extensive testing for the system. Most of the software developed was communication specific (i.e. messaging, synchronization, UDP). However, market feed handlers and client application simulations were also produced. Some market data analysis tools were also created in Visual Basic.
  • Tools: Solaris 2.6, Sun SparcWorks C++, RogueWave Tools.h++, MS-Visual Basic and Excel Basic, UDP datagram sockets, multicast, TibCo financial suite including ciServer, TIC, API, and tibRouter+.
Oct  98 - Mar 99 SmartLynx, Inc LondonDerry, NH [part-time]
  • Used Flex and Bison to implement a complex "Model Reader". Models were electrical engineering designs from vendors such as HP or Ansoft. This reader, implemented in C++, read in existing designs into SmartLynx's Object Model for eventual export into another tool
  • Engaged part-time/working off-site to add reference counted smartpointers to the existing C++ Object Model. Re-worked entire existing Object Model to remove circular references, remove methods that were not proper for certain classes, and cleanup the inheritance hierarchy. Work was performed under Visual C++ 6.0.
Oct  97 - Jul  98 OneWave Inc. Watertown, MA
  • Created the Object Model (in Rational Rose) for the MAPIT/PPA system.  This system was a sales analysis tool for the Oil Drilling Industry that operates worldwide on distributed Win95 and WinNT4.0 laptops.  These laptops communicate with a centralized UltraSparc Server that provides common access to worldwide data.
  • Three tier architecture which used VB5.0 for the presentation layer, ATL/COM for connectivity to the VC++5.0 functional layer, and Rogue Wave DBTools for connection to the data layer.  The data layer was either local in which case Personal Oracle 8 was used, or the data was remote and CORBA was used to connect to the master Oracle database.
  • Lead the effort to develop a truly platform independent code base.  The same source code was utilized for Win95, WinNT, and Solaris; merely different makefiles are required.  Extensive use of Design Patterns contributed to this achievement.
  • Acted as Technical Team Lead (TTL) of fourteen developers to bring in this application on schedule and budget.  As TTL I was responsible for all technical aspects of the system.  This includes the full suite of activities from insuring compliance to coding standards to complex synchronization issues.
Mar 96 - Sep  97 Litlenet LLC. Lowell, MA
  • Project Architect for Litlenet's End User Web Storefront and Fraud Screening Service.  These are layered applications on the Litlenet application framework.  The Web Storefront provided backend services for Credit Card processing, order fulfillment, order settlement, and fraud screening.  These services were reachable via custom software development or via plug-ins to commercial electronic commerce software such as Microsoft's Commerce Server.
  • Responsible for the design and implementation of an application framework for Electronic Commerce backend services.  This common framework forms the backbone for all of Litlenet's electronic commerce products.  Software executed on a distributed set of ten Sun UltraSparcs running Solaris 2.5.1.  All services hosted on this network were transactional in nature.  The system requirements were driven by a need for high scalability, complete fault tolerance, and support for both real-time and long-lived transactions.
  • Implemented entirely in C++ and made extensive use of many Rogue Wave classes (from tools.h++, net.h++, DBtools, internet.h++) as well as many Design Patterns (bridge, singleton, strategy, mediator).
  • Inter-process communication (IPC) built upon middleware from Tibco.  This messaging software supports true reliable IP broadcast (1 to N) semantics as well as queue (1 of N) semantics.
  • Lead a team of six to develop this application framework.
  • Objects were persisted in an Informix database and the User Interface was provided completely in Java using IONA's Orbix to connect to the server-side C++ objects.
  • All software developed in accordance to Rumbaugh's OMT augmented via Jacobson's Use Cases, however, we used the UML notation.
  • Trained in Rational Rose by Rational
Nov 90 - Mar 96 Sanders, a Lockheed Martin Co. Nashua, NH
  • Software Architect for the RF Subsystem of the F22 Electronic Warfare Suite.  This system included real-time environment sampling of RF Data, proprietary digital signal processing algorithms to extract signals of interest, and Kalman Filtering for correlation of data over time.  Effort resulted in a thorough understanding of the System to Software Engineering relationship, which was written up and published by Lockheed in 1994 (see Publications).  Acted as Cost Account Manager with Scheduling, Staffing duties.
  • Devised a system-wide synchronous processing approach to what is inherently an event-driven, asynchronous system; approach was modeled in i-Logix's Statemate tool, which allows for model execution and performance prediction.
  • Over three hundred System Level requirements were decomposed into over one thousand software requirements suitable for implementation; utilized the Software Productivity Consortium's ADARTS real-time systems/Object-Oriented methodology.  Each software requirement contained both functional and performance characteristics.
  • Bi-directional requirements traceability to higher level specification was supported via automated tools
  • Multi-processing real-time system distributed over 19 processors (10 Intel i960s, 5 Motorola 68040s, and 4 specialized DSPs) grouped into two clusters, running VRTX and custom Real-Time OS's.  The two clusters were linked via FDDI.  Total development of over 180,000 lines of real-time code.
  • Trained in OMT by Lockheed Martin Advanced Concepts Center
Jun 87 - Oct 90 Lockheed Sanders   Nashua, NH
  • Lead a team of ten software engineers that developed the Integrated Sensor Management software for the YF-22A
  • Designed the overall architecture of this completely asynchronous, interrupt-driven system.  Interfaced with various other avionics suppliers to define and negotiate interfaces.  These interface decisions had major impact on overall architecture as they regulated the location of specific software functionality.
  • Rigorous, formal software development process followed.  Object-Oriented Requirements developed using Project Technologies (Shlear/Mellor) OOA supported by Cadre Technologies' Teamwork.  Object-based design/implementation used Shumate's Layer Virtual Machine/Object-Oriented Design (LVMOOD).  Inspection process and Unit Testing performed on all software modules.
  • Over 30,000 lines of Ada code executed in Real-Time on a distributed set of six processors
Jan 86 - May 87 Sanders Associated Inc.  Nashua, NH
  • Designed and implemented Situation Awareness software that was part of the INEWS program performing Multisensor Data Fusion.  The Situation Awareness software calculated the threat level of approaching hostile aircraft based on algorithms developed to determine lethality and intent.
  • Utilized Booch's Object-Oriented Design (OOD) techniques for design.
  • Implemented in Ada, targeted to seven distributed Sun workstations (68020) running the VRTX Operating System, following rigorous development process of design/code walkthroughs and extensive unit testing.
  • Designed and implemented interprocessor communication software using sockets (over TCP/IP) in the C language
  • Design was Real-Time, fault tolerant, and reprogrammable
Dec 85 - Jan 86 UNISYS Corp, Waltham, MA
  • Designed Real-Time Control Software for the North Warning System - a series of remote, unattended radar stations on the northern Canadian border.
  • Allocated System-Level Functional Specifications to Lower Level requirements suitable for implementation by a major subcontractor (ITT)
  • Implemented Radar Station Control software (to control diesel engines, monitor temperatures, monitor fire sensors etc.) in the C programming language

EDUCATIONAL BACKGROUND
Sep 84 - May 89 Northeastern University College of Engineering, Boston, MA
Masters of Science, Computer Systems Engineering
Sep 78 - May 82 Trinity College, Hartford, CT
Bachelors, Computer Science, Mathematics, Economics - Honors: Cum Laude


PUBLICATIONS
Feb 94 Considerations on the System Engineering / Software Engineering Boundary
    1994 Joint Lockheed Corporation Systems/Software Engineering Symposium, Cape Canaveral, FL
Oct 92 Application of Statemate to DoD Software Requirements Analysis using the RTSA Methodology
    First Annual i-Logix Users Group Meeting
Jan 91 Object-Oriented Requirements Analysis in Practice: Experiences from the INEWS Program
    Lockheed Software Symposium, Sunnyvale, CA

PROFESSIONAL AFFILIATIONS
Java Community Process (JCP) Member
New England Java Users Group (NEJUG)
Java Lobby
Software Contractors Guild