Skills: |
Development:
Requirements analysis, software design and implementation, database and application server
analysis, design and implementation, hardware / software / OS integration, testing documentation,
and developer training.
Languages:JAVA/JEE (including EJB, servlets, portlets (including JSR168), Struts, JSP, Ant, web services, SOAP, JMS, JDBC, JTA, JavaBeans, Java RMI, Java Comm API), Ruby on Rails (various plugin experience, restful web services), Adobe Flex 3, C++, Visual C++, XML (SAX and DOM parsers including libxml2, Xerces), Objective-C, Visual Basic (including writing of add-ins and ActiveX controls), UML, Oracle Developer 2000, SQL, PL/SQL, HTML, Javascript, JSON, LISP, and Motorola 68K Assembler.
Applications:
WebSphere Application Server V2, V4.x, V5.x, and V6.x, WebSphere Portal 4.x and 5.x, WSAD, RAD6, Apache, IBM Http Server, JBoss 3.2.x, Tomcat, Jetty, Entrust GetAccess 7.1 SP2 (server, SDK and runtime), ESRI 9.1 software (including ArcSDE, ArcIMS, ArcCatalog, ArcInfo, and ArcMap), Sphinx, MQSeries, Load Runner 7.81, Rational Rose, Visual Slick-Edit, Visual Studio, Visual Age for JAVA, SSL, VMWare, MS Office, Dreamweaver, TOAD, Druid, and many more.
Databases:
MySQL, Oracle, PostgreSQL, DB2, Cloudscape, HSQL, McKoiDB and MS Access.
O/S Experience:
Linux, Mac OSX, Sun Solaris 8, IBM AIX 5.1, Windows 3.1/95/98/NT/2000 Advanced Server/2003 Standard Server/XP and DOS.
|
Experience: |
CEO, CTO and Software Developer
Roadie Rage, Inc.
Cary, NC
4/08 to present
Ruby on Rails, Flex, MySQL, Objective-C, Ubuntu Linux, HTML, Javascript, SQL, Sphinx, Perl, Geo::Coder::US Perl API, Subversion
- Solely designed, developed, deployed and maintained all Roadie Rage's original web sites, including its flagship application at http://roadierage.com. Roadie Rage provides software services to musicians, music lovers and music-related businesses.
- Developed Flash UI using Adobe Flex 3.
- Developed server in Ruby on Rails.
- Used MySQL for backend database.
- Smoothly integrated affiliate product catalog into user interface, providing full text search capabilities via Sphinx.
- Considered business plans, models and opportunities.
- Hired and managed additional executives, IT support staff and software developers.
- Produced and posted Roadie Rage promotional video on YouTube.
- Developed iAirGuitar for the iPhone / iPod Touch, used to promote Roadie Rage: http://iAirGuitar.com
Senior Software Engineer
Railinc
Cary, NC
1/06 to 4/08
Java/JEE, Struts, EJB, JSP, servlets, JMS, web services, SOAP, JDBC, JTA, Ant, Clearcase, Subversion, Ruby, UML, HTML, Javascript, SQL, PL/SQL, XML, JSON, WebSphere Application Server V6.x, RAD 6, Tomcat, Entrust GetAccess 7.1 SP2 (server, SDK and runtime), ESRI 9.1 (ArcSDE, ArcIMS, ArcCatalog, ArcMap), SSL, TOAD, Oracle 10g, MySQL, Red Hat Linux ES, Sun Solaris
- Developed, deployed and maintained Railinc's Single Sign On application in development, test and production environments.
- Contributed numerous features and enhancements to SSO including:
- Wrote a more powerful dynamic search API for finding GetAccess users.
- Created a nice interface for importing configuration data for SSO applications using XML to streamline and reduce errors while configuring SSO for those applications in different environments.
- Wrote most of the customized GetAccess extension code to handle Railinc business rules including generation of cookies needed for basic authentication with Sharepoint.
- Modified GetAccess' behavior in order to allow users to log in as other users without needing to know the other users' passwords.
- Wrote an SSO developer hack so that developers could easily bypass use of a real SSO server in their local IDEs.
- Wrote a JAAS login module that authenticates web services users with the SSO application.
- Wrote efficient PL/SQL stored procedures to do some complex, nightly merging of hierarchical railroad mark data for use with SSO.
- Wrote Ruby and PL/SQL scripts to massage user and role data from previous systems for insertion into SSO.
- Successfully migrated many of Railinc's applications and their users/roles from their older customer registration application to SSO.
- Successfully integrated a number of new Railinc applications with SSO.
- Successfully transitioned SSO to maintenance team
- Wrote thorough, first rate documentation on company wiki.
- Extensively trained software developers on maintenance team.
- Designed, developed, deployed and maintained Railinc's GeoTool mapping application (phase one and phase 2), almost completely by myself. GeoTool was designed to be used by any Railinc application that needs to show a map or allow selection of items on a map.
- Based on ESRI's ArcIMS and ArcSDE products.
- Extensively modified ESRI's legacy javascript framework code for their HTML viewer application to allow the same application to be used by multiple Railinc applications in different ways.
- Installed and configured ESRI's ArcIMS and ArcSDE servers on Linux boxes in development, test and production environments.
- Wrote scripts to import track and station data into ESRI's ArcSDE database.
- Helped integrate GeoTool with Railinc's Embargo application.
- Converted old ColdFusion application called Circular OT5 to Java.
- Deployed Circular OT5 in development, test and production environments.
Java Developer
Contractor, InCentric Solutions
Durham, NC
4/05 to 1/06
Client: Railinc
Java/JEE, Struts, EJB, JSP, servlets, JMS, web services, SOAP, JDBC, JTA, Ant, Clearcase, Subversion, UML, HTML, Javascript, SQL, PL/SQL, XML, JSON, WebSphere Application Server V6.x, Entrust GetAccess 7.1 SP2 (server, SDK and runtime), SSL, TOAD, Oracle 9i, Sun Solaris
- Developed, deployed and maintained Railinc's Single Sign On application in development, test and production environments. SSO is one of Railinc's most critical applications and simply cannot afford any unexpected outages. SSO provides authentication and authorization services for most Railinc applications. Please see my more recent Railinc work experience for details concerning development activities.
- Installed and configured most components of SSO including:
- Entrust GetAccess 7.1 SP2 server cluster, runtimes and SDKs
- Apache/IHS web servers
- SSO application
Senior Application Development Specialist
Contractor, Ajilon
Durham, NC
12/02 to 3/05
Client: IBM
Java/JEE, servlets, portlets, JSR168, JSP, Struts, EJB, JMS, web services, SOAP, JDBC, JTA, Ant, XML, UML, SQL, PL/SQL, DB2, HTML, Javascript, JSON, Lucene, WebSphere Application Server V4.x, V5.x, and V6.x, WebSphere Portal 4.x and 5.x, WSAD, RAD6, IBM Http Server, JBoss 3.2.x, Tomcat, Jetty, MQSeries, Load Runner 7.81, Rational Rose, SSL, VMWare, Oracle, Cloudscape, Linux, Sun Solaris 8, IBM AIX 5.1, Windows 3.1/95/98/NT/2000 Advanced Server/2003 Standard Server/XP and DOS
Solely designed and developed a popular IBM internal web-based automated test execution
framework initially for the Portal test teams. It allows test team members to execute and
track automated SilkTest, Rational Functional Tester and STAX automation scripts from a
web browser against the latest product builds, which in our case are usually IBM's WebSphere
Portal 4.2.x and 5.x products. Its simple and intuitive interface and reliability under load
have led to the adoption of the tool by other teams at IBM for similar purposes. The tool
is a Java J2EE application written using XML, EJB, JSP, JDBC, DB2, JBoss, IBM's WSAD IDE and
various open source technologies.
Deployed and administered the web-based execution framework I created on several Linux
servers for use by the Portal test teams and automation script developers in running
automated regression test cases.
Solely designed and developed a popular web application that adds a full text search index
and a Google-like UI for CMVC defect/feature abstracts and notes. Many IBM development
and test teams across the world are deploying my application to make up for this lack of
functionality in IBM's CMVC product. This application uses the popular open source Lucene
library.
Deployed and administered the CMVC full text search web application I wrote for use by the
global WebSphere Portal test and development teams.
Developed JSR168 compliant portlets for further testing of the Portal container than was
covered under the TCK. These portlets uncovered additional defects that were fixed prior
to shipping the Portal 5.0.2.1 release.
Developed a Struts application for WebSphere Portal to test Portal's Struts 1.1.0 support.
Wrote and executed robust Load Runner scripts for testing various portlet applications
including "Portable Document Manager" and "Common PIM Portlets".
Manually executed a variety of test cases with several different configurations (mostly
on Solaris, AIX, Linux and Windows using IBMHttpServer, IIS6 and DB2), as well as many
automated tests via the web-based execution framework I created.
WebSphere SVT Group Member
Contractor, Ajilon
Durham, NC
4/02 to 12/02
Client: IBM
Java/JEE, Ant, EJB, JSP, servlets, JMS, web services, SOAP, JDBC, JTA, XML, UML, SQL, PL/SQL, DB2, HTML, Javascript, JSON, WebSphere Application Server V4.x, V5.x, WSAD, IBM Http Server, MQSeries, SSL, Cloudscape, Linux, Sun Solaris 8, IBM AIX 5.1, Windows 3.1/95/98/NT/2000 Advanced Server
Developed EJB applications that utilized session, entity and message beans for use in
WebSphere Application Server 5.0 system testing.
Executed a variety of test case scenarios on several platforms, including Linux (RedHat,
SUSE and MontaVista), AIX, Solaris and Windows NT/2000. These test cases were executed
using various configurations including single-node, multi-node, and multi-node with
clusters of application servers managed under IBM's Network Deployment application.
The test cases exercised various technologies including WebSphere Application Server
(4.0.4 and 5.0), MQSeries, various web servers (including IBMHttpServer, Apache,
Apache EAPI, Domino, IPlanet) and several databases (including DB2, Oracle, and Informix).
Identified and opened defects against WebSphere, IBMHttpServer, MQSeries and Domino.
Business Systems Analyst / Programmer
Contractor, TES Employment, Inc.
Raleigh, NC
5/01 to 11/01
Client: Litton PRC, Northrop Grumman, United States Post Office
Java, JDBC, JavaBeans, Java RMI, Java Comm API, Swing, C++, Visual C++, XML, Visual Basic, SQL, MS Access
Led the technical design, implementation and testing of the Java portion of a distributed
proof of concept application known as ATLAS for the United States Postal Service.
Joined a team during the design phase that had already committed itself to developing the
workstation portion of ATLAS partially in Java and partially in Visual Basic due to time
constraints and a shortage of Java developers. I ultimately led the team to a successful,
full implementation in Java / C++ using free open source software where applicable, running
on Linux for increased reliability.
Led the design and implementation of the ATLAS Facility Server, an application server
(running on Windows 2000, using Oracle as the back end and JServ as the servlet engine)
that provides the Tray Label Collectors (TLCs) in a mail processing facility with sort plan
data. The facility server also manages tracking data originating from the TLC and uploads
it to the ATLAS national server.
Designed and wrote servlets to handle communication between the TLCs and the facility server,
including the uploading of large amounts of transaction data as compressed XML files by the
TLC for inserting into an Oracle DB on the server.
Pioneered the design and development of a reusable, distributed hierarchical configuration
system. Coded almost all of the necessary components of this system, including a Java Swing
GUI for administration, Oracle stored procedures, servlets, XML parsers and a Java RMI server.
Created a clean, event-driven, multi-threaded, object-oriented design for signaling GUI
updates, greatly improving the Java GUI's responsiveness as compared to the VB GUI.
(Multi-threaded programming is not simple in Visual Basic.)
Designed and implemented a barcode scanner driver in C++.
Designed and implemented an efficient, extensible, multi-threaded, object-oriented printer
driver in Java for thermal barcode printers used by the USPS that runs in the same JVM as
the TLC application and uses the Java Comm API.
Designed the TLC's Listener, which is responsible for parsing incoming data off the serial
ports. The Listener spawns new listener threads for each serial port to handle print
requests originating from Mail Processing Equipment (MPE), parses the data and passes it
along to the Event Manager. The Listener can be easily extended to support various types
of MPE.
Designed the TLC's Event Manager, which handles all communication between the facility
server, listener, print driver, and GUI. Some of this communication involved posting to
servlets on the facility server while some involved the use of Java RMI.
Wrote most of the Java RMI code facilitating communication between the TLC and facility
server.
Wrote the configuration and sortplan XML parsers in C (using the free libxml2 for Linux)
due to the performance requirements.
Implemented most of the Event Manager-related functionality.
Designed and wrote code using JDBC for accessing the databases where applicable.
Software Developer
Contractor, CNC Global Inc.
RTP, NC
4/00 to 11/00 and 12/00 to 3/01
Client: Tivoli
Java, XML, Visual Age for Java
Developed authorization code as part of the security team for a distributed operating
system written in 99.9% Java.
Participated in the implementation and testing phases of development.
Took over ownership of, designed and developed new features for the distributed security
cache and the security directory service code for the distributed OS.
Found, debugged and tested fixes for many security-related defects.
Developed an innovative way to generate test cases for testing the security authorization
APIs. I created a test tool in Java/XML/Jef and used it to generate hundreds of test case
variations. These generated test cases were run regularly against new builds of the
distruted OS as they became available. Use of this tool achieved far greater coverage
than would have otherwise been realized with manually written test cases. Once available,
the tool generated hundreds of test cases quickly and easily. This tool provided great
coverage for the security API test effort.
Corporate Research and Development Team Member
Intelligent Information Systems, Inc.
Durham, NC
9/99 to 4/00
Java, JSP, JDBC, JavaBeans, Java RMI, XML, Visual Basic (including add-ins and ActiveX controls), UML, SQL, PL/SQL, HTML, WebSphere Application Server V2, Rational Rose, Oracle, MS Access
Specially selected by the company president to participate in IIS' Corporate R&D Team,
which was formed to creatively streamline the conversion of large legacy applications
to newer technologies. Duties included mastering new and old technologies, obtaining
certifications, formulating new methodologies and creating application frameworks that
support them, and developing new tools. Gained experience on internal projects using
technologies like Java, servlets, JSP, WebSphere Application Server, JavaBeans, Rational Rose.
Played a lead role in designing, implementing and testing WebPET, the Web Productivity
Enhancement Tool. WebPET is a repository for internally developed tools that are made
available for use by employees via WebPET's web interface. All of the tools contained
in the WebPET repository are run on the server, eliminating the need for the installation
and maintenance of these tools on each developer's machine. WebPET's servlets and JSPs,
running on IBM's WebSphere Application Server, provide dynamically generated HTML forms
to WebPET users who wish to use a specific tool in its repository. These forms prompt
for the parameters required to use that tool. Each tool and its parameters are described
in an associated XML document. I designed much of WebPET using UML and Rational Rose.
Played a lead role in designing and implementing BugTracker, a defect tracking system written
mostly in JAVA for the web.
Technical Staff Member
Intelligent Information Systems, Inc.
Durham, NC
1/98 to 11/99
Visual Basic (including add-ins and ActiveX controls), SQL, PL/SQL, Oracle, MS Access, Cognos Powerhouse
Played a lead role in creating and executing a methodology for converting a legacy Cognos
Powerhouse client/server application to Visual Basic. The customer was a Wisconsin-based
insurance company. Their application consisted of several hundred screens, reports and programs.
Participated in all phases of development for the legacy conversion project.
Due to the innovation demonstrated in the methodology and toolbuilding described below, the
project was successfully completed under budget, about six months ahead of schedule and with
about half of the originally projected manhours. The team also included many last minute
enhancements that were not part of the original project plan.
Invented SLIC - the Screen Layout Item Constructor VB add-in within my first week of
programming in Visual Basic. SLIC automates the process of converting legacy application
screens to VB forms and saves from 2-30 hours of work on each screen that it generates,
with greater time savings realized on more complex screens. SLIC eliminated many hundreds
of hours of tedious work on the legacy conversion project.
Independently created SLAC - the Screen Layout Auto Coder VB add-in, which helps automate
tedious coding tasks using user-defined templates. SLIC and SLAC together generated
approximately 90% of all the VB application code for the legacy conversion project,
thereby greatly increasing my teams' productivity and reducing costs for the client.
Developed user controls in VB and incorporated them into the SLIC/SLAC methodology,
which was the methodology developed for the legacy conversion project described above.
Created a well-designed VB application framework that supports the SLIC/SLAC methodology.
At the owner's request, periodically demonstrated SLIC and SLAC to potential clients to
emphasize the technical ingenuity of IIS employees.
Participated in IIS' recruiting effort by giving numerous project demos to potential
employees.
Software Engineering Intern
Intelligent Information Systems, Inc.
Durham, NC
Full time, Summer 1997
Oracle Developer 2000, SQL, PL/SQL, Oracle
|