Shane Sarver
PO Box ***
Cardiff, CA *****
abntrm@r.postjobfree.com
OBJECTIVE To utilize “Design Patterns” in the development of distributed Java applications.
CERTIFICATION Sun Certified Enterprise Architect for J2EE Technology (in progress).
EDUCATION Bachelor of Science in Computer Science, Portland State University, Portland,
OR. June 1999. Major GPA: 3.51.
LANGUAGES Mandarin, Japanese, Spanish.
INTERESTS Physical fitness, bio-mechanics, Goju-ryu Karate-do.
Recognized as most valuable student of Northwest Karate Federation -- 1995.
Languages: Flex, Bash, Java, UML, XSLT, XSL-FO, XSL, XML Schema, XML, PERL,
SKILLS
C++, PL/SQL, C, SQL, JavaScript, HTML, SPARC Assembly, x86 Assembly.
Operating Systems: Linux, Solaris, Windows.
Databases: Oracle, MS SQL Server, MySQL, PostgreSQL.
Application Servers: JBoss, Oracle AS, Oracle Portal, OC4J, BroadVision, Orion.
Development Libraries: Cairngorm, J2SE, J2EE, J2ME, IONA Orbix, RogueWave
Tools.h++, GNU.
Development Tools: Flex Builder, Eclipse, Ant, XDoclet, MagicDraw, JBuilder,
JDeveloper, VisualUML, Make, Visio, Sun WorkShop, Vim, PVCS, CVS, Visual
SourceSafe, Rational Purify.
Java Technologies: Tapestry, Hibernate, Acegi, Hivemind, JAXB, Xerces, Xalan,
JUnit, JavaMail, Spring, Java Web Start, Log4J, RMI, EJB, Servlet, JSP, JMS, JAXP,
JAAS, JTA, JAF, JNDI, JFC, CORBA, Jini, JavaComm, JNI, Java Print Service, Swing,
AWT, JDOM, SwiftMQ, FOP, Portlet, iText, JFreeChart, Struts.
EXPERIENCE
Software Engineer. LPL Financial, San Diego, CA. (2/7/07 to 1/18/08)
Extended functionality of legacy financial system, www.lpl.com.
• Created custom JBoss J2EE business components to extend functionality of
legacy financial system and replace Oracle Forms. JAX-WS Web Services
were created to provide methods to create, read, update, and delete
(CRUD) business entities in an Oracle database. Flex and Cairngorm were
utilized to implement a Graphical User Interface (GUI) to interact with the
JAX-WS Web Services deployed on RedHat Linux.
• Sets of Oracle native array IN/OUT parameter types in Oracle PL/SQL stored
procedures were refactored into Oracle object collection types to enable
automatic transformation of n-level nested database entities to/from Java
object collections in the business tier. A persistent object base class that
heavily relied on reflection and implemented the oracle.sql.ORAData
interface
was created to automatically populate an instance of a derived Java object
with the result returned from a stored procedure call. Java objects
implementing the oracle.sql.ORAData interface could be translated
automatically to the corresponding Oracle object collection type.
• Oracle object collections were defined in XML Schema. The XML Schema
defined data validation constraints. An Ant task was used to generate the
Java persistent objects from the corresponding XML Schema definition. The
XML Schema describing the Java persistent objects was referenced within
the WSDL of a JAX-WS Web Service to validate XML input.
• Cactus test cases were implemented to provide automated testing of the
JAX-WS Web Services. JUnit assertions were used to validate expected
results from JAX-WS Web Service method invocations.
• Ant tasks were created to automate all build and deployment activities.
Enterprise Archives (EARs) were hot-deployed to a JBoss J2EE application
server over SSH. Compressed versioned distribution archives containing the
entire system, including third-party packages, were created by executing a
single Ant task. To ensure that versioned distributions were packaged with
files that were tagged release candidates under revision control, Ant tasks
were designed to checkout all software including third-party packages from
revision control, and then perform a build using the Ant XML build definition
file that was checked out from revision control to create all deliverables,
including documentation.
• Documentation generation was achieved through invoking a doclet Ant task
from within the JavaDoc Ant task to generate HTML with embedded UML to
describe the system architecture and API. The URLs in the generated
documentation referenced online documentation of all third-party packages
to provide comprehensive documentation of the entire system.
• A BASH script was created and packaged inside each versioned distribution
archive to completely automate installation of the entire system on a Unix
or Windows target.
• Trained Software Engineers how to: 1) Implement JAX-WS Web Services.
2) Use BASH shell to diagnose and fix system failures on RedHat Linux.
3) Administrate JBoss J2EE application server.
Software Engineer. Elchemy, La Jolla, CA. (7/10/06 to 11/01/06)
Created crime reporting system, www.elchemy.org.
• Designed and implemented secure web application to enable submission of
identity theft crime reports to San Diego Police Department. The generic
solution performed code generation to produce a "ready to run" system
from any given data model.
• XML Schema was used to represent the crime report data model. XML
Schema restrictions were used to ensure valid data format. The XML
Schema was translated into a Hibernate mapped JAXB relational persistence
model. XML sample report data was validated against the XML Schema.
• JUnit roundtrip test case was used to prove that the contents of a JAXB tree
persisted to a PostgreSQL database was equivalent to the original JAXB tree
that was populated with XML sample data.
• Each extended data type in the XML Schema included an attribute group of
optional enumeration attribute values. These attributes were included in the
XML sample data to enable declarative definition of Tapestry pages. A DOM
parser was implemented to evaluate the attribute values in the XML sample
data and generate Tapestry XML page definitions.
• Creation of custom Tapestry page handlers implemented in Java enabled
complete declarative creation of the application, and removed the need to
write any Java source code to extend the application. User entered data was
populated in JAXB tree XML nodes through Tapestry web form using OGNL
syntax. Custom Hivemind factories were implemented to create and
initialize session state objects from PostgreSQL database. The WAR was
deployed to a JBoss application server running as a service on Fedora Core
Linux.
• Ant was utilized for all build tasks. A doclet was invoked from within the
JavaDoc Ant task to generate HTML documentation with embedded UML to
describe the system.
Software Engineer. Verance, San Diego, CA. (3/25/05 to 6/16/05)
Created custom JBoss J2EE business components, www.verance.com.
• Designed and implemented administrative features of an application that
independently verified actual airplay of designated advertising or other
audio-visual content on a next-day basis across all major U.S. media
markets. Over-the-air broadcast, cable and satellite programs, and
campaign monitoring and verification were differentiated in the user
interface. Entity and Session EJBs within a Struts MVC framework were
deployed to an instance of a JBoss application server. Media program
delineators that were monitored were stored in an Oracle database.
• Modified log4j database handler to invoke Oracle stored procedure to persist
log entries to database. Created documentation that described appropriate
usage and integration of log4j within Struts components.
Software Engineer. VitalAssets, Escondido, CA. (1/17/03 to 5/10/04)
Created custom Oracle J2EE business components, www.vitalassets.com.
• Designed and implemented Java portlets to run on an instance of Oracle AS.
Oracle Portal configuration was performed to register these portlets to make
them viewable according to predefined security roles. PL/SQL stored
procedures were implemented to provide the portlets with an interface to an
Oracle database via JDBC. Data entry portlets were implemented using
Struts MVC framework to provide users with the ability to persist key
performance indicators about company growth to an Oracle database (RAC).
Charting portlets were implemented using JFreeChart to provide users with
a graphical representation of the data entered. A PDF converter portlet was
implemented using iText to construct a printable PDF document containing
the graphs rendered from all of the selected charting portlets displayed on a
Portal page.
• Designed and implemented a web-based database table browser using
Struts, and a combination of Stateful and Stateless Enterprise JavaBeans to
provide users with the ability to efficiently page through and view sections
of an arbitrarily chosen table in an Oracle database containing millions of
rows, without consuming an excessive amount of network bandwidth or
system memory. The core paging functionality of the implementation could
be easily integrated into existing web and GUI applications. XDoclet was
used to generate local and remote interfaces, and cached home lookup
utility objects.
• Designed an implemented Java Web Start enabled Customer Relationship
Management (CRM) system. JDBC and Borland data-aware objects were
extended to provide persistence layer to interact with tables and stored
procedures in an Oracle database.
• Trained Software Engineers how to integrate custom Java components.
• Created UML sequence, collaboration, use case, and class diagrams to
model J2EE systems.
Software Engineer. TeleCrime, Rancho Bernardo, CA. (6/15/01 to 1/11/02)
Extended functionality of crime reporting system, www.telecrime.com.
• Designed and implemented a remote printing system for the Los Angeles
Police Department. Crime reports pulled from an MS SQL Server database
were represented in XML and transported as JMS messages within a
message-driven bean architecture. The message queue destination utilized
XSLT with XSL-FO to render a PDF representation of the police report. The
Java Print Service was used to send the resultant police report to the
printer.
• Designed and implemented a web-based multi-user crime report template
creator to ensure consistent quality of generated reports. Administrative
level access granted permissions to create/edit custom HTML form
templates for specific types of crimes for multiple police agencies. User level
access granted permissions to fill out and display the contents of a
completed template. Submitted templates were verified to satisfy formatting
criteria by a servlet before being persisted to an MS SQL Server database
using an entity bean (CMP) instantiated in a JBoss application server. When
a template was requested, a servlet used JDOM to form an XML
representation of the template fields returned from an EJB. A controller
servlet was responsible for choosing the appropriate XSL stylesheet to use
in XSLT to dynamically generate HTML.
Software Engineer. CardioNow, Encinitas, CA. (9/1/00 to 4/6/01)
Extended functionality of medical image and information management system,
www.cardionow.com.
• Designed and implemented a system for logging distributed events. JMS
client acknowledgement mode was used to relay a successful commit of a
JDBC invoked stored procedure responsible for persisting an event to an MS
SQL Server database. In the case that acknowledgement failed, JDBC
transaction rollback was used to ensure that duplicate messages were not
archived. The JMS queue receiver contained an RMI enabled object to
enable dynamic modification of the message selector. An administration
Swing applet utilized a servlet bridge to view queued and archived
messages.
• Designed and implemented a tool for monitoring health of the multi-tier
distributed system. In the case that a severe event was detected,
JavaComm was used to send AT commands to a modem to page support.
JavaMail was used to send email notification to support. A Swing interface
displayed the results of pinging each hospital site. JNI was used to allow the
monitor to run as a Windows service.
• Designed and implemented a web crawler to create a keyword hyperlink
cross-reference index into the online help pages.
• Designed and implemented a command pattern framework for automated
EJB testing.
• Designed and implemented a Swing application that used EJB clients to
persist DICOM and patient files on CD to an MS SQL Server database.
• Provided Java instruction to QA and software engineers.
• Maintained Orion application server installations.
Software Engineer. Datalex/Sight & Sound Software, Portland, OR. (9/1/99 to
8/20/00)
Extended functionality of the American Airlines website, www.aa.com.
• Developed detailed design specifications for implementing C++ client/server
applications using IONA CORBA with Orbix 2.2.
• Implemented CORBA C++ client/server applications to retrieve customer
records from an Oracle 8 database and populate on a webpage using
BroadVision C++ objects and server-side JavaScript.
• Formed requirements specifications with American Airlines Interactive
Marketing group.
• Created portion of project plan which included detailed work breakdown and
project schedule.
• Implemented BroadVision C++ objects containing instances of CORBA
clients that communicate with SABRE reservation system to perform
booking transactions.
• Provided instruction to integrate newly hired engineers into the development
team.
• Maintain and troubleshoot BroadVision 3.0 - 4.1 installations.
Teaching Assistant. Oregon Center for Advanced Technology Education,
Beaverton, OR. (8/11/99 to 8/13/99) Provided individual instruction in the "Hands-
On Java for Professionals" course which covered the following topics:
• Classes and objects
• Java library concepts
• Compilation, execution, and Java environments
• Interfaces, exceptions, threads, and packages
• Fonts, colors, shapes
• Applets and applet lifecycle
• Events and interactivity
• AWT containers and components
• Java networking
• Sockets
• Client-server applications
Web Developer. ABC Technologies, Portland, OR. (9/97 to 10/97) Converted text
to HTML 2.0 using Vi text editor for activity-based information system provider's
virtual library. Required implementation of complex set of nested tables to
accomplish formatting goal.