11806 Easthampton Dr. Tampa, FL 33626-2647
Home: (727) 490-7363
Cell: (727) 463-6061
• Object-oriented design. • Software Architect: Problem solving and Analysis.
• WebSphere administration. • DB2, MySQL administration
• Relational Database Design. • All stages: Design/Implement/Document.
• Over 23 years of experience. • Project Leadership.
B.A. - Mathematics, Indiana University, Bloomington, IN (1980)
Bright, self-starting and creative individual with many completed systems to his credit, a guy who can put the pieces of the system together. Has succeeded at all aspects of software engineering from high-level design to detailed debugging, from user-interface to firmware, from Shell scripts to assembly.
Extensive: Windows (95/98, NT, 2000,XP), UNIX
Moderate: Aix, Linux
Expert: Java, C/C++, XML, Object Pascal/Delphi, Assembly.
Moderate: Shell scripts (bash), perl, awk
Extensive: Java2, J2EE, JDBC, JFC/Swing, JAXP, DOM, JavaMail, JNI, JMS, JSP/Model 2.
Moderate: MFC. AWT. Struts.
Moderate: WebSphere 5.0, Geronimo 1.0, Jakarta Tomcat 5.5, WebLogic 5.1
Extensive: UDB. DB2.
Moderate: Sybase. MySQL. Oracle. Access. Paradox.
IDE: JBuilder X, Stylus Studio, ER/Win, eclipse, WebSphere Studio AD
Bean library: JClass, StudioJ, JGL, JBCL, JFreeChart bean.
Profiler: JProbe, OptimizeIt, DevPartner for Java
The rest of this résumé describes what I have achieved throughout my career, most of which has been as a consultant. I started consulting early on in my career because I found that it provided a wealth of experience and intellectual challenge not generally available in one position. However, since I am now raising a family, I prefer to find a more permanent position working mainly with Java. To that end, I have abbreviated the résumé by including only positions from the last few years.
America II Corp. St. Petersburg, FL (8/02 to present)
· Java, JavaMail, JSP, XML/XSLT, DB2, JDBC, WebSphere, Tomcat, Aix, Linux, groovy.
· Ported major web application from WebSphere under Aix to Tomcat under Linux.
· Administered seven SuSE Linux servers (using YaST2 and Webmin).
· Built a fast rule-processing engine to sift through e-mail messages, detach data files from some, forward some and delete others, according to certain rules. Designed database tables to hold the rules.
· Wrote Java program to upload hundreds of data files of various data formats to a central inventory table.
· Designed and implemented program to update the DB2 rulebase via an XML rules file.
· Designed and implemented Swing mail client used to examine messages and mark individual messages for deletion or rule processing.
· Designed and implemented several utilities to store and retrieve XSL files from either database or via HTTP, according to rules specified in an XML configuration file.
· Wrote printer driver for barcode printer.
· Wrote Java code to print simple pages and route PostScript output to appropriate Aix & Linux print queues.
· Using Delphi, wrote an ActiveX control to print pages from within a web page without invoking the print dialog.
· Analyzed workflow and clarified UI specifications for web-based warehouse inventory system.
· Gathered requirements, wrote specifications and designed a major rewrite of our database update process. New version contains a web-based UI to administer the process and view its status and history.
· Installed, configured and administered WebSphere and IBM HTTP Server (Apache) v2.0.
· Wrote various Java utilities to capture system and user data; then wrote awk programs to extract data into CSV form so that it could be graphed and analyzed.
· Debugged and maintained thousands of lines of existing rookie Java code.
· Installed and maintained CVS repository, as well as WinCVS clients.
· Instructed and mentored less experienced colleagues.
· Planned migration from DB2/WebSphere to open-source, clustered environment.
· Wrote Windows program in Delphi and C that appeared as an icon in the Windows taskbar which used the contents of the Windows clipboard to perform a search of our parts database. Also implemented a toolbar plug-in for Internet Explorer that works the same way.
IBM, Watson Research Center Hawthorne, NY (9/00 to 2/02)
· Using Java/Swing and Delphi 5.0, wrote various GUI programs to display the status of dynamically allocated, linux-based web servers in a server farm. Used JNI, JDBC, JAXP (XML, XPath) and JMS. Application contained several JTables and JFreeChart (available on SourceForge); featured several frames, popup menus, custom Javabeans, background images, and a variety of Layouts (approx. 18,000 lines of code).
· Using C, modified a daemon that compiles TCP/IP statistics from the /proc pseudofiles on a periodic basis.
· Using Java & C, modified an Apache plug-in to compile other statistics related to web server load.
· XML to DB conversion: Wrote Java program to read an XML file representing a Service Level Agreement (SLA) and write its contents to a DB2 database (using JDBC, of course).
· XML to DB conversion: Wrote Java program to read an XML template file mapping an XML data input file to a database, allowing us to populate our database quickly (involved extensive use of XPath). The result is not unlike a procedural version of XSLT.
AMERICAN SKANDIA Shelton, CT (9/99 to 8/00)
Implemented both client-side and server-side Java in order to let Skandia customers access data and execute financial transactions through the web.
Client-side Java (using Swing classes)
· Wrote applet to query a database of internal and external contacts
· Wrote Calendar applet (similar to Outlook's calendar)
· Created several (quick and dirty) HTML mock-ups of web applications for prototype purposes.
Server-side Java (using XML, HTML, JSP/servlets)
· Elements of this architecture are:
Workflow object A dispatch servlet that handles navigation and interaction between web pages so that individual pages do not directly reference each other.
JSP Responsible for look of each web page.
Page object Populates the web page; contains HTML objects.
Command objects Used by the page objects to pass messages to each other (indirectly).
· Developed an XML solution that allowed Skandia's Internet team to design database query pages in XML to produce various reports. The XML instructions were transformed using XSLT to produce an HTML query page. Queries were transformed (again using XSLT and Java) to produce SQL. Oracle database returned results in XML format, which was transformed again to produce HTML results. These results were presented one page at a time and could be sorted by any column
· Managed myself on several projects and others on two projects. Wrote one project plan (with lots of help).
J.P.MORGAN & CO., INC. New York, NY (11/98 to 6/99)
In order to reduce license costs and improve staff mobility, J.P. Morgan commissioned a study of Java usage and Java tool selection. For this I wrote an RFP describing the effort and guided it through the approval process. After proposals were received from four vendors, I summarized their presentations, and coordinated the evaluation process and wrote the evaluation document for board approval.
During the course of the engagement, I supervised the selected vendor (staff of 2), assembled and coordinated Java developer's group (53 members) to shape the effort, helped devise and execute a survey of Java development across the bank (including offices in New York, London and Paris).
Compiled criteria by which to judge various categories of Java development tools. Procured copies of Java development software in each category and evaluated those tools. Presented recommendation to board for approval.
Among the evaluated tools were:
IDE: Visual Cafe Enterprise edition 3.0, Visual Age for Java 2, JBuilder 3
GUI Bean library: JClass, StudioJ, Formula 1 for Java (spreadsheet)
Profiler: JProbe, OptimizeIt, DevPartner for Java
IBM, Watson Research Center Yorktown Heights, NY (4/97 to 10/98)
Using JBuilder and VisualAge, wrote various Java programs to support web-based systems management.
· Designed DB2 database to hold precise descriptions of desktop PC systems, software updates and rules which were used to determine which updates applied to such systems.
· Wrote Java/JDBC program to evaluate rules stored in the database via a rather interesting SQL query.
· Using JBuilder, implemented the prototype of a UI tool used to create and browse the content of our rule/update database. Also wrote simple programs to initialize the database using JDBC.
· Using Delphi 3.0, designed a rule editor to graphically display the logical expressions that make up rules.
· Assisted in the writing of several detailed, lengthy project proposals, as well as design documentation.
· Several Windows applications using Delphi, Visual C++ (MFC) and Visual Basic, as well as desktop databases such as Access and Paradox.
· Using Visual C++, designed and implemented the communications portion of two different PC to Host computer interfaces. Design was characterized by the object-oriented state machine at its core.
· Various Unix projects using Solaris and SCO Unix, C and Shell scripts.
· Design and implementation of several MS-DOS GUI programs written in C.
· Design and implementation of several embedded systems projects written in various assembly languages and C.
· Wrote C Coding Standard, an entertaining document that fully described (in 44 pages) preferred C programming techniques and style.
· Published invention disclosure for Trench Detection algorithm.
· Designed real-time executive used on four simulations to maximize software reuse. Its chief advantage: it separated time-critical tasks of simulation (such as event detection) from processes suitable for background processing (such as changing the state of the interface being simulated).
· Software Manager assisting director of R&D and supervising six programmers.