- Twenty two years of strong experience in system design, testing, documentation, implementation, and maintenance working with large and small teams.
- Ability to absorb technical knowledge quickly, then relay it to both technical and nontechnical people.
- Ability to work with nontechnical clients to establish and document system requirements.
- Practical design and development experience with Java, J2EE, JMS, Ajax, WebServices, Oracle, MySQL, Windows, Linux, HTML/CSS and Google Web toolkit.
- Nine years of hands on experience as a Java software architect designing new systems and implementing system conversions and mergers.
- Operating Systems: Android, Windows NT, 2000 and XP, Linux (Red Hat, Mandrake, Ubuntu)
- Database: Oracle, MYSql, Mongo, SQLServer, DB2, SQL, PL/SQL
- Technologies: J2EE (EJBs, JSP, Servlets), JMS, Web Services, WebSphere, WebLogic, Ant, Maven, JavaMail, JAI, JNI
Project Architect/Senior Developer
May 2010 - May 2011
Environment: Windows, SQLServer, Mongo, Spring, Hibernate, Quartz, OpenSymphony, Drools, IText
Cypresscare provides administrative and cost reduction services to the insurance industry. I implemented several new subsystems including electronic submission of claim reimbursement requests via third party billers, a pend/transmit subsystem to allow the Cypresscare cost reduction network to process cost reductions from other networks and, a new line of business for total electronic processing of chiropractic claims. Additionally, I work with other groups to supplement their programming needs and have worked with the systems that cost and price Cypresscare’s product lines and modification of tax reporting when the company was merged to form Healthcare Solutions. One of my ongoing projects is on sunsetting an old invoicing system which runs as a scheduled job and provides a simple web UI for ad hoc invoice printing. The functional aspects of the invoicing system are being brought under the current service framework and expanded to provide data exporting services which will allow the company to cut the cost of invoicing by outsourcing the printing of the invoices. While the services layer, which provides functionality to all of the enterprise, has been my main focus, I have also worked with the implementation group to develop and implement workflows for the new subsystems. The development groups are small and form with different people for each project. As a senior developer I work with everyone from business analysts to financial analysts to implementation groups. I design and implement systems and also help track down and fix bugs in existing code or enhance existing code.
Senior Architect/Server-Side Development Manager
August 2005 - December 2009
Environment: Windows, Linux, Java, JDBC, MySQL, SQL, XML, UML, GWT, JMS, Axis, Servlets, JSPs, Tomcat, JAI
4Access delivers POS and RDC terminal check imaging and transaction data acquisition. The terminal acquires merchant payment authorizations while the server systems are responsible for securing, archiving and dispensing the transaction data and images. The server systems also provide web based UI applications for managing the configuration of the terminal and viewing of the transaction data. This was a soup to nuts architectural and development effort with all components currently in place and functioning on a 24/7 basis. I designed and developed the architecture, built most of the framework layer and then other developers were brought in over time to fill out the team and complete the rest of the work. The initial project was for the transaction data connection point and UI, which was in beta in just under 4 months. My contract was extended to include the other components. The server systems are ready to support internationalization should 4Access achieve it's goal of foreign clients.
There are seven major components of the system:
The system is built entirely on an open source framework. It supports deployment as an ASP or non-ASP system and any part, in combination with the framework, can be deployed independently of any other part.
- a framework which supports accessing and modification of data on which the other systems are built
- a UI for managing terminal configurations
- a UI for accessing transaction data
- an always on connection point for downloading applications and configuration information to the terminals
- an always on connection point for terminals to upload their transaction data
- a data feed system
- a system for accepting data from terminals that were not developed by 4Access
There is also an interim terminal inventory system that I developed. The purpose of the inventory system was two fold. The company has not yet decided on an asset management system and this fulfilled the need of tracking terminals for warranty purposes and I was able to demonstrate the capabilities of GWT to upper management. The application is built using the existing server framework so I was also able to demonstrate the cost effectiveness of converting our existing UI applications to GWT.
The project for accepting data from non-4Access terminals originated from a client who was so pleased with our internal archive system that they wished to have all their devices upload to our system. This system now accounts for approximately 22% of the transaction volume and the percentage is continuing to increase.
Bank of America
March 2004 - June 2005
Environment: Windows, Unix, JMS, JDBC, J2EE, JSP, Servlets, Borland AppServer, Tomcat, SOAP, Oracle, SQL, PL/SQL, XML, XSL, UML
I was originally brought in as a contractor to design and deliver interface software for legacy systems from a recently acquired company. The legacy data needed to be seamlessly retrieved via an application and API used by the bank and the bank’s clients. I completed this project ahead of schedule. I implemented a high speed image transcoding system using JAI. This allowed the bank to drop two external image vendors and provided a unified means of image transcoding for the bank and its subsidiaries. As a corollary to this project I was on the image standardization team which defined the image and transcoding standards applied across the bank for the federally mandated Check21 initiative. I also worked on merging a new data source into a batch image retrieval application. Use of the new data source enabled the bank to more quickly retrieve images by determining which data warehouse or other archive the images reside in. This project involves using JMS and SOAP for inter-warehouse communications. I also designed and worked on a new implementation which resolved a deadlock and failover issue with an archive that has unreliable connections.
January 2004 - March 2004
Environment: Windows, Unix, JMS, JDBC, J2EE, JSP, Servlets, SOAP, WebSphere, WebLogic, Oracle, SQL, PL/SQL, XML, XSL, UML
I was brought on as a contract architect and developer for the various applications for which Intech provided development support.I worked on performance tuning various aspects of these applications including GUI response times and better management of cached data using weak-references. I added new user functionality to a back end process for converting BAI data to XML.
- Performance tuned J2EE applications
- Designed and implemented enhancements for various Web/J2EE applications
Senior Software Architect
MetaVante (formerly Brokat Financial Services)
June 2001 - December 2003
Environment: Windows, Unix, JMS, JDBC, J2EE, JSP, Servlets, SOAP, WebSphere, WebLogic, Oracle, SQL, PL/SQL, XML, XSL, UML
Investigated and developed a prototype using SOAP/WSDL and UDDI as an internal architecture to allow acquired Java and J2EE applications to interface with existing applications rather than rewriting some or all of the applications and interfaces. I also worked on tuning our consumer application. I reduced average execution time in our reporting system from 310 seconds to approximately 9.8 seconds. I refactored a set of communication classes into two classes, eliminating redundant development work and removing approximately 150 classes from the application. This also reduced load on the EJB server. I also researched and architected solutions for existing J2EE applications including multi-vendor database code compliance and enhancing the performance of XML solutions. Architected a solution to allow the application to run over twinned databases and reduced the estimated conversion time from 1600 man-hours to 960 hours and lead the conversion team to complete the conversion in under the estimated time. Developed framework for legacy and external systems to interact with J2EE applications running in an EJB server. Developed a JMS, vendor-agnostic framework to support real-time, asynchronous and synchronous communications between J2EE applications and external or legacy systems.
- Developed a framework providing legacy systems safe, reliable interface to J2EE applications
- Developed a JMS framework which allows J2EE applications real time event processing for applications running EJBs
- Ongoing research into new technologies including EJB2, SOAP/UDDI, Connectors, and other Java technologies
- Performance tuning for J2EE applications
Pathfire (formerly VNI)
July 2000 - June 2001
Worked on a project to deliver syndicated media between facilities that digitize the media and broadcasters. I used factories and patterns to simplify implementation of scheduled enhancements. The application has a GUI which interfaces with the processing level that I worked with. The processing level provides database and communication support. I interfaced with network, multicast, always-on, and intermittent connections using custom protocols, RMI and JMS. I worked with Sybase and use JDBC to query and modify data locally and remotely. Additionally, I was involved in the design and creation of an internal Web site and reports used by our support teams and management. The project pulled together disparate
home grown reports written in different languages, getting the different teams to agree on content and format and implementation of a site that can support additions on an ad-hoc basis.
- Designed and developed database connection pool manager, query servlets and HTML for managing external customer access to system data via our Web site. This project involved JDBC, Java and HTML.
- Developed a custom proxy server to throttle communications between external programs that required bandwidth across the satellite backhaul (communications pipe).
- Existing work involves development of a new application to transmit syndicated media from encoders and broadcasters. The project is using various Java technologies including RMI, JMS, and JINI.
Checkmate Electronics, Inc.
May 1997 - June 2000
Wrote and certified modules for performing check, check truncation, credit, & debit transactions. Developed and documented EBT transaction and check truncation module for a dial POS terminal. Designed, developed and documented display scripting for CM2200, a digital touch screen POS terminal. Designed and implemented loyalty Web presentations for a touch-screen kiosk system as well as an online transaction retrieval system which included retrieval of signature information. Developed and deployed the company's first JavaPOS application including SSL for transaction transmission across the Web and JNI interfaces to POS terminals.
- Designed and implemented scripted display module for CM2200, a touch screen POS unit.
- Developed and certified application using Ingenico hardware.
- Designed and developed Web-based loyalty and retail applications using an in-house designed and developed touch-screen system.
- Designed and deployed JavaPOS applications on several server and terminal platforms.
August 1996 - April 1997
Environment: Windows NT, Windows 95, Windows 3.11, Novell, C++ (MFC 4.0), SDK, C, ODBC, Oracle
- Quickly assimilated large amounts of existing code in order to begin coding the requests.
- Developed in both C++ and C.
- Researched and resolved several long-term bugs including sleepy printers.
Business/PC Systems, Georgia Department of Corrections
March 1995 - July 1996
Environment: Paradox, Pal, Windows, Windows 95, Novell, WANs, PowerBuilder, barcode technologies
- Developed interim programs to meet state legislation requirements.
- Performed on-going maintenance/development of statewide systems including OMS (Offender Management System) and C&CWH (Care & Custody Central and Warehouse Systems).
- Developed a network-aware office ledger program and property tracking system.
- Worked with LAN and WAN management in bringing systems to WANs and Windows 95 environments and developing standardized, statewide configuration and distribution methodologies.
E-SCORE, Servidyne Systems, Inc.
March 1993 - March 1995
Environment: C, Paradox, Pal, Windows, Novell, Lantastic, PCs, barcode technologies
- Implemented a life-cycle program that stabilized the product and made management confident enough to begin international sales.
- Developed product specifications and technical and nontechnical documentation.
- Supervised contract programmers and did general product maintenance, development, and support.
- Coded, tested, and modified existing systems.
SPECSystem, The American Institute of Architects
June 1992 - February 1993
Environment: C, DOS, Oracle, Windows, Novell, Lantastic, PCs
SPECSystem is a knowledge-based query system which automates the process of writing specifications for architects. In addition to ongoing product maintenance, including consolidation of four different versions of the code, I added new, client-requested features, including an export facility to commercial word processors and a native page-range print facility. When the development team was moved to Washington, D.C., I was kept on as a contractor continuing to develop and maintain the software. I was also in charge of several proprietary systems that supported the main product. I provided technical customer support and worked with hardware and network service vendors to resolve customer problems.
- Developed of product specifications for enhancements and modifications
- Set scheduling priorities, deadlines, and met required delivery dates
- Coded, tested, and modified existing systems and enhancements
- Worked with clients and vendors to resolve technical difficulties
NORMS, Southern Electric International
February 1991 - February 1992
Environment: C, JCL, DOS, OS/2, PCs, IBM 30xx
- Was involved with on going product design and modifications
- Provided cost/time estimates for development and QA work
- Prioritized and scheduled development and QA work
- Trained technical writers and sales staff in system use
- Provided written documentation to technical writers for new enhancements
co-author - C Programming A Modern Approach Solutions Manual
W.W. Norton & Company, August 1996
The text book, C Programming a Modern Approach, was published in February, 1996 by W. W. Norton & Company. Working with the author, I wrote programming solutions for this text book. Solutions available through the Internet beginning in September, 1996.
co-author - Java Programming From the Beginning On-Line Instructors Manual and Solutions
W.W. Norton & Company, 2000
Working with the author, I wrote programming solutions and co-authored the Instructors Manual for this text book. Solutions and manual available through the Internet beginning in early 2001.
Southern Polytechnic State University, Continuing Education Instructor
- eBusiness Solutions in Java - topics: XML, Hiberante, Spring, JavaBeans, Google Web Toolkit, Android
- Java Language Training: Both as an introductory class for beginners and a "new language" class for experienced programmers wishing to update their skills.
Programming with J2EE, Government Technology Conference (2005): 2 day technical lecture and Q and A session on the implementation of J2EE technologies in government facilities.
Association of Computing Machinery: Periodic lecturer on technical and real world business issues facing software developers