This document demonstrates some of my technical skills

The process of converting this document to other formats uses:
  • A custom JavaScript module system (on both the server side and client side), developed by me: see http://code.google.com/p/slime/,
  • The client-side DOM to build a client-side XML (XHTML) representation of this resume, inlining all the CSS styling information in a cross-browser way,
  • AJAX to upload the client-side XHTML to the server,
  • E4X on the server side to process the client-side XHTML to optimize it for import into Google Docs,
  • A custom server-side JavaScript/Rhino HTTP client, as well as a custom interface to the Google Data APIs (this document particularly uses the ClientLogin API and the Google Documents List API) to create a Google Doc from the representation in your browser and download it in the format you select,
  • The Google App Engine Datastore API to store the representation downloaded from Google Docs with a temporary key,
  • A custom JavaScript-based HTTP server with a REST API to send the key back to the client as JSON and allow client-side JavaScript to evaluate the JSON and redirect the browser to a URL which requests the temporary document.

The process currently takes a bit of time after clicking to execute all the steps above. I plan to improve it by using Comet to update the status on the client as the server completes each step.

Click to generate and download this document in other formats. It has been tested in Internet Explorer 8, Firefox 6 and Google Chrome.

This document demonstrates some of my technical skills

The master copy of this document is the HTML version hosted on the web, at davidpcaldwell.com. Other formats are automatically generated.
The process of converting this document to other formats uses:
  • A custom JavaScript module system (on both the server side and client side), developed by me: see http://code.google.com/p/slime/,
  • The client-side DOM to build a client-side XML (XHTML) representation of this resume, inlining all the CSS styling information in a cross-browser way,
  • AJAX to upload the client-side XHTML to the server,
  • A custom server-side JavaScript/Rhino HTTP client, as well as a custom interface to the Google Data APIs (this document particularly uses the ClientLogin API and the Google Documents List API) to create a Google Document from the representation in the browser and convert it to each supported format.

This document demonstrates some of my technical skills

This document was automatically generated from the master copy, which you can view at http://www.davidpcaldwell.com/. The process of converting this document to other formats uses:
  • A custom JavaScript module system (on both the server side and client side), developed by me: see http://code.google.com/p/slime/,
  • E4X as part of the build process to preprocess the XHTML version to remove the UI and prepare it for import into Google Docs,
  • A custom JavaScript/Rhino HTTP client, as well as a custom interface to the Google Data APIs (this document particularly uses the ClientLogin API and the Google Documents List API) to create a Google Doc from preprocessed XHTML and download the Google Doc in multiple formats.
I am happy to answer questions about this process and/or to provide code samples.
A version of this document is available in other formats.
Static HTML - no external CSS, no JavaScript, no user interface (.html) PDF (.pdf) Microsoft Word (.docx) OpenDocument Text (.odt) Rich Text Format (.rtf) Plain Text (.txt)

Summary

Senior consultant with 15 years of experience and very strong software development, training, and coaching skills available to work in Rhode Island and the Boston area or remotely. Main software development skills include high proficiency in creating applications and frameworks using Java and JavaScript for a wide variety of environments, including the server, the web (server-side and client-side), the desktop, and mobile devices. Candidate had second career as political consultant during which he did occasional software work and acquired unusual leadership and teamwork experience.

Objective

Provide mentoring, training, and/or design and development services to clients wishing to make the transition to object-oriented development or raise the quality of their existing object-oriented investments. Special interest in the Java platform.

Experience and Accomplishments

Lead Developer, 1-800-MY-APPLE

Led the development of software that answers the phone when customers call the Apple Store in the United States, Canada, the United Kingdom, and Ireland.

Lead Developer, Finovate Conference Fall 2013 Best of Show

Developed award-winning application to illustrate how financial services companies can provide better telephone-based support to their customers. (Coverage from: BostInno)

Oracle-Certified Java Enterprise Architect, Java Developer, Java Programmer

Have been the lead architect on over a dozen Java-based projects, using a wide array of technologies.

Speaker, JavaOne Conference

Authored a presentation titled Patterns for Integrating Java and JavaScript Technology: Tales from the Front Lines and presented it to a large audience at the 2008 JavaOne Conference, the major industry conference for Java developers.

Committer, Mozilla Foundation

One of the three project leads on the Mozilla Rhino project, a JavaScript interpreter written in Java which is bundled with the Java SDK and many other products. Author of the E4X support for XML processing bundled with Rhino as well as the software used to verify conformance with the JavaScript specification and the Firefox JavaScript implementation, known as SpiderMonkey.

Java Instructor (Oracle-Certified), various schools

Taught Oracle (then Sun)-developed curriculum (SL-275), as well as custom-developed curriculum using Object-Oriented Programming in Java as the primary textbook.

Authority on Java/Cygwin

Cited in the Apache Ant reference manual, and often consulted by developers with questions about Cygwin, Java, and JNI.

Political Consultant

Recruited, motivated, trained, and coached volunteers and staff with various organizations advocating on behalf of the LGBT (lesbian, gay, bisexual, and transgender) community.

Los Angeles Gay & Lesbian Center, LGBT Mentoring Project, and other organizations

Worked in a consulting role with the staff of several organizations interested in doing much more effective political work. Primarily responsible for identifying and mentoring promising current and potential staff members with campaign organizations in order to improve their leadership and analytical skills. Other roles ranged from managing ten paid field staff working to win an election surrounding marriage for gay and lesbian couples in Maine to managing a campaign to verify student provisional ballots in Bowling Green, Ohio.

Heights Families for Equality

Ran campaign in which Cleveland Heights, Ohio became the first city in the country to pass a pro-gay ballot initiative. Organized a massive field campaign by recruiting and training over 1,000 volunteers, resulting 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. Responsible for dealing with the campaign's vendors.

January 1900 - May 2199

Clients and Selected Projects

Proficiencies

Java

APIs

  • JDBC
  • JNDI
  • JNI
  • JMX
  • JavaMail
  • JAXP
  • Java Serialization
  • Java reflection

Mobile Java/J2ME

Profiles

  • Android
  • CLDC
  • CDC

Tools

IDEs

  • NetBeans

Source Code Control

  • CVS
  • Subversion
  • Mercurial
  • Visual SourceSafe
  • ClearCase

Code/Distribution Management

  • Ant
  • Maven
  • Nexus
  • Hudson/Jenkins
  • JIRA
  • Bugzilla

User Tools

  • Business Objects
  • OpenOffice

Architecture

Protocols

  • HTTP
  • SMTP
  • POP
  • IMAP
  • FTP

Architectures

  • SOAP
  • REST
  • AJAX (XMLHttpRequest)
  • Comet (HTTP server push)

J2EE and Server-Side Java

  • Java Servlets
  • Enterprise Java Beans (EJB)
  • Java Server Pages (JSP)

Application Servers

  • Weblogic
  • Websphere
  • JBoss
  • Tomcat
  • Google App Engine

Design

  • Design Patterns
  • UML

Data Formats

Relational Databases

  • Oracle, including PL/SQL
  • Postgres (PostgreSQL)
  • Apache Derby
  • SQL Server

XML

  • DOM
  • SAX
  • E4X

Google Data APIs

  • Google Calendar API
  • Google Tasks API
  • Google Documents List API (Google Docs API)
  • Google Maps API

Education

Case Western Reserve University B.S. Computer Science, May 1995 Minor: Political Science