Joseph Gamache - Software Engineer & Architect
jgamache@team345.com
www.team345.com
(603)424-0696
Extensive experience as a software engineer and architect with an emphasis on system architecture, Java J2EE, distributed computing, and database systems.
COMPUTER SKILLS
Languages/Tools:
Java, C++/C, Visual Basic, Perl, RegExps, Microsoft SOAP Toolkit (2.0 and 3.0), Systinet Web Applications and Services Platform (WASP), IBM WebServices Toolkit, Flex, Bison/Yacc, HTML, JBuilder, Borland Application Server, Together, Linux, Rational Rose, Ant, XML, JMS, J2EE, JSP, Apache/Tomcat, Oracle 8/9i, PostgreSQL, WSDL, CORBA, CVS, SourceSafe, ClearCase
Disciplines:
Web Services, SOAP, Struts, Design Patterns, Software
Architecture, Object Oriented Software Engineering, Real-Time Software Design,
Distributed Multiprocessing (multithreaded), Software Architecture, Messaging
Systems (IP Multicast, etc), Application Frameworks
EXPERIENCE
British Telecom Co, Braintree, MA (7/02 - present )
Team345 Consultant
· 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. Both Session beans and container-managed Entity beans were used throughout. 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 used for booking conference calls. Used JDeveloper and the OC4J (Orion) Application Server to house the web services.
MetraTech Corp., Waltham, MA (4/02 - 7/02 )
Team345 Consultant
· Used Web Services to make a legacy Corporate Taxation package available to the MetraTech main product. A WASP (Systinet Corp) SOAP server was implemented on Solaris to provide access to the legacy application. A WSDL definition of all the interfaces was created to provide easy access from the Windows NT and Windows 2000 clients. These clients used Microsoft’s SOAP 3.0 ToolKit. Scalability and automatic SOAP Server failure was implemented and tested. Also researched other SOAP implementations including Apache/SOAP.
Blackstone Computing, Worcester, MA (3/00 – 4/02 )
Team345 Consultant
· Designed and built a JSP-based solution to web-enable the end users interface with the compute farm system. The JSPs execute inside Tomcat 3.2.1 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 is started, if another is detected on the same host or network, then any other such application that is started goes 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 is 100% Java (although several interfaces transport XML), and ported to several operating system: Linux, Solaris and Windows on various platforms.
· Architected, designed, and implemented scheduling code and algorithms that control usage of the assets on the compute farm. This code is all in Java, makes extensive use of EJBs and multicast messages. Further, the entire application is multi-threaded both as it is event driven and for performance reasons.
· Designed and built EJB components for the compute farm server running inside Borland's J2EE Application Server, and the associated client API. This server makes use of Java EJBs for persistent storage, and a high-performance in-memory database (written for this project) for short-lived objects.
· Java specific experience: JDKs 1.2.2, 1.3.0, 1.3.1, EJBs, JTA, JMS, and XML parsing (DOM/SAX)
· Tools: Borland JBuilder 5, Java 1.3.1, RedHat Linux 7.2, Solaris 7 and 8, Apache Jakarta Ant, Apache Jakarta Log4j, Apache Xerces XML parser for Java, Borland Visibroker for Java (CORBA), Team345 IP multicast package (see below) .
Team345, NH (6/01 - present )
Team345 Consultant
· Designed and co-developed with other Team345 a Java IP multicast publish-subscribe package ( http://www.team345.com/downloads.html). This package has been released under a GPL-compatible license.
· Designed and developed with other Team345 members, a transport layer for a forthcoming internet product. The transport layer is an implementation of the Java JMS specification using the JavaMail API. The product is meant to abstract the particular delivery mechanism from the transport interface.
· Tools: Inprise JBuilder Foundation, Sun JDK 1.3, JavaMail, JMS specification, Linux 6.1.
Liberty Mutual Portsmouth, NH (3/99 – 3/00 )
Team345 Consultant
- 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 allows easy access to a host of information 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
Fidelity Investments Boston, MA (8/98 - 11/99 [part-time from 3/99])
Team345 Consultant
- 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+.
SmartLynx, Inc LondonDerry, NH (10/98 - present [part-time])
Team345 Consultant
- 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.
OneWave Inc. Watertown, MA (10/97 - 7/98)
Independent Consultant
- 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.
- Lead an activity during System Integration which introduced Quality Works (QA Partner) to perform automated test activities including regression testing.
- Overall system consisted of approximately 120 classes.
Litlenet LLC. Lowell, MA (3/96 - 9/97)
Senior Systems Architect
- 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 provides backend services for Credit Card processing, order fulfillment, order settlement, and fraud screening. These services are 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 executes on a distributed set of ten Sun UltraSparcs running Solaris 2.5.1. All services hosted on this network are transactional in nature. Thus, the system requirements are 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 makes 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
Sanders, a Lockheed Martin Co. Nashua, NH (11/90 - 3/96)
Software Systems Architect
- 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
Lockheed Sanders Nashua, NH (6/87 to 10/90)
Software Designer/Team Leader
- 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
Sanders Associates Inc. Nashua, NH (1/86 to 5/87)
Senior Software Engineer
- 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
UNISYS Corporation, Defense Products Group Waltham, MA (12/85 to 1/86)
Senior Member Engineering Staff
- 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
PROFESSIONAL ACTIVITIES
Publications:
Considerations on the System Engineering /
Software Engineering Boundary, 1994 Joint Lockheed Corporation Systems/Software
Engineering Symposium, Cape Canaveral, FL, February 1994
Application of Statemate to DoD Software Requirements Analysis
using the RTSA Methodology, First Annual i-Logix Users Group Meeting,
October 1992
Object-Oriented Requirements Analysis in Practice: Experiences
from the INEWS Program, 1991 Lockheed Software Symposium, Sunnyvale,
CA 1991
Capability Maturity Model: Critical Member of Sander's Team that was rated SEI Level 3 in 1994
* Wrote Software Operations Manual to define the
software development process that is now used as template across all of Lockheed
* Interviewed as Systems Engineer during Formal Dry-Run
* Interviewed as Systems Engineering Manager during actual assessment
* Instituted many new processes and procedures into Sanders over the
years, example: Hardware Test Software
Software Reuse High Performance Team: Four-year member (1991-1995) of Software Reuse HPT at Sanders
Trained in Software Productivity Consortium's Synthesis
Domain Analysis Methodology
Implemented Company-wide Reuse Library using WAIS and the WWW
Developed and instituted a Managed Opportunistic Reuse Approach
Teaching:
* Taught the Sander's in-house course on Ada for
four years
* Taught an in-house course on Object-Oriented Software Engineering
EDUCATION
Northeastern University College of Engineering Graduate
School Boston, MA
Degree: Master of Science, May 1989
Major: Computer Systems Engineering
Trinity College Hartford, CT
Degree: Bachelor of Science, May, 1982 Major: Computer Science,
Mathematics, Economics - Honors: Cum Laude
