Lawrence M. Bates
Senior Java, J2EE Developer
[Send email to request phone number] 99-9997
Larry@LakeDoubleTake.com
Mr. Bates has over 20 years of IT experience designing, developing,
and driving software development efforts. Project scopes include
telecommunications applications, financial and hydrological modeling
tools, human-machine interface software, and implementing data sharing
strategies among various government agencies utilizing Java, J2EE and
Web Services frameworks.
Professional Experience
-----------------------
Senior Consultant, Harris Corp.
November 2008 - February 2010
-------------------------------
My first assignment was the VistA Imaging System, a system that enables
the sharing, storage and retrieval of clinical images between the
Department of Veterans Affairs (VA), the Veterans Health Administration
(VHA), and the Department of Defense (DoD). Duties included UML
modeling, Oracle 10g DDL, implementing an annotation processor, creating
WSDL and Web Service applications, deploying a Terracotta-enabled
distributed cache on a Tomcat cluster, JSPs, and porting the Ant project
build environment over to a Maven 2 build configuration.
Next, I moved over to BHIE, the Bidirectional Health Information Exchange
project. BHIE is a Java, Oracle based framework that allows clinicians
from the VA and DoD to view electronic healthcare data from each other's
systems. The above-mentioned VistA Imaging System is a vital component
that was integrated into the framework dataflow. My duties included
developing Web Services under WebLogic in order to provide a more
granular, SOA workflow approach to the BHIE middleware. The re-
architecture effort also included updating the existing code to Java 5,
improving threading and reworking the Oracle DDL to enhance performance,
introducing Spring and Hibernate technologies, and migrating the build
environment over from Ant to Maven 2.
Senior Consultant, SRA International, Inc.
October 2007 - November 2008
------------------------------------------
Developed a series of PL/SQL stored procedures in Oracle 10g for VADIR,
the VA/DoD Identity Repository project. These stored procedures, which
process input files arriving via FTP, allow the VA and DoD to more efficiently
exchange data and administer veteran’s benefits. Also designed and
developed a suite of Linux/Windows shell scripts, Java Swing clients, and
secure Spring Web Services running under JBoss in order to provide a more
user-friendly way for external actors to interact with the VADIR system.
Next, I worked on the Person Services Identity Management (PSIM)
project. PSIM provides a Java, J2EE technical solution that uses Hibernate
and Oracle to enumerate and consolidate patient demographic and medical
information into one identity management service from among the many
VA identity management database systems. My major contribution was in
eliminating a Servlet throughput logjam by implementing Message Driven
Beans and administrating a JMS configuration that turned over the
management and processing of incoming and outgoing HL7 messages from
the Servlets to the WebLogic container and the MDBs.
Contractor, Unisys, Inc.
April 2006 - October 2007
-------------------------
Designed and developed standalone Java and J2EE, EJB applications in
order to migrate various application entities of the Automated Targeting
System (ATS) over to a Java environment. The system currently employed
by DHS, Customs, is built to handle about one million messages a day using
IBM WebSphere MQ Client 5.3. I replaced some of the older "C" programs
in the application chain with J2EE apps that receive and process shipment
information messages entering the system using Message Driven Beans. As
messages are passed through the chain of heterogeneous applications, a
step-by-step risk assessment is performed by accessing data stored in an
Oracle 10g database using PL/SQL, JDBC and SQL. All relevant cargo,
manifest, and shipping information is accumulated and have database-
stored rules applied against them. Risk levels are determined, and
recommended actions, if any, are formulated and passed on to the
appropriate application in the chain for further analysis and processing.
Interim as well as final risk evaluation results are stored in the Oracle
database for other interested parties to examine.
As a result of this migration, more of the applications in the chain are
able to send and receive embedded Java Objects to and from their respective
MDB Queues. In other situations, XmlBeans 2.2.0 is used to transform
these risk evaluation result Java Objects into XML for chained applications
that expect to receive their MQ messages in XML format.
The web applications are deployed and run under JBoss 4.0.4. For the
standalone Java utilities and sandbox testing, I took advantage of other
open source technologies such as Spring 2.0, Hibernate 3.2, and ActiveMQ
4.0. All the code was written and managed within the Eclipse 3.2 IDE,
built with Ant scripts, and version controlled with CVS.
Contractor, Verizon, Inc.
September 2005 - February 2006
------------------------------
Designed and developed JSP's and Servlets to operate within the Struts
Action Framework. My efforts were concentrated mainly on Java/J2EE
development, while another team member focused his skills on CSS
stylesheets and HTML presentation. Together, we implemented a series of
dashboard web applications designed for internal Verizon use only. These
dashboard applications allowed the operator to fill out web-based forms,
submit their queries, and then review the resultant output status and
statistical reports generated by the software.
I was responsible for implementing the Action Servlet methods and JSP's
that performed the database queries, processed the returned data set, and
then routed the formatted data to the appropriate set of tiled JSP's for
browser display.
The web applications were run locally on Tomcat 4.0.6 for testing and then
deployed to a WebLogic 7.0, JVM 1.4.2 environment. Internal Verizon
database access was implemented using CEM middleware and Oracle. Code
versioning control was handled by CM Synergy 6.1, and Eclipse 3.0 with Ant
was used as the development IDE.
Java Developer, Urban Architectures, Inc.
September 2003 - July 2005
-----------------------------------------
The National Weather Service (NWS), Office of Hydrologic Development,
maintains a suite of programs that mathematically computer model
America’s river systems. The model input is based on historical data
as well as real-time uploads provided by USGS gauging stations and other
government agencies.
My project, the FLooD Analysis Tool (FLDAT), is a Java Swing application I
developed that has the ability to import and consolidate input from these
disparate data sources, allowing the hydrologist to work with differing types
and formats of hydrologic data from within one common GUI interface, in
conjunction with MySQL, JDBC, and Red Hat Linux. Other features I
implemented using the Java Swing components included an extensive set of
graphs, charts, and animation routines that showcased river flow dynamics
over time. I also developed a series of interactive paint utilities designed
to work on topographical images that allowed the user to draw and define
their own river channel characteristics. This graphical data could then be
translated, exported, and used as modeling input. This relieved the
hydrologist of having to repetitively calibrate their modeling input
parameters by trial and error.
Java Developer, Ecocys Technologies, Inc.
November 2000 - August 2001
-----------------------------------------
I was responsible for designing and developing Java client/server software
applications using JINI and J2EE technologies in order to create a suite of
distributed Web Services for LAN, WAN, and wireless end users. Web
Services implemented included Automated Workflow Processing,
Document/File Sharing, and Instant Messaging.
JINI was used to implement the networked peer-to-peer services, such as
Instant Messaging. For web-based applications, we used the WebLogic J2EE
Web Application Server, with an Oracle 8i RDBMS as the backend database.
Internet clients were delivered web pages using a variety of HTML, JSP's,
Applets and Servlets. Database data was retrieved via JDBC in concert with
EJB's, using Stateless Session Bean facades that looked up various BMP
Entity Beans to perform the SQL.
Team Lead, BancTec, Inc.
December 1998 - March 2000
--------------------------
I headed up a team of six people tasked for the Federal Reserve Bank of
St. Louis data archiving project. Developing in Java, C, and C++, the
project entailed the ongoing capture and storage of terabytes of check data
processed daily by the FRBSTL. The data consisted of check images in TIFF
and JPEG format along with the MICR data encoded on the check. This
data would then be indexed and stored on disk farms, tape jukeboxes, and
optical disks for long-term storage.
My duties as team lead included requirements analysis, system and
software design documentation, traveling to and from St. Louis to consult
with the client, assigning software tasks and performing code reviews, and
preparing and implementing an array of QA test plans.
As a developer, I was responsible for writing Java, C and C++ client/server
applications for the HP Unix, Digital Unix, and Windows NT platforms.
These applications accumulated raw check data from various remote
locations and scheduled it for phased staging and database storage using
JDBC or Informix embedded ESQL/C.
I also designed and developed the Informix database tables, schemas, and
stored procedures that were used to process, index, and store the data.
Other duties included writing a series of Unix shell scripts for cron to
perform off-hours batch processing of the accumulated check data.
Lead Developer, Commonwealth Scientific Corp.
January 1998 - November 1998
---------------------------------------------
CSC manufactures ion beam etching and deposition equipment. I was
tasked to rework all the Human Machine Interface (HMI) software. This
is embedded C code for PCM's (Programmable Controller Modules) that
interfaces with ladder logic, which in turn monitors and controls the devices
and sensors operating on behalf of the ion beam machinery. Of special
note is a rewrite I did of the robot arm controller code. The robot arm had
had a nasty habit of picking up processed wafers and then bashing them to
bits against the wall of the vacuum chamber. When a potential customer
was satisfied that this problem had been solved once and for all, they went
ahead and ordered 10 ion beam etching machines, a purchase that generated
revenues of over 10 million dollars for Commonwealth.
I also developed and maintained C++ GUI applications for OS/2 and
Windows NT that were created using IBM's Visual Age C++ and Microsoft's
Visual C++ and MFC. These client GUI applications were designed to
enable the user to visually interact with devices and sensors, providing
real-time management and control of the ion beam etching and deposition
process as it occurred. The user could issue commands to speed up, slow
down actuators, open and close gas valves, etc., all while real-time
feedback of the status of the ongoing processing was being updated and
reported back to the user via the GUI.
Contractor, GE Spacenet
December 1996 - November 1997
-----------------------------
At GE, I wrote TCP/IP, Berkeley socket C programs designed to synchronize
communications, data transfers, and message routing among the customers
of GE's SkyStar Advantage satellite network. The client/server C
applications were written to run on both the Sun Sparc and OS/2
workstations.
Contractor, Coopers & Lybrand, LLC
October 1995 - June 1996
----------------------------------
A three-person team was assembled to develop financial computer modeling
applications. These financial modeling programs were written in C for the
OS/2 platform. Synthesized IRS tax records, representing millions of
individual US tax returns, was used as a baseline. Then, by varying other
input parameters, such as expected rates of inflation, FED interest rates,
and proposed Congressional tax cuts/hikes, the software would produce
macro forecasts and predictions concerning the US economy. This tool
aided Coopers & Lybrand in formulating their overall financial strategy,
both for themselves and their clients.
Contractor, MCI
July 1994 - April 1995
----------------------
Here I joined a team of 5 MCI developers where I assisted in the object-
oriented analysis, design and development of a software system intended
to monitor the operational status of MCI's telephone network. Each node
in the network (telco switch station, mainframe) required a node-dependent
application running on it that was capable of sending/receiving queries
and/or data to and from other heterogeneous application nodes along the
route.
I was tasked to write C++ applications for OS/2 servers to process queries,
issue status and statistical reports, and interface with other application
nodes in order to verify connectivity. I also helped to develop C++, OS/2
client GUI programs which provided the user with a visual representation of
the state of the network, as well as the ability to interact with the system
in real time. For example, by pointing and clicking on a device icon, a user
could issue a command for the device to halt, download new software, and
then issue a command for the device to restart itself.
Software Engineer, KEE Systems Inc.
August 1988 - July 1994
-----------------------------------
At KEE Systems (now Sylvan Learning), I wrote CBT software applications
to provide customers computer based training, tutoring, and testing
facilities. For instance, using a combination of screen capture and original
programming, I designed and developed a self-paced software simulation
of Microsoft's Word for Windows. Individuals and companies would use this
software to train themselves and/or their staff to learn how to use the
product.
One project where I was responsible for everything (client interaction,
design, development, QA and delivery) was a Lotus-123 simulation and
testing program. It was written in C and assembly language, data and test
results were loaded from and stored to a database using Btrieve, and was
used by Lotus Corp. to verify the skill level of potential hires. It won
an award for "Testing Software of the Year" by an education magazine.
Almost all of the code was C code for DOS, and later Windows 3.0. In
those days, I had to code my own mouse pointers, keyboard and mouse
interrupts, graphical bitblts, you name it. At some point, IBM introduced
OS/2 and requested KEE to provide OS/2 versions of all of our training and
tutoring software products. I then ported all the DOS C code, perhaps
several hundred thousand lines of code, to the then new OS/2 GUI
operating system. This not only created a whole new distribution channel
for KEE and it's product line, it also helped to establish a strategic and
profitable business relationship between KEE and IBM for years to come.
Contractor, 3M Vision Systems
December 1986 - March 1988
-----------------------------
I was part of a research and development team (4 people) tasked to
explore the feasibility of creating a new 3M product to be called "Vision
Phone". A television camera was plugged into a digitizer board housed in a
PC. The current TV image could be displayed on your monitor, in black and
white, and then could be captured and saved to your hard disk. The idea
was that people could use this product to take a snapshot of an
architectural blueprint, a family member, whatever, and then send the
image over a modem to another end-user who had also purchased the
same software and equipment.
All the code was written in C for the OS9 platform, and involved intensive
pixel manipulation. I wrote paint box utilities to cut and paste sections
of images, gray scale correlating algorithms that sought to preserve and
enhance the resultant quality of the image when it was zoomed in, zoomed
out, or rotated.
Account Executive, Lynchval Systems Inc.
December 1980 - November 1986
----------------------------------------
I wrote computer programs in FORTRAN (on punch cards) in order to
analyze and valuate pension plans based on actuarial mathematics. Client
companies would send me their raw employee data containing the employee's
age, sex, date of hire and salary history. The FORTRAN program would
then iterate through the data to calculate individual as well as aggregate
future liabilities of the proposed pension plan. By varying input
parameters, such as expected rates of salary increases and differing
death and disability probability tables, each iteration would perform a
statistical analysis of the data, giving clients a range of pension plan
options to choose from.
In 1983, we began migrating the system from a FORTRAN, mainframe,
punch card environment to a PC based system ported to the C
programming language.
Education
---------
BA Mathematics, University Of Arizona, Tucson, Az. 1980
|