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 experience in a broad range of Java technologies since 1998. Key skills include ability to design and implement practical systems, and to communicate technical information to peers and non-technical individuals.
Skills:
Languages: Java, SQL, REXX, Ada, PC-Assembly, C++, C, Pascal, BASIC
Java: Spring, JUnit, JMock, Maven, Ant, generics, collections, reflection, i18n, classloading
Rich Client: Swing, JavaFX, JFace, SWT, Batik, SVG, JNLP/WebStart, MVC pattern
Dynamic Modules: OSGi, Felix, Equinox, Eclipse plugins, Spring-DM for OSGi
Distributed: Rio, Mule, JavaSpaces, JMS, RMI, Tomcat, EJB, JSP, Servlet
Operating Systems: Windows, Linux, BeOS, DOS, OS/400, OS/2, MUSIC/SP
Applications: Eclipse, BIRT, Jira, Confluence, Bamboo, FishEye, Crucible
Architectures: Android, Sharp Zaurus, AS/400, WaveNet, Atari Jaguar
Experience:
-
Car-Cast – Open Source
Contributor – July 2010 to present
-
Worked with developer and a small team to improve Android application. Helped organize project, fix bugs, refactor source. Used Android SDK, emulator, and hardware devices.
-
BJC HealthCare – Richmond Heights, MO
Technical Specialist – January 2006 to present
-
Worked with an agile/scrum team to develop a variety of kiosk UIs, web applications, 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.
-
MyBJC.org: Added capability for patients to search for and connect with their doctors. Improved delivery of medical reports via XSLT. Developed reporting process and documented how to generate new reports via BIRT.
-
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 projects by setting up Bamboo builds and Maven and Eclipse usage guidelines.
-
Worked with individual team members on tricky problems. Mentored developers as needed.
-
jfx.wikia.com – Technology wiki
Contributor/Moderator – May 2007 to present
-
From May 2007 to March 2008, contributed technical articles, created and enforced community structure. Since March 2008 performed administrative tasks to preserve site integrity.
-
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