Patrick Allen Forhan
7219 Jackson School Rd.
Bloomsdale, MO 63627
Phone: (573) 483-3946
Cell: (573) 883-6337
Email: pforhan@muddyhorse.com
Web: http://www.muddyhorse.com/resume/
Summary:
Computer programmer with over nine years of experience with a broad range of
Java technologies. Key skills include ability to design and implement small
and large systems, and to communicate technical information to peers and
non-technical individuals. Able to adapt work style to both collaborative and
independent positions.
Skills:
Languages: Java, SQL, REXX, Ada, PC-Assembly, C++, C, Pascal,
BASIC
Java: Generics, collections, reflection, i18n, classloading,
Maven, JUnit, Ant
Rich Client: Swing, JavaFX, JFace, SWT, Batik, SVG,
JNLP/WebStart, Spring-RCP
Dynamic Modules: OSGi, Felix, Equinox, Eclipse plugins,
Spring-DM
Distributed: Rio, Mule, JavaSpaces, JMS, RMI, Tomcat, EJB,
JSP, Servlet
XML: XPath, Dom4J, JAXB, XSD, XSLT, XSL-FO
Operating Systems: Windows, Linux, BeOS, DOS, OS/400, OS/2,
MUSIC/SP
Applications: Eclipse, Jira, Confluence, Bamboo, FishEye,
Crucible, Rally, Lotus Notes
Internet Technologies: HTML, JavaScript, HTTP, CSS, CGI, SSH,
SCP, FTP, Wiki
Architectures: PC, Sharp Zaurus, AS/400, Windows Mobile, WaveNet,
Atari Jaguar
Experience:
-
BJC HealthCare -- Kirkwood, MO
Technical Specialist -- January 2006 to present
-
Worked with an agile/scrum team to develop a variety of kiosk UIs and
backend servers.
-
PatientTouch (patient-facing bedside device): Designed core
interfaces and modular design with OSGi and Declarative Services.
Implemented UI with JavaFX, including custom-built reusable components and
transition animations. Communicated with server module on an
internally-developed grid platform. Worked extensively with JavaFX
community to improve documentation and implement solutions.
-
Wayfinding (mapping and directions device): Helped to implement Batik on
the client. Created tools and data structures to parse SVG into map
data to be stored in a database. Fed map data to a graph library at
runtime (JGraphT) to find routes to destinations and build textual
directions. Created web services to fetch maps and directions to
client.
-
Worked with a small team to create the first three generations of backend
server platform, based, in turn, upon JBoss, then Mule, then Rio.
Implemented Master/Worker distributed pattern in JavaSpaces.
-
Helped administer the project by setting up Bamboo builds and Maven and
Eclipse usage guidelines.
-
Worked with individual team members on tricky problems.
-
MetaMatrix – Chesterfield, MO
Java Software Engineer – December 2004 to January 2006
-
Maintained and extended Eclipse-based MetaBase Modeler product. Customers
use this client-side product to work with data in relational and XML form
to transform and combine sources into new formats.
-
Acted as Project Lead on several subprojects to improve the Modeler with
new functionality. Wrote documentation, project plan, and led four
individuals in design, documentation, development, and testing roles.
Projects include an Advisor for Web Services modeling, and improved
functionality to support XSD Simple Types.
-
Identified and analyzed poorly-written and poorly-performing code.
Refactored and reimplementated such code as needed to bring it up to
coding and usability standards.
-
Worked extensively in Java with open-source technologies including DOM,
JFace, SWT, Eclipse Forms, and OSGi.
-
Added support for canceling long-running processes and working within
the Eclipse Jobs framework.
-
Developed JUnit tests for both new functionality and older, exposed
issues.
-
Maritz Inc. – Fenton, MO
Java Application Developer -- April 2004 to November 2004
-
Maintained Customer Incentives websites using a custom template engine
based on Java servlet API. Implemented functionality with a combination
of Java, SQL, XML, XSLT, HTML, and JavaScript.
-
Worked extensively with SQL queries and updates to access, store, and
remove data in MS SQL Server databases.
-
Used DOM, XSLT, and Formatting Objects to generate PDF reports from raw
XML data.
-
Developed Java utilities to compare known-good data to data stored in
application database that would automatically diagnose issues and make
recommendations.
-
Transentric
(formerly Union Pacific Technologies) -- St. Louis, MO
Senior Java Application Developer -- May 1998 to April 2004
-
Updated and refactored enterprise-wide J2EE infrastructure technologies,
including logging, security, and application frameworks. Responsible for
application integration, compatibility, and reliability.
-
Maintained and enhanced JSP/Servlet applications. Converted legacy
JSP/JDBC applications to JSP/J2EE.
-
Worked with Wavenet RFID hardware and software
(http://www.wavenet-rf.com/)
to add support for remote wireless handheld devices for automatic railcar
identification. Customized handheld interface, and designed backend
infrastructure to parse and process reader data. Tested system extensively
and worked closely with customer to insure proper operation.
-
Worked with SQL queries and updates to access, store, and remove data in
Oracle databases.
-
Taught 'microclasses' on topics such as XPath, DOM4J, Apache Commons,
performance topics, and programming basics and pitfalls.
-
Solely developed several stand-alone Swing applications. These tools aided
internationalization, supported database needs, and provided website load-
and unit-testing.
-
Contributed major functionality to full-featured Swing client-server
application for rail transportation management. The application was fully
internationalized, with multiple built-in tools and major subsystems
represented as loadable/unloadable modules. Responsible for developer
coordination, Swing issues, resource leaks, RMI, reflection.
-
Significant Swing experience with custom JTables, HTML support in
JTextPanes, data-driven GUI generation, input validation, and ease-of-use
concerns.
-
IBM Corp. -- Rochester, MN
AS/400 SAP port intern -- May 1997 to December 1997
-
Gained knowledge of AS/400 platform and OS/400 operating system, extended
functionality of R/3 database monitor, worked with system APIs using C.
Education:
-
Truman State
University
(formerly Northeast Missouri State University) -- Kirksville, MO
B.S. --
Computer Science
Date of Graduation: May 1998
Overall GPA: 3.69 / 4.00
-
National Merit Scholar
-
Member, Association of Computing Machinery (1994-1998)
-
Missouri Bright Flight Recipient