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
|