Career Objective
Design and develop server-side solutions using Java, J2EE, and WebSphere with a strong interest in multi-threading, socket communications, asynchronous messaging, and Java internals (JVMTI and byte-code instrumentation). In addition, I have been transitioning into developing web applications and have learned a few new skills, i.e., LAMP – Ubuntu Linux running the Zend server with PHP and MySQL. In addition, Drupal 7.x.
Technical Areas
LAMP (Ubuntu Linux, Zend Apache distribution, Mysql, and PHP), Drupal 7.0, HTML, CSS, Java (all versions), J2EE (Spring, JSP, Serlet, & EJBs), WebSphere (4.0-6.1 in z/OS and Windows), ColdFusion (course work), Hibernate, multi-threading, socket communications, JDOM, DOM, SAX, XML, Javascript, JMS, DB2, Oracle, PL/SQL, JDBC, ODBC, SQL, byte-code instrumentation (BCI & DBCI), JVMPI, JVMTI, C, C++, WebSphere Studio Application Developer, Rational Application Developer, WAS Admin Console
Certificates
WebSphere Studio Application Developer 5.0
WebSphere Application Server 5.0 for z/OS Administration
Work Experience
COMPANY: Priometric Authentication Security Services
TITLE: Software Developer
START DATE: July 2010
END DATE: October 2010
WORK DESCRIPTION:
Developed a working prototype to demonstrate potential Biometric Authentication server similar to MyOpenId with additional biometric and smart card authentication.
Startup company in its infancy and looking for venture capital
Participated in the Mass Challenge startup competition where we advanced to the 2nd round.
Developed prototype using the following technologies: Presentation - Apache Wickets, Middle tier - openid4java API for OpenID functionality, Backend – MySQL using JDBC.
Endeavor is currently on hold while company looks for funds and researches potential patent conflicts regarding biometric transformation technology.
Currently working on implementing Spring and Hibernate technologies to replace Wickets and JDBC code.
COMPANY: Compuware APM Lab
TITLE: STROBE for WebSphere Technical Lead
STROBE for Java Technical Team member
START DATE: January 2005
END DATE: January 2008
WORK DESCRIPTION:
Responsible for research, design, prototyping, and implementation of new Product offering using the JVMTI API and byte-code instrumentation. The product was a multi-process/multi-threaded solution for determining application performance in Java and WebSphere environments.
Designed and developed a single solution to replace the STROBE for WebSphere and STROBE for Java products using Compuware’s proprietary Java byte-code instrumentation technology
Incorporated Compuware’s Vantage JVMTI Java agent into the STROBE product architecture
Researched and designed modifications to existing instrumentation code to instrument around calls to all non-instrumented method invocations. This was necessary due to complications in instrumenting certain system classes in the z/OS environment.
Designed, prototyped, and implemented a 100% Java multi-threaded central server to handle all TCP/IP communication between STROBE and multiple JVMTI agents. Central server handled administration of multiple agents and measurement sessions, TCP/IP port management, caching of agent measurement data, creation of XML containing report data, and logging functionality. Designed reusable architecture to handle socket communication, parsing and creation of XML messages using JDOM, and threading.
Designed and implemented code to incorporate STROBE measurement functionality into the Vantage Agent technology, i.e., socket communication with Central server. (90 % C/C++ / 10% Java)
Chosen by Compuware as a subject matter expert and given an extended contract to help with the knowledge transfer from the Cambridge lab to the Corporate headquarters in Detroit. Transition contract consisted of product training and detailed knowledge transfer of new and old projects related to the STROBE for WebSphere/Java products
Assisted Product Architects with alternate technology solutions to bring product offering to the market sooner
START DATE: June 2001
END DATE: January 2008
WORK DESCRIPTION:
Responsible for design, implementation, and problem resolution for the legacy STROBE for WebSphere and Strobe for Java products.
Led large team that developed the STROBE for WebSphere Application Server product offering that provided performance metrics for Servlets, JSPs, and EJB applications running in the WebSphere Application Server for z/OS environment
Became company wide WebSphere contact and helped MIS and developers learn and troubleshoot problems with WebSphere administration (server and environment setup), application deployment, etc. in the Windows and z/OS environments
Assisted in design and maintenance of the STROBE for Java product offering
Resolved serious design limitation in the STROBE for Java product by reverse engineering IBM’s SVC Dump tool to provide product support for Java 1.4.x z/OS environments. Due to internal changes in IBM’s JVM for z/OS STROBE could not traverse the java and native stacks to show call stacks associated with activity hot spots.
Designed and prototyped new Java product feature to navigate to application class and jar file directories to extract class and method names. This idea was then incorporated into the STROBE for Java product offering to provide class and method selection capabilities for measurement targeting.
COMPANY: Compuware Numega Lab
TITLE: Senior Software Engineer II
START DATE: February 2001
END DATE: May 2001
WORK DESCRIPTION:
Member of small design team tasked in defining, designing, and developing a Java application error detection tool. Delegated to researching Java technologies useful in developing error detection tool.
helped educate team members with Java technology
Researched Java Virtual Machine specification to understand how the JVM operates and processes Java class files.
Researched Sun's Java Virtual Machine Profiling Interface (JVMPI) to determine how to extract Java information and implement byte code instrumentation at runtime.
COMPANY: Compuware APM Lab
TITLE: Senior Software Engineer II
START DATE: October 1999
END DATE: January 2001
WORK DESCRIPTION:
Recruited by Advanced Design Team to design, develop, and deliver distributed application framework for multi-tier application (Strobe for NT/Unix). Primary goals of framework were to provide browser access to distributed servers providing end-users the ability to remotely schedule, measure, and analyze application performance. The framework consisted of three major components; the web, global, and measurement servers.
Took part in development of a proof-of-concept prototype, written in Java, to demonstrate that Java was a feasible technology to use. Prototype successfully demonstrated distributed communication between 3 machines using Java's Remote Method Invocation (RMI) class library. In addition, it demonstrated object serialization and communicated with a native process via a socket using a simple XML message protocol.
Responsible for creating a high-level design document that summarized each of the applications distributed components and their sub-components.
Wrote logic specifications for all server components
October 1999 - Compuware Corporation acquired Programart Corporation
COMPANY: Programart Corporation
TITLE: Senior Software Engineer II
START DATE: September 1999
END DATE: April 1998
WORK DESCRIPTION:
Recruited into Advanced Design Team to research and design future products and product enhancements. Participated on an 8-member design team responsible for reviewing specifications for all new Strobe and APMPower product features.
Wrote initial product specifications for Strobe Java Language Feature to provide Java application specific information when measuring Java applications compiled into native code using IBM's High Performance Java compiler (MVS).
Tasked with researching the collection of Visual Basic information for Strobe for NT/Unix project. Support for including VB symbols with application performance data was required to make the data more useful to the end-user. In addition, the collection engine needed to detect when Visual Basic libraries and OCXs were loaded into memory.
Designed and prototyped new feature for APMPower product enabling users to see top N Resource consumers in applications measured by Strobe. This enabled end-users to dramatically cut down on profile analysis and solve application performance problems much quicker.
TITLE: Senior Software Engineer II
START DATE: September 1997
END DATE: March 1998
WORK DESCRIPTION:
Lead engineer responsible for scheduling and planning of release specific work throughout the development life cycle.
Worked in a semi-management role to ensure that product release sizing efforts and initial function specifications matched the product requirements
Responsible for assigning work to team members
Assisted other engineers with development process
Tracked teams progress on a daily basis and reported to management committee once a week
Joined Design Council to review and inspect all initial function specifications, product wide
Trained new employees about the architecture and use of Strobe and APMPower products
Responsible for maintenance and new product feature support in applications written in C and providing ODBC database access.
TITLE: Senior Software Engineer I
START DATE: September 1994
END DATE: August 1997
WORK DESCRIPTION:
Lead engineer responsible for ongoing maintenance and new release functionality of PC-based APMPower product for OS/2 and Windows, mostly using C and Easel.
Played a critical role in porting APMPower product from OS/2 to Windows 3.1 particularly in the database access area. Database access was converted from imbedded static SQL to ODBC.
Responsible for all database related code to support Oracle, MS SQL Server, Sybase, DB2, and MS Access
Assisted in design, development, and maintenance of print engine for APMPower using C++ and MFC
Responsible for data reduction of data received from the mainframe and loading via ODBC to a relational database
Responsible for designing and rendering of Strobe report data for display by APMPower
TITLE: Software Engineer
START DATE: September 1991
END DATE: August 1994
WORK DESCRIPTION:
Developed and maintained COBOL and Assembler reporting applications for Programart's Strobe application performance product.
Tasked with writing new support to emit reporting data to a proprietary file format for use by Strobe's companion product, APMPower
Designed and developed new reports for analyzing performance data from applications written in COBOL, Fortran, SQL, Natural, CICS, etc.
Responsible for providing patches to COBOL and Assembler reporting modules for customer problems
September 1991 - Hired by Programart Corporation
COMPANY: Global Software, Inc.
TITLE: Software Engineer
START DATE: January 1985
END DATE: August 1991
WORK DESCRIPTION:
Maintained and developed new features for company products. I became proficient in COBOL and acquired some experience with the OS/370 assembly language, Job Control Language (JCL), DL/I, and SQL.
Responsible for maintenance and new functionality support for ISPF-panel driven front end to IMS DBDC and DATAMANAGER data dictionaries and a SQL workbench that generated SQL command syntax.
Continuing Education
Note: I am currently working on completing my Bachelor’s degree with a concentration in Computer Science of which I have completed all of the Computer Science course requirements.
Since 1995 Harvard University Extensions Cambridge MA
Distributed and Enterprise Computing (J2EE w/ Seam and Spring)
Web Applications with Ruby and Ruby on Rails
Web Design for Database Applications (PL/SQL Oracle) – main focus on database design
Distributed Programming in Java
Java Programming I and II
Web Development using XML
C Data Structures, C++, Windows Programming with MFC, Advanced Windows
Programming with ActiveX & COM (DCOM), Java Programming, Distributed Java Programming with Java and CORBA
Since 1991 Boston University Brookline MA
Vax Assembler, C Programming, C Data Structures, Windows SDK Programming, and Data Communications and Networking.