Francis T. Griffin, Jr.
** *** **** ****, *******, ME 04062 ***@**********.***
Summary of Qualifications
** ***** ********** ** *** Chief Architect for the Select Business Solutions NOMAD/Ultraquest product line
Extensive knowledge of Java Enterprise Environment (JEE/J2EE), with emphasis on server-side technologies such as JNDI, JAAS, EJB 1.x/2.x/3.0, JCA, JTA, JMS, and JDBC
In-depth experience with Object-Oriented Design and Development
Extensive knowledge of Linux/Unix and IBM z/OS systems and architectures
Strong expertise in the design and implementation of enterprise components which can be reused extensively in the 3-5 year project timeframe
Strong expertise in designing architecture and coding guidelines which allow automated modifications to existing code and templates
Excellent mentoring, communication, and presentation skills both in-house and with customers
Education
Regis High School: High School Diploma
Rensselaer Polytechnic Institute: B.S., M.S. (Mathematics); first in department, GPA 3.94
Technical Skills
Languages: Java, C, Shell, Fortran, PL/I, COBOL, z/OS assembler, i86 assembler, PL/SQL
Technologies/Tools: Servlets, WebServices, SOAP/WSDL, EJB 1.x/2.x/3.0, JDBC, SAX/DOM, XML, XSL(T), JFC/Swing, JavaMail, JavaHelp, JNDI, JAAS, JMS, JTA, CVS, Ant, Spring, Tapestry, DNS, Postfix, Sendmail, SMTP, LDAP
Operating Systems: Linux various, Unix various, Windows various, z/OS, z/VM, OS/2
Application Servers: JBoss, Websphere, Tomcat, Jetty
Networking: TCP/IP, SNA/SDLC, VPN, firewalls, VTAM
Professional Experience
Select Business Solutions, Trumbull CT: September 1980 - February 2009
Director of Systems Architecture and Design (1994 – 2009)
(employer name under NDA at present): June 2009 – August 2009
Contract assignment to write and present on film for network broadcast various Information Technology subjects, e.g. Basic and Advanced TCP/IP Networking, Basic and Advanced Security Topics, XML and Related Technologies, Fundamentals of Encryption, Service Oriented Architecture.
Recent/Current responsibilities:
Evaluated new components and designs to be used to bring current JEE technologies to bear on existing legacy products
Provided "seed" project designs to other developers and reviewed their final designs
Served as technical mentor to a group of about a dozen senior (20+ years) developers working in both JEE and legacy z/OS technologies.
Acted as a consultant to senior management and Marketing/Sales on technical issues
Sat on the company's Advanced Technology Advisory Board, which met monthly to educate and advise executive management on the subject of new technologies and their impact on our products, present and planned. This board had 12 members chosen from our worldwide talent pool; I was the sole representative from our division and one of three from North America
Designed and personally implemented or directed the implementation of new product components and extensive product enhancements
Produced extensive and detailed documentation of product designs and implementations at several levels, so that senior management, Marketing, Sales, and Development all had what they needed to know explained at a level suited to their needs
Selected Achievements:
Designed and personally implemented a JEE scheduling framework for application requests. This framework allows applications to divide their work into units which are scheduled for execution across a loosely-coupled network of EJB containers. The underlying dispatching method is JMS, and the application units have extensive options as to how each is synchronized with the others, e.g. "I can't run until unit 3 is done, but I can run concurrently with units 2, 5, and 7". There is a common Entity EJB point of coordination for all units, and extensive logging and administration tools to allow those suitably authorized to view that status of all units, even to watching their log entries remotely as they are created.
That framework will be the underpinning of all of the company's future JEE projects that use EJB.
Designed and personally implemented a pure-Java datastore mechanism which allows developers to write potentially huge volumes of data using a familiar Java stream paradigm, and have that data backed in a variety of datastores (flat files, Entity EJB columns, JDBC database columns) on a "rolling" basis, i. e. if you get an error (no more space) on one datastore, the access method flips seamlessly to the next one. Does wonders to reduce the amount of CRUD-type boilerplate developers have to worry about when wanting to stash data securely. Comes with an EJB-based directory of all "files" and the actual locations where the data is stored, so that other apps can read the data back seamlessly. Datastores are controlled via site- or application-specific configuration files, so that customers can reorder or change the datastores at will, without source changes.
Designed and personally implemented support to allow a legacy z/OS assembler product to run a Java Virtual Machine as a subtask, so that new function in the product could be written in Java. The C application that controls the JVM supports an API which allows the legacy product to inject method calls into the JVM. It also contains extensive native JNI code which allows Java classes I wrote to access the legacy product's variables, data structures, and files. This was the first step in migrating the legacy product code base from assembler to Java, began in 1997, and is still ongoing.
Extended the above support by designing a custom datastream which allowed the "captive" JVM to run on another host, with communications between the legacy client and the JVM using TCP/IP rather than shared memory and OS task synchronization.
The legacy product is a 4GL reporting tool, which had support for using data from some selected same-host SQL databases using their proprietary call-level interfaces. I built upon the above infrastructure to allow the product to obtain data from any JDBC-compliant database by coordinating with a Java component in the captive/remote JVM which accessed the database via JDBC