David P. Caldwell

3406 Bradford Road
Cleveland Heights, OH 44118
Mobile: 216/965-3690
E-mail: inonit@inonit.com

Skills

(Bold denotes expert-level skills.)

Penske Logistics

Enterprise Development

Nov 2004-Nov 2006
Developed software to support and track nationwide fleet using GPS-enabled cellular phone application.
Client had a prototype-level Java application that forwarded requests from an Oracle database to a mainframe system using Attunity Connect. Client wished to replace the application with a server application that would serve incoming requests from cellular phone and provide a single view of application state to web users and to the cellular clients by interacting with various relational databases and mainframe tables.
  • Developed J2EE/servlet replacement for standalone Java daemon/ASP pages to serve incoming requests from J2ME cellular phone application.
  • Developed J2ME application with bar-code scanning and GPS capability to help automotive customers track shipments. Target device was a Motorola cellular phone with a bar-code scanning attachment from Symbol.

America Coming Together

Ohio Campaign Headquarters

Sep-Oct 2004
Developed support system and provided support services for statewide political campaign maintaining a state-of-the-art database tracking information about individual voters.
Client was a 527 political campaign organization tracking thousands of pieces of information about every Ohio voter. The organizers running the field campaign had two major needs: the ability to systematically measure their activities, and the ability to dynamically generate lists of voters given particular sets of criteria. The data regarding voters were maintained in dozens of tables in a Microsoft SQL Server database. Their existing front-end system gave inconsistent results, and their existing IT staff support had very slow turnaround time.
  • Enhanced an HTML template system and developed an SQL preprocessor which generated appopriate series of SQL statements to generate hyperlinked reports containing campaign data, using a JDBC driver to connect to the database. The SQL preprocessor allowed the inclusion of other files with parameters, etc., for the generation of extremely complex SQL statements optimized to execute quickly against a database under very heavy load.
  • Used the SQL preprocessor to make it possible to develop lists and counts of voters using arbitrary criterion 10-100x faster than client's existing mechanisms.

Associated Software Consultants

May 2002-Jul 2004
Aid software company's transition to the Java platform from various other platforms.
Client had a PowerBuilder-based application used by companies involved in secondary markets for mortgages and a Wang Basic-based application used for loan origination. A port of the loan origination system had been outsourced to an Indian company, with uneven results. Client wanted to ease the transition of client staff to the new platform and develop a strategy for porting the PowerBuilder application.
  • Trained and mentored client staff in Java programming, at various levels and using various techniques. The loan origination team had beginner-to-intermediate Java programming skills, while the secondary market team had zero-to-beginner level skills. Since the client used older technologies, offered much training on other skills (e.g., for many client staff it was the first time working with a relational database).
  • Helped advise management on technical direction and navigating the vast interconnected web of terminology which has sprung up around the Java platform (and the ancillary vocabulary around XML).
  • Evaluated vendors purporting to do an automated port of the PowerBuilder application to the Java platform.

Heights Families for Equality

Jul 2002-Nov 2003
Made Cleveland Heights the first city in the country to pass a pro-gay ballot initiative.
Campaign's data was managed through a web-based and LAN-based system using various combinations of Microsoft Excel, PostgreSQL and XML for data storage, Java for application logic, and HTML, PDF, and flat file reports for data presentation.
  • Was the campaign manager(serving as a volunteer) for a history-making effort to circulate petitions to create a municipal domestic partnership registry in Cleveland Heights. Responsible for dealing with the campaign's vendors and organizing a massive field campaign by recruiting and training over 1,000 volunteers. Field campaign resulted in one-on-one conversations with nearly half the voters in Cleveland Heights using only volunteers and raising $85,000. Recruited and trained leaders to assume volunteer leadership roles in this effort.
  • Developed all of the campaign's software to specifications developed in collaboration with data entry volunteers, consumers of reports, and the remainder of the campaign strategy team.Met tight deadlines in order to produce either reports or models of the electorate in time for the campaign to act on them. All software had to be developed expeditiously, given the demands of another paying client and a near-full-time volunteer job as campaign manager.
  • Have continued to participate in follow-up actions by the organization, including serving on the nine-person campaign committee opposing Ohio Issue 1, likely to appear on the November 2004 ballot statewide.

Jones, Day, Reavis and Pogue

Application Development Core Platform Team

Jan-Oct 2001
Initiative to transition all business applications in the country's third-largest law firm to a web-based interface through an Intranet portal.
Portal services were provided by iPlanet Portal Server. Java servlet/JSP-based applications were written and deployed on various servers, including Oracle 9iAS, Tomcat, and Allaire JRun. An EJB-based persistence layer also ran on JRun, using Cocobase's object-relational mapping product.
  • Lead architect for Java-based applications. Primary adviser to management on project technical direction.
  • Designed, developed, and documented custom application framework in order to make it easier for junior developers to write applications using the JSP Model 2 architecture. The framework abstracted out the various system components in order to prevent application code from being directly coupled to the systems infrastructure. It also provided an isolation layer which made it unnecessary for application developers to learn the Servlet API.
  • Primary technical interface for staff from client's vendors when developing integration strategies between their products and other components of the application platform.

Realty One

Insignia Virtual Realty

Jun 2000-Jan 2001
Moved E-business B2C and B2B web site from proof-of-concept stage to production. Web site functioned as an automated marketplace for consumers and real estate professionals contemplating residential real estate transactions.
System was written using a custom-designed application framework developed for the client in conjunction with the consulting arm of a major software company. For presentation, the framework used XML/XSLT as well as a template mechanism which was similar to JSP or the Enhydra project'sXMLC. Business logic was embedded in objects using a variant of the GoF Command pattern which then were plugged into a finite-state-automaton-based framework for flow control. An Oracle 8 database was used for persistence, and TOPLink was used to map Java objects to Oracle tables.Apache/JServ on Solaris was used as the server platform, executing servlets to implement the application.
  • Completed development on most difficult portion of the system as part of team assigned to it. Worked closely with the QA team in order to assess requirements. Applied common object-oriented refactoring techniques on the pre-existing code in order to reduce code volume and provide easier maintenance for the bug-fix team.
  • Project lead for performance testing from the technical staff.
  • Primary architectural troubleshooter in final stages of project as sustained testing caused unexplained errors.

The Boeing Company

Commercial Aircraft Group

Mar-May 2000
Redesigned and re-architected prototype-quality inventory tracking system in order to facilitate future expansion and features. System is used to monitor equipment in the CAG's worldwide offices and in the possession of mobile professionals.
System began as applet running in Netscape Communicator 4.x and ended as Java application using JDK 1.1. System also had a reporting portion implemented using Java servlets.
  • Guided client decisionmakers in the strengths and weaknesses of Java and serveral associated and competing technologies (e.g., CORBA, RMI, EJB, servlets, JDK 1.1/1.2/1.3), and their applicability to applications used by the Commercial Aircraft Group.
  • Built flexible architecture based on object-oriented design in order to make future application maintenance less expensive. Re-engineered the existing prototype (which had a procedural design) from the ground up.
  • Achieved software reuse by building a middle logical tier which both the servlets and the application used for accessing the system's data. Previously, the two applications had separate methods for accessing the database, leading to increased maintenance and co-ordination costs.

The Sherwin-Williams Company

Environmental, Health, and Regulatory Services

Sep 1999-Mar 2000
Migrated Visual Basic-based client-server application to Java three-tiered architecture as part of change in department's strategic direction. System allows on-site generation of labels for client products that are compliant with government regulations in the various jurisdictions in which client does business. Label specifications are generated by department employees, which allows individual labels to be generated by field staff.
Application was implemented as a set of Enterprise Java Beans on the server, with a Swing client for the department employees and an AWT client for the field staff.
  • Implemented Enterprise Java Bean which provided services to the specification client application.Finished significantly ahead of schedule.
  • Developed package for SQL generation for use in Enterprise Java Beans, eliminating tedious hand-coding of SQL statements and accelerating project timeline significantly.
  • After completing assigned tasks, developed several modules for other applications:
    • Wrote a client-server application to handle a special case -- a completely static label which was generated on the server side in PostScript and JPEG format.
    • Wrote client- and server-side methods to handle infrastructure for the field application, including authentication, messaging and audit-oriented services.
    • Worked with another developer to refactor the external client application after it fell behind schedule and the original developer left the project.

KeyCorp

Corporate Banking Web Development

Jan-Aug 1999
Provide web-based suite of services to banking clients engaging in international trade. A previous attempt at the project had failed after 9 months; our team cut implementation time by 70% while implementing additional requirements.
Application used NetDynamics Application Server 4.1 and Java 1.1 on the server.
  • Responsible for overall architecture of 4-tiered system; coded the persistence and business logic layers (the other two were an event handling layer and a presentation layer).
  • Wrote GUI framework over the NetDynamics class library to eliminate repetitive coding, achieving 70% reuse for typical pages. Framework allowed for inheritance of visual elements between pages. NetDynamics normally binds visual elements directly to database columns; the GUI framework separated the pages from the schema allowing a multi-tiered architecture.
  • Wrote multi-threaded persistence framework which abstracted out the back-end data store from application code. Produced implementations which used an individual VM, the NetDynamics in-memory Persistence Engine, DB2, Oracle, and the host file system as back-end data stores without changing application code.
  • Helped to design object-oriented framework for generation of HTML pages which simplified maintenance requirements for static and dynamic web content.
  • Advised management on how to leverage software reuse. Wrote a paper surveying the literature in the field and synthesizing the experiences of other companies with local culture in order to produce recommendations on how to achieve software reuse on a larger scale.

The Sherwin-Williams Company

Transportation Services Division

May 1997-Dec 1998
Development and maintenance of system for freight analysis, audit, payment, and accounting. System interfaced with corporate AP and AR systems for paying vendors and internal accounting, respectively. Analysts accessed the data through the Business Objects end-user query tool. Sophisticated analyses were hand-coded.
Original system was written using a combination of C, UNIX shell scripts, and the SQR programming language.
  • Replaced 85,000 lines of code within a year, or about half of a $1.5 million system. Iteratively migrated the system from a procedural design toward an object-oriented one, while preserving non-object oriented interfaces so that the system could continue to function. Targeted code with a high defect density for migration; resulted in a dramatically lower defect density for the system as a whole.
  • Doubled number of studies which could be completed by developing a set of Java classes for doing the most common types of hand-coded studies.