My entire career has been spent in the IT arena. I have participated in the full systems development life cycle on a large number of projects, helping to take them from conceptualization to implementation. I am experienced in the management, strategic planning, design, development, testing, implementation, and maintenance of software solutions. For the last five years I've been leading Java development teams, helping them deliver projects on time.
J2EE / Servlets / JSP
Struts MVC Framework
User Interface Design / HTML
XML / XSD / DTD / XSLT
Web Services WSDP
Object to Relational Mapping Frameworks
Team Lead/Senior Java Developer
- Team Lead and Senior Developer for the Randstad Works, a J2EE Web Services application. Randstad's temporary workforce used Randstad Works to fill out their electronic timesheet. Randstad Works would then notify the customer that a timesheet was ready for approval. Once approved the timesheet would be transferred to other systems for further processing via web service calls. I was responsible for leading the team, designing and developing product enhancements to this enterprise J2EE application.
- Updated the Struts layer to add new views, and update existing views by adding new elements to the page. All presentation verbiage used the Struts resource keys and commons validation package.
- After updates to the view were complete I updated the persistence layer. All data was persisted to the database via EJBs. I handled this entire process from the create and update scripts in the Oracle database to the updates of the WebLogic and J2EE XML descriptor files.
- Updated the HR-XML schemas used by the Web Services APIs.
- Implemented the Web Services APIs using AXIS and XMLBeans depending on the application
- Provided guidance to junior developers in design, implementation, and general coding practices.
- Coordinated with the BAs to test an application at the completion of a development cycle. I also worked with the BAs to capture new requirements for future product enhancements to make sure they were technically possible and could be done in the timeframe needed.
- Performed code reviews for all Java projects release to production. Made sure all code conformed to their standards.
- Helped in the conversion of builds from ANT to Maven, and from Ant Hill to Cruise Control
Java Team Lead
- As a team lead for the Web Development group at Harland I oversaw development of the two most visible internet application used at Harland Clarke. These J2EE web sites sold checks either to the end consumer or via the teller. My responsibilities included communication and coordination with the QA, Product Manager, Support, Configuration Management, Load, and the Business Analyst groups.
- As the team lead I was responsible for researching new technologies and developing high level technical roadmaps for all our active products. By doing this we could map technology updates with upper management's strategic initiatives.
- One of those initiatives is the move from a CORBA based architecture to a SOA architecture. During this transition I was involved in the planning, design, development and implementation of Harland Clarke's SOA.
- One large project was the updating of a administration console for a custom built Siteminder replacement. This administration portlet was completely designed and developed by me. It made heavy use of the Struts Expression language taglib to make the JSP pages more readable. Many modifications were made to make portlet to have it work in this version of Liferay such as replacing the Struts Action with the PortletDispatchAction.
- I also performed code reviews to make sure both good coding practices are adhered to and no security issues were found. I used tools such as PMD and Find Bugs to highlight many benign code fragments that left unchanged would cause exceptions to security holes.
- Designed and developed changes both web applications. One application used Struts which meant designing new views and reusing existing ones where it made sense. The other application was a custom framework that used frames. Most updates needed to be presented slightly differently based on the audience, but the business logic was the same for both. One main goal was pulling out all common view business logic to a common package shared between both front ends.
- Developed custom taglibs to present data multiple applications. One taglib was used by an application called DeposiLink. The taglib keep the business logic out of the JSP and kept the JSP easy to read and update.
- Used TopLink for the persistence layer. This ORM is similar to Hibernate in that it uses an XML document map Java objects to the database.
- At Harland all the order information was stored on a mainframe. Any changes to the interfaces had to be done carefully to insure all existing processes continued to work. This was done by heavy use of JUnit to test the services. All new backend functions had to be tested like this and every required a new passed JUnit test before it could be turned over to the QA team.
- During all of this I continued to contribute detailed designs, implement new business requirements, fix defects in the current release cycle and coordinate tier three support for production issues.
For close to nine and a half year I was a consultant with Greenbrier Russel. The following projects back through 1995 have all been placements through Greenbrier Russel.
Business to Business eCommerce Web Site
As the lead developer for the Stratics application I updated the code to a more component based application. During this phase of development I added JUnit and Cactus test cases, multiply validation paths, updated to TopLink 9, updated the backend framework, and updated the application from a beta version of Struts 1.1 to the release version of Struts. I also modified the presentation view of the Administration Console to a more updated look and feel. Since updating the Stratics application I have been kept onboard a Harland to work on other project including xReporter, and the Cache flushing application. The cache flusher now clears caches at the TopLink and CORBA level on the backend, and the application level on the front end.
Technical Environment: Struts, JUnit, Cactus, XML, JSP and servlets, Java, CORBA, Informix, UML, xReporter, HTML and DHTML.
Health Care Administration Web Sit
The BenefitMall project includes Invoicing and Cash Receipts. My role on the team is developing ASP.NET/C screens to display invoicing history, Invoicing Audit Reports, Refund Request, and Cash Summary and Details.
Technical Environment: ASP.NET/C , Visual Studio Business to Business eCommerce Web Site
Technical Environment: MVC architecture, XML, JSP and servlets, Java, CORBA, Informix, UML, HTML and DHTML.
On this project, I was asked to completely switch gears and help in the development of a C and ASP.NET Web Site. I was able to leverage my Java and JSP experience to make this switch in a short period of time. The site allows insurance brokers to quickly compare quotes on insurance coverage. In order to get a quote, brokers first must input census information. My responsibility was building these Census input screens.
Technical Environment ASP.NET/C , Visual Studio Business to Business eCommerce Web Site
As a Lead Web Architect for the DeposiLink conversion project I transformed a windows based client into an internet ordering site. The project began by reviewing the current functionality of the old windows bases client and designing a web site that could easily lead a consumer through the ordering process. The backend was based on a proven CORBA/Toplink design that only read data from the database. I extended this design to allow for all the CRUD operations to be performed against the database. The last portion of the project was designing and implementing a way for the Informix database to be synchronized with the eGain system in SLC. A simple ETL process based on XML files was developed transfer store and order information between both systems. With a few feature upgrades this system is still in use today.