CRAIG M. DOREMUS
28 Black Point Road
New Gloucester, ME 04260
Phone: 207-926-5122
e-mail: craig@maine.com
World Wide Web: http://www.maine.com/users/craig/cresume.html

Objective

A position in Internet or Intranet application development, especially using Java.

Technical Summary

  • HARDWARE: Intel-based PC's, Macintosh, Unix-based servers
  • SOFTWARE: Rational Rose, JDeveloper, Visual Age for Java, Visual Cafe for Java, Eclipse
  • OPERATING SYSTEMS: Windows 95 & 98, Windows NT, Windows 2000, Windows XP, Macintosh OS X, Linux, Solaris, DEC UNIX, MS/DOS
  • WEB AND DEVELOPMENT TECHNOLOGIES: Apache Web Server, Weblogic, Websphere, OC4J, JBoss, Java servlets, Java Server Pages, JSP Tag Libraries, Struts, Portlets (JSR-168), Enterprise JavaBeans, Java Swing & AWT, CGI using Perl, JDBC, JavaScript, XML parsing using SAX and DOM, XSLT, Active Server Pages, CSS, HTML, JUnit, Apache Ant, Log4J, Web Services using Apache Axis.
  • LANGUAGES: Java, Perl, PL/SQL, xBase
  • DATABASES: Oracle, MySQL, Postgresql, Visual Foxpro, SQL Server
  • DEVELOPMENT METHODOLOGIES: Object Oriented Analysis and Design, Rational Unified Process, Extreme Programming.

Work Experience

3/2005-Present: Senior J2EE Application Developer with Hannaford Bros in Scarborough, Maine.

10/2001-3/20005: Principal Consultant with the Northern New England branch of Keane Inc in Scarborough, Maine. I am part of a team of Java developers working on iterative development of large applications using J2EE technologies including servlets, EJBs, XML and XSLT. Our projects use an iterative development methodology that closely follows the Rational Unified Process.

Project work done at Keane includes:

  • Lead design and development of a file exchange service while on assignment at Visa/Inovant in Portland, ME. Design of the project employed Rational XDE and implementation involved use of LDAP, PGP and FTP technologies in a J2EE environment. The project was delivered on time and practically defect free.

    An email sent to Keane by the Visa/Inovant office manager complementing my efforts on this project resulted in my receiving a Keane K-Pin award for outstanding client service.

    Subsequently, I was selected to work as a developer on an upgrade to the system where I lead design and development of Java classes that hooked into an FTP server to control the file transfer process. As part of this project I created a JUnit test harness that mimicked the FTP server and allowed me to test my Java classes on my desktop without having to deploy them remotely to the real FTP server, thus significantly speeding up the development and debugging process. I also developed an Ant built process for the entire project.

  • Technical lead for business services development on a J2EE application for the Department of Human Services of the State of Maine that keeps track of nursing home patients eligible for state and federal aid.

    My design for the main application pages employed the Template Method pattern to abstract common persistence functionality into a base class. In addition, I created an Ant target that generated most of the source code for these pages. This design cut the business services development time by more than half of its original estimate, and resulted in code that is very easy to modify and extend.

    Although the application is server based, it is required to be usable standalone on a laptop. I designed a module to synchronize laptop applications with the server when the laptop is hooked into the network. This module used the Strategy pattern with a controller class that invokes individual synchronization processes using Java reflection, making it easy to add new strategies in the future.

    I was also charged with mentoring the work of two other developers including scheduling their work and participating in design and code reviews.

    My successful work on this project resulted in two separate bonuses for my efforts.

  • Developer on a project to create a new software infrastructure for the Bureau of Motor Vehicles of the State of Maine using J2EE technologies.

    I was charged with the initial design and development of the motor vehicle registration system, which is the most complex process done at the BMV. My successful initial work on this part of the system resulted in my promotion to technical business services lead on my next project.

    I developed a build process using Apache Ant that fully automated the J2EE application build and deployment process to Oracle's OC4J. My Ant build file contained a target to automate a twice-daily build that included source-control check out, creating a build label, source code archive, and FTPing the Enterprise Archive (ear file) to the deployment server. This build eliminated overtime work for the configuration manager, who previously ran the build manually. I was given an internal award for completing this project.

    Created a program to automatically generate source code for Java classes that contain data from database lookup tables, and an Ant build to automate regenerate the code when new data was added to a lookup table.

  • Involved in a small team that developed an internal application to track data requirements for GUI screens (web pages) used for other development projects.

10/98-10/2001: Internet Software Developer with VIA Inc (formerly New England Internet Services) in Portland, Maine. I am one of a team of eight web software developers using a variety of technologies, but concentrating on server-side Java on Solaris and Linux. Project work done at VIA (NEIS) includes:

  • Worked on redevelopment of a large web site using content management solutions from Documentum using XML and XSLT. Part of this project involved deployment of two J2EE web applications that tracked press releases and email campaigns using JSP, servlets and Enterprise JavaBeans.
  • As the lead developer for VIA's intranet, I created various applications such as an in-out board, phone list and email forms using Java servlets, JSPs, JSP tag libraries, XML parsing and EJBs that include a password-protected administrative interface to update the applications.(Here's an article I wrote on this project.)
  • As part of a team of developers that created a negotiation application for a major dot-com startup, I administered the in-house Oracle database and made significant contributions toward the data access API (written in Java). I also developed a JavaScript library used for data validation.
  • Java servlet that collects survey data and allows for secure retrieval of the data as a comma-delimited file.
  • Java servlet to book seminar registrations. The interface, which also uses ASP, can be used for multiple seminars with the same servlet.
  • Applet that simulates an economic theory programmed using Java Swing libraries (View screenshots).
  • Refurbished ecommerce site of shoe manufacturer G.H. Bass using Active Server Pages technology.

4/98-10/98: Web Developer with MacImage of Maine in Portland, Maine. This work involved web enabling a database written in Filemaker Pro and planning for porting it to Oracle using PL/SQL and Java.

10/96-4/98: Web Developer with Narrate Health Care World in Falmouth, Maine. I was primarily responsible for creating a database application that allows hospital administrators to query their inpatient records using an Oracle 7.3 database and an Oracle 2.1 web server. This work requires knowledge of PL/SQL, HTML, JavaScript, Java and CGI scripting. I also do various database and UNIX administration functions as required for the on-line service. Click here for a short on-line demonstration of this work.

4/95-10/96: Database Programmer/Analyst for the Public Health Resource Group in Portland, ME. At PHRG, I queried large health-care-related databases to analyze the health status of a community. The work involves extensive use of Foxpro programming and the SQL language. Data utilized includes birth records, death records, US Census data, employment statistics and hospital discharge records.

1/95-present Freelance World Wide Web Consultant. I have created a number of interactive World Wide Web sites using my skills in HTML, C programming, Perl, UNIX, JavaScript and Java. For more details including examples of my work go to: http://www.maine.com/users/craig/Consult.html.

5/95-6/95: Part-time computer trainer. I taught webmaster classes at MaineStreet Communications in Gray, Maine. This course involves basic HTML, UNIX and other skills necessary to maintain a Web site at MaineStreet, an Internet service provider.

8/90-4/95: Staff Writer for Sunday Sun-Journal, Lewiston, Me. As a staff writer for this 46,000 circulation newspaper, in addition to writing general assignment stories, I specialized in computer-assisted reporting on government, health-care issues and the environment. My experience encompasses analysis of issues, and occasional spot news coverage.

Computer Training

Participant in a week-long workshop on "Gang-of-Four" Object-Oriented Design Patterns taught in Prague, Czech Republic by Bruce Eckel and Bill Venners in May, 2003.

Week-long course on Object Oriented Analysis and Design taught by a certified Rationale instructor in April, 2001.

Semester-long college courses in Object Orient Analysis & Design (University of Southern Maine), Java Programming (USM), Systems Programming in C (USM), BASIC/advanced DOS and Computer Repair. Additional training in Foxpro programming and dBase IV

Education

B.S. (Biology) State University of New York at Oneonta (6/75).
M.S. (Environmental Engineering) Rensselaer Polytechnic Institute (6/78).
Additional graduate work at the University of Rhode Island (Oceanography).

Selected Professional Projects

Contributed an Administrative Portlet Application to the Apache Pluto project. Pluto is the reference implementation of JSR-168, the Java Portlet API. My administrative portlets automate the deployment of custom portlets to Pluto's portal. It has been included in the 1.0.1-rc3 release of Apache Pluto (view source code) Subsequent to this contribution, I was elected to be a committer on the Apache Pluto project.

Co-presented a talk on Java Portals and Portlets to the Maine Java Users Group in May, 2004.

I am a manager of the Maine Java Users Group and maintain a site on Sourceforge that hosts a number of Mainejug open-source projects. One of these projects is a Struts application used on the Mainejug website to keep track of Mainejug meetings and speakers. This application has an adminstrative interface for adding/updating content that is stored in a Postgresql database.

Presented a talk on Tomcat 4.0 to the Maine Java Users Group in February, 2002.

Developed a procedure and documentation to integrate the Open Source Enterprise JavaBean server JBoss 2.2 with Visual Age for Java 3.5 (View the documentation). This work was done prior to the widespread availability of remote debugging via JPDA.

Developed an Intranet database application to query up to 15 million hospital records using PL/SQL (Oracle), HTML, Java and JavaScript. This application uses over two dozen query filters on separate dynamically generated HTML pages, has the ability to save and recall old queries, and employs a JavaScript window that shows current query filters selected. It allows a hospital client to compare themselves or their physicians with peer hospitals or do intra-hospital comparisons. In the fall of 1997, work started on a Java-based, client-side applet to be implemented in 1998. Click here for a short demonstration of this application. In the early stages of application development, I created an HTML reporting and graphics package that supplanted a Visual Basic plug-in module then under development and saved months of development time.

Created a customer tracking database application in Visual Foxpro that allows for the import of customer leads and ordering information from the Internet and the creation of custom e-mail lists. This app uses a combination of Java, HTML and CGIs written in Perl and C to create data that is uploaded to the Visual Foxpro database. Click here to view a screen shot of the application.

Compiled data to show $85 million dollars in welfare payments in Maine were misspent during a seven year period.

Used a database of campaign contributions and state vendors in Rhode Island that showed most of the governor's campaign contributions came from people doing business with the state. The governor later served a prison term for campaign ethics violations when it was discovered that he was funneling state contracts to his campaign contributors.

Home page

Valid XHTML 1.0!