| 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., Londonderry, NH (part-time, then full-time)
- Role grew into becoming Vice-President of Engineering for a development staff that grew to 18.
- Prepared quarterly presentations to the Board of Directors
- 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/ full-time, then part-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 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 was
100% Java (although several interfaces transport XML), and ported to several
operating systems.
- Architected, designed, and
implemented scheduling code and algorithms that control 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 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 made use of
Java EJBs for persistent storage, and a high-performance in-memory database
(written for this project) for short-lived objects.
- 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 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
|
| 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 869 |
- |
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
|