Oct 2009 - Present
FREE-LANCE IPHONE/IPAD DEVELOPER
Collaborated with different groups to develop iPhone/iPad applications. Developed prototype for a real-time polling application which used the Apple Push Notification Service; also developed the web and database components which generated the push content. Currently developing an iPad application for Mixed Martial Arts training and instruction. Experienced with Core Data and Core Location services, as well as other SDK components, Xcode, and the suite of Apple development tools.
Oct 2007 - Present
LEAD J2EE ARCHITECT/DEVELOPER
Feb 2007 - Oct 2007
LEAD J2EE ARCHITECT/DEVELOPER
The Kennedy Center
Architected a development framework and process for the online ticketing component of The Kennedy Center's website. Normalized existing codebase so that configuration management policies could be established. Analyzed existing code base and developed sequence diagrams to identify areas of refactoring. Refactored code into Struts framework format and wrote StrutsTest test cases to validate refactoring efforts. Prototyped re-write of rules engine component using Spring WebFlow; rules engine was based on JBoss Rules. Evaluated Spring and Hibernate as alternatives to existing code structure. Development environment included WebLogic 8.1 SP5, SQL Server 2005, Java/J2EE, Eclipse, Omondo UML Eclipse plug-in for modeling work.
Jun 2005 - Feb 2007
LEAD J2EE WEB SERVICES ARCHITECT/DEVELOPER
Architected and implemented External Application Interface (EAI) using Web Services layer; EAI provides the communication between legacy government systems and a new state-of-the-art digital audio/video processing system. Architected and implemented a fully working prototype of the asynchronous web service callback model (based on the Soap Conversation Protocol) to support the proposed design of those web services that needed such functionality; code eventually became part of the production code base. Architected and implemented Logging and Alerting framework to support logging application auditing and error data as well as the generation and display of SNMP traps; SNMPc was the Network Monitoring System tool used in support of the SNMP development. Instrumented Web Service code with JBoss MBean JMX hooks to allow more flexible management of the Web Service application from the JBoss JMX console. Investigated the use of AntHill Pro for continuous build and deployment requirements. Development environment included Borland JBuilder, Eclipse, JBoss 3.x/4.x, Tomcat 4.x/5.x, Apache Axis, JDOM, Castor, Java Web Services Developer Pack, Altova XMLSpy, AspectJ, XPath, JarAnalyzer and JDepend for code metrics.
Jun 2004 - Jun 2005
LEAD J2EE/PORTAL ARCHITECT
Senior member of team created to architect and develop next release of Nextel corporate website. Phase 1 of the project, which was Struts-based, was completed ahead of schedule, within budget, and provided a more robust user experience as well as significant enhancements to an internal administrative tool. Phase 2 is a portal-based initiative which will mirror existing functionality as well as provide new features. Modeling was done with Rational Rose Enterprise Edition. Development was done with WebSphere Application Developer for the Struts-based phase; the Portal Toolkit was added for the portal-based phase. Applications were run on both WebSphere Application Server 5.0 and WebSphere Portal Server 5.0.
Aug 2003 - Jun 2004
Member of the Enterprise Architecture Team, a group of 6-8 members who defined the J2EE architecture for existing projects and analyzed requirements for new projects, modifying the architecture as necessary to support new efforts. Analyzed requirements, drew high-level Use Case diagrams, and wrote Use Case scenarios for Client Administration project. Designed and implemented the following J2EE components: a Session Façade for Customer Profile Maintenance which also used the Dynamic Proxy pattern for handling ValueObjects and a Singleton for caching EJB instances; XML-based utility applications which used the Java reflection API and JDOM for managing XML control files; an MDB connected to an IBM MQ Series queue; a JMX client to interact with the administrative features of WebSphere Application Server; Castor mapping files to translate incoming XML messages into Java application objects. As it related to application design, investigated the use of the following: Axis Framework and Web Services; Java Data Objects; Data Access Beans; Java Standard Template Library; Jess. Assumed responsibility for system administrator of the development server; as such, performed application deployment and server configuration. Tools used: Rational Rose; WebSphere Application Developer, WebSphere Application Server; MQ Series. Technologies used: UML, J2EE, Struts; Castor; JDOM; SOAP; WSDL; UDDI.
Jun 2003 - Aug 2003
LEAD J2EE/WEB ARCHITECT
Built a J2EE-based reporting application which replaced a similar system written using JReports; the application saved the company the cost of annual licensing fees for that product. Application client was the county of San Diego; client used application to see their MACD and other telecom-related activity. Technologies used: WebLogic Application Server; Tomcat Servlet Engine; Struts 1.1 with Tiles; JAXB to generate Java reporting classes from XML DTDs and XML Schema; Ant to generate build and deployment code.
Mar 2003 - Jun 2003
CORPORATE J2EE ARCHITECT
Titan Secure Solutions
Defined the J2EE-based system architectures for two major projects involving a foreign government. The first project used applets and JNI on the front-end to control workstation hardware (digital cameras, optical devices, card printers, etc.), then servlets (running in a S/390 mainframe-hosted IBM WebSphere Application Server) and JCA connector technology to access legacy CICS transactions and DB2 data; the other used Portal technology (Oracle 9i product suite) as a G2B/G2C/G2G solution and Netegrity products (IdentityMinder and SiteMinder) to handle identity management and single sign-on. Analyzed requirements, diagrammed system context using high-level Use Cases, refined scenarios, diagrammed system architectures using Component Diagrams, and addressed security from the perspectives of the network infrastructure and application design; all modeling was done using a combination of Visio (with UML support), ArgoUML, and Rational Rose. Assisted other departments by defining how to set up a clustered Tomcat environment, then established that environment, and designed a network performance applet to assist in improving end-user satisfaction levels. Evaluated and validated application architectures for quality attributes using Software Architecture Analysis Method (SAAM). Supervised Systems Engineering and Software Quality Assurance departments, as required.
Mar 2001 - Mar 2003
LEAD J2EE/MQ ARCHITECT; LEAD J2EE/LDAP ARCHITECT; LEAD J2EE/WEB ARCHITECT
Defined and implemented the entire IBM MQ Series architecture for the BlueExchange project, an enterprise-wide J2EE application designed to handle EDI transactions according to HIPAA regulations. Wrote Java applications which were the primary interfaces between remote components in Chicago and local components in Washington, D.C.; Java code invoked SOAP and XML-RPC Web Services running under Apache Tomcat configuration for performing MQ message manipulation and transmission, and logging of transaction activity. (Project met all major and minor delivery dates.) Designed and prototyped a system which uses XML data-binding (JAXB) as an alternative approach to the EDI translation engine. Led pilot project for introducing .NET Framework SDK; project prototyped message queuing parts of the BlueExchange system using the C# language and classes from the System.Messaging namespace of the FCL. Defined the approach used for performance tuning activities in order to meet real-time thresholds, and used Aspect-Oriented Programming (AOP) through aspectJ to provide timing and logging features to production code base.
Installed, configured, and administered IBM SecureWay LDAP Directory Server and OpenNetworks DirectorySmart in order to provide a solid security infrastructure for the eServices Web application, as required by the HIPAA initiative. Modified IBM HTTP Server configuration file to allow requests arriving at a WAC-enabled server to be routed to the appropriate application server. Led effort to modify the eServices Web application so that it was LDAP-aware. Led effort to define the DirectorySmart web services, organizations, roles, and user types as they pertain to the eServices Web application. Led effort to determine how the DirectorySmart LDAP APIs could enable the use of directory services to support security requirements of the eServices Web application. Diagnosed and resolved problems related to the IBM SecureWay LDAP Server and the DirectorySmart product.
Led a team of 5-8 developers in the full SDLC of an enterprise-level J2EE Web application (eServices) which provides Federal employees with Internet access to their health-care information. Worked on project from Requirements Analysis through Production Deployment phase; as such, defined the complete set of Use Cases, the overall system architecture, and the project development/build/test/deployment process. (Project met all major and minor delivery dates.) Diagrammed Use Cases and System definition using Rational Rose (Use Case, Class, Component, and Sequence Diagrams) with Web Application Extensions. Designed Struts-based software framework for the application (a Model 2 (MVC) servlet architecture using Action (Command pattern) objects, ActionMappings, and ActionForms), JavaBean session objects, JSP pages, an XML-based subsystem, and MQ-JMS, JDBC, JavaMail subsystems. Installed, configured, and administered the following products used by the application infrastructure: IBM HTTP Server 1.3.12; WebSphere Application Server v3.5.2, Advanced Edition; MQ Series for NT, v5.1 (with MQ JMS components) as messaging middleware between Web application and legacy CICS applications; DB/2 UDB v6.1. Performed duties of PVCS Build Coordinator for project. Provided technical recommendations and assistance to other groups within the organization based on experiences of the main project. Wrote and delivered System Documentation for System Architecture, Software Installation, and Build Procedures.
Oct 2000 - Mar 2001
LEAD J2EE/WEB ARCHITECT
Thomson Financial Research
Architected reusable Struts-based framework for enterprise-level J2EE Web and desktop reporting applications, resulting in an annual savings for the company of $30K in third-party licensing fees. Led team of 6 developers in the analysis, design, implementation, and testing of these J2EE Web and desktop applications. Programming environment included: JDK 1.2.2, Apache/Tomcat running on Windows NT 4.0, Oracle 7.x, jCVS. Programming concepts included: Analysis and design using the following techniques: CRC method, Use Case Analysis, Extreme Programming, and UML diagrams; Java/J2EE programming using Servlets and JSPs, JDBC APIs, Swing components, and XML; Web development using JSP Model 2 architecture; installation/configuration of web server and servlet engine; XML development using the Apache Xerces XML Parser; configuration management using jCVS; project building using (Apache) Ant; use of J2ME and WAP/WML/WMLScript for wireless applications.
Mar 2000 - Oct 2000
SENIOR J2EE/WEB DEVELOPER
American Management Systems, Inc.
Designed and developed major portions of a Web application for providing credit card access to government employees. Modeled parts of the system using object-oriented concepts and tools. Performed load testing using a third-party vendor product. Programming environment included: JDK 1.2.2; WebLogic 5.1; Rational Rose Professional Java Edition; Windows NT; Oracle database server; Seque SilkPerformer. Programming concepts included: programming with J2EE (servlets, JSPs, EJBs), XML/XSL/HTML, and related Web-development technologies; object-oriented design techniques (Class diagrams, sequence diagrams); use of the state machine paradigm for the core infrastructure; use of scripting tools for load testing; use of J2ME and WAP/WML/WMLScript for wireless applications.
Jun 1999 - Mar 2000
SENIOR JAVA DEVELOPER
Designed and implemented GUI components, using XML and Swing, for a future release of an enterprise-level application. Designed and implemented an Enterprise Java Beans prototype of current application. Designed and developed Java application using KVM and kAWT for the Palm VII computer, as well as Palm Query Application (PQAs). Employed third-party vendor products to aid in detection of memory leaks, performance tuning, and profiling. Programming environment included: JDK 1.2.2, WebLogic EJB Server, XML, Swing 1.1, JProbe, Windows NT 4.0, Linux 2.x, Oracle, Rational Rose 98 Professional Java Edition. Programming concepts included: Component-based development using Enterprise Java Beans; dynamic programming using XML; GUI development using JFC Swing and Model/View/Controller architecture; J2EE programming; database programming using JDBC; programming using patterns (Observer/Observable, Command, Singleton, Adapters, and others); use of JavaDoc to generate consistent Java class documentation; JavaHelp for providing a help delivery system; Object Modeling using Rational Rose 98; Palm programming using Java and Palm Query Applications; use of J2ME and WAP/WML/WMLScript for wireless applications
Aug 1998 - Jun 1999
Designed and implemented enhancements to an existing distributed object telecommunications application, written in Forté, which tested rotary dial connections for America OnLine (AOL) and other IP Dial Service groups. Developed problem-tracking database using Java Servlets and JDBC to connect to a Microsoft Access database. Passed the Sun Certified Programmer for the Java Platform (JDK 1.1) exam. Used Rational Rose 98 Java Edition to perform round-trip engineering with Java and Rose/ Forté Link. Programming environment included: Forté Application Environment, Unix application servers, Windows NT 4.0, Oracle 7.3, JDK 1.2, JSDK 2.0, ServletExec 2.0, Microsoft Peer Web Services, Rational Rose 98. Programming concepts included: OOA/D/P, Object Modeling using Rational Rose 98, Java programming (JDBC, servlets [Java Server Pages, Server-Side Includes, servlet chaining and filtering], distributed computing), use of all Forté workshops and product features (database connection, external code interfaces, TOOL programming, system agents), installation, configuration, and system management of Forté development and deployment environments, Unix script programming using awk/sed, database management and programming using links, synonyms, views, and snapshots.
Dec 1997 - Aug 1998
SENIOR SMALLTALK/ PEOPLESOFT PROGRAMMER
Designed and developed forms management application for an automobile policy management software project. Analyzed and designed application using UML notational diagrams. Defined procedures for configuration map management and runtime image creation for overall project. Designed and developed installation program for cross-organizational usage. Attended 2-week immersion program in PeopleSoft (see Technical Education Section for details). Designed and developed on-line System Application Request (SAR) log for tracking changes made to PeopleSoft applications at client site. System recorded issues and application-level changes needed to resolve these issues as well as change Work-In-Progress (change WIP). Programming environment included: PeopleSoft HRMS v6.0, Rational Rose 4.0.x, VisualAge for Smalltalk 4.0x, Windows NT 4.0. Programming concepts included: database record/table definition, creation, and alteration, panel/menu design and creation; designation of security at the operator and operator class level (panel, sign-on times, and time-outs), PeopleCode programming, SQL and SQR programming using SQCs, use of Process Scheduler and Process Monitor to control jobs, OOA/OOD using UML notational diagrams (class, use case, sequence), OOP using VisualAge for Smalltalk (image components, database access sets, reusable parts, visualization tools for advanced code analysis), Perl scripting for installation routines.
Aug 1997 - Dec 1997
SENIOR SOFTWARE ENGINEER
Designed and developed the object model and object-oriented database used in workflow model for the Patent and Trademark Office. Designed and developed C++ server code for storage of archived and active patent applications in the system. Designed and developed Java client applications for retrieval of active patent applications for use in workflow model. Designed and implemented distributed architecture prototypes using Iona Orbix. Programming environment included: Rational Rose 4.0, ObjectStore 5.0 with Java Interface, Java Development Kit (JDK 1.1.x), Orbix 2.1, Solaris 2.5.x operating system. Programming concepts included: OOA/OOD and object-database modeling with UML notation and use-case diagrams in the Rational Rose environment, object-database programming, Java, C++, Perl, and client-server programming, distributed computing using Java RMI (Remote Method Invocation), component programming using Java Beans BDK (Beans Development Kit), distributed object computing, UNIX shell script programming with UNIX utilities, interactive forms design using HTML.
Feb 1997 - Aug 1997
ADVISORY SOFTWARE ENGINEER
May 1996 - Feb 1997
SENIOR SMALLTALK PROGRAMMER
Analyzed, designed, and implemented simulation of a transaction processing system for a major credit card company. Analysis techniques included Booch methodology and Jacobson use case scenarios; object-modeling tool was Rational Rose 2.5x. Smalltalk development tool was the Solaris-hosted version of ParcPlace-Digitalk VisualWorks v2.5 to include Smalltalk socket classes and the DLL/C Connect component for bi-directional interface of Smalltalk to C (communications code resided in a UNIX shared library callable by Smalltalk methods). Designed and developed using the Java Development Kit (JDK) and Abstract Window Toolkit (AWT) a configurable application to simplify and facilitate the construction of complicated and lengthy transaction simulation files. Concepts used included OOA/D/P, Smalltalk programming, Java programming, systems design, socket programming (TCP/IP, X.25) in both Smalltalk (SocketAccessor Class) and native protocol APIs, UNIX IPC programming (sockets, pipes, shared memory), Tcl/Tk programming.
Jan 1995 - May 1996
SENIOR SOFTWARE ENGINEER
Provided specific technical direction for team assembled to design and develop new software components of commercial Client/Server supply-chain management package. Designed and developed critical functionality for a multi-platform GUI (Unix, Windows NT, OS/2). Participated in OOA/OOD reviews and assisted other developers on the team in resolving C/C++ and STL programming problems. Programming environment included Rational Rose for object-modeling, various UNIX-based C/C++ compilers, Microsoft Visual C++ v4.0, MFC v4.0, IBM Developer's Toolkit 2.1, IBM C/C++ Tools 2.01, IBM DB2/2 1.2, Oracle 7.2.2, and graphical debuggers (IPMD, DDE). Concepts used included OOA/OOD/OOP, Booch OO methodology, Jacobson use cases, UNIX shared library development, C++ DLL development (OS/2 PM), relational database programming, DCE RPCs, multi-platform User Interface design and development, client/server programming.
Dec 1993 - Dec 1994
INTERNATIONAL BUSINESS MACHINES CORPORATION
Designed and developed major components of Client/Server billing application for invoicing Federal customers by IBM Federal Marketing organization. Components included all working prototypes created during initial development phase, DLLs for printing and graphically previewing customer invoices, and server modules along with their support libraries. Programming environment included IBM Developer's Toolkit 2.1, IBM C/C++ Tools 2.01, Smalltalk/V (OS/2 PM), DB2/2 1.2 and associated tools, Communications Manager/2, APPC/APPN, and OS/2 LAN Server 3.0. Concepts used included Presentation Manager programming, Smalltalk programming, C programming (linked lists, stacks, pointers), advanced OS/2 GPI programming (retained graphics, bitmaps, transforms, presentation spaces, device contexts), use of containers and other CUA '91 controls, creation of DLLs, SQL programming, APPC/APPN programming, development of multi-threaded, multi-tasking applications.
Mar 1993 - Dec 1993
DEPARTMENT OF ENERGY
Designed and implemented enhancements to Client/Server application which interfaced with corporate personnel database running on IBM VM mainframe. Designed and implemented in Smalltalk/V for Windows and Visual C++ an installation program for an application which accessed an internally developed LAN-based telephone directory. Programming environment included Smalltalk/V for Windows, Visual C++, Microsoft Foundation Classes 2.0, OS/2 2.0, Microsoft Windows 3.1, and REXX. Concepts used included Smalltalk programming, C++ programming, OOA/OOD/OOP, REXX programming, VM systems programming.
May 1992 - Mar 1993
INTERNATIONAL BUSINESS MACHINES CORPORATION
Designed and developed C programs for testing the APIs of a help engine for a major IBM product. Designed and developed programmable test cases in REXX/2 for use in an IBM OS/2-based automated test tool (WITT). Worked independently to establish a dedicated VM system for a major IBM Client/Server product and was responsible for its installation and configuration. Programming environment included C/370, REXX (OS/2 and VM), OS/2 2.0 ES (with Communications Manager), OS/2 1.3 EE, Windows 3.x, and VM (SP, XA, ESA). Concepts used included C language programming, OS/2 REXX programming, LAN hardware and software installation and configuration, use of automated testing tools, and test plan design and implementation.
Jan 1991 - May 1992
INTERNATIONAL BUSINESS MACHINES CORPORATION
Developed Ada application code on multiple platforms for FAA project. Developed data extraction/analysis tools and provided instruction, as needed, in their use. Developed tailored software for use in real-time applications and provided ongoing support for delivered modules. Developed generic packages, based on Booch components, for inclusion in a Reusable Components Library. Updated mission-critical code to be compliant with language requirements of an improved compiler. Designed exception message handler for text conversion program. Programming was exclusively in Ada under X Windows and AIX (IBM Unix) on the IBM RISC System/6000 and MVS/XA on the mainframe. Programming environment included Ada/370, Ada/RT, IBM AIX, X-Windows, IBM RISC System/6000, and MVS/XA. Concepts used included Ada programming, tree algorithms, tasking, generic subprograms, AIX programming, data structures, structured programming, and reusable components.
Jun 1987 - Jan 1990
STAFF VM SYSTEMS PROGRAMMER
INTERNATIONAL BUSINESS MACHINES CORPORATION
Installed and maintained VM operating system and program products on IBM mainframes. Installed, configured, and maintained mainframe Client/Server applications. Supervised the daily activities of a 10-person operations staff. Functioned as the primary technical resource for on-site employees. Provided 24-hour support to cover possible system outages. Programming was in REXX using the XEDIT editor.
Sep 1985 - Jan 1990
College of Staten Island (CUNY)
- Secure Web Services Development (Fall 2010) Two-day course (Lockheed Martin; Rockville, MD)
- Forté Application Development (August 1998)Week-long course using Forté Application Environment (Rockville, MD)
- PeopleTools v6.0/7.0 Basic and Advanced (May 1998) The Hunter Group, Atlanta, GATwo-week in-depth technical coverage of PeopleSoft internals and extensive hands-on experience with PeopleTools topics/applications.
- Object-Oriented Programming with C++ (10-week certificate program - May 1995) Johns Hopkins University (in-house at Manugistics, Inc.)
- C++ and Object-Oriented Design (OOD) - Basic and Advanced (September 1993 - May 1994) Montgomery College, Germantown, MD (grade of A in both courses)