Senior Core Java developer. Proven technical design and programming skills spanning over 15 years of programming experience within several different team-oriented environments
Core Java Server Side programming utilizing the following technologies:
OO Design Pattern Usage, Core Java programming, Generics and Collections, Multithreading techniques using Java 5/6 concurrent package, Hibernate/Sybase/Oracle with Spring Framework utilizing both AOP & Dependency Injection, Java Socket-Level programming, servers, handlers, Java NIO, Unix, Shell, Perl, Awk, Sed, XML processing using Xerces SAX and DOM parsers
Web programming utilizing the following technologies:
General Knowledge in the following areas:
Eclipse IDE, Agile Java Development using Eclipse Junit plugin 3.8/4.0, JMS specification, RMI, Ant, CVS usage, Subclipse, XML schema, Java Swing programming
Database Technologies: Sybase, SQL server, Oracle, MySQL, JDBC API
Operating Systems: Solaris/Unix, Linux, HPUnix
Testing Methodologies: Unit Testing and Integration Testing in a UNIX environment, JUNIT/Eclipse plugin
Moderate Exposure: JBoss, Weblogic, Axis-Soap services, C++, Oracle w/hibernate, Oracle JDBC, PL/SQL
BANK OF AMERICA
Java Developer, AVP (Apr 2013 – Jun 2014)
Consultant / Core Java Developer (Feb 2011 – Apr 2013)
• Responsible for helping the development team carry out regression analysis, system debugging, autosys monitoring, java development and minor Perl development.
• Note: All accomplishments utilize pure java concurrent facilities of the java.util.concurrent package.
• Due to inter-continental lag time in the ftp process, I created a highly flexible multi-threaded ftp-client for Bank of America’s business process between their main Risk Analysis partners (Risk Matrix Group). This successfully allowed BofA’s business of ftping millions of files between east and west coast in the time required by the SLA (Service level agreement). Prior to this implementation, the time required to process all files was failing the SLA daily. This project made heavy use of Java’s concurrent api.
• Converted a legacy Securities database refresh application to a multi-threaded application gaining about 700% increase in throughput on a multi-core Linux system.
• Created a multi-threaded regression tool that automated a previously manual process of executing SQL queries against different database environments and comparing the results; the resultant output was in the form of an Html page and Excel spreadsheet. This tool reads an XML document containing multiple SQL expressions, database config info and other required configuration and uses threads to process the SQL expressions against multiple DBs, comparing the results and placing the output on HTML and Excel forms; automatically emailed to Managers, QA and Developers every configurable time minutes.
• Created a multi-threaded log file analyzer utilizing regular expressions. This tool uncovered several important faults in the client’s processing environments.
• Converted several long running autosys jobs to multi-threaded java applications achieving close to 1000% increase in thru-put.
• Enhanced WebLogic GUI, the main portal to the back end Risk Analysis Engine, to conform to company compliance initiative to encrypt all user passwords. Used one-way encryption; sha family of algorithms utilizing randomized salt and variable hash iterations. Underlying api utilized was Java’s message digest.
• Analyzed client applications for non-thread-safe constructs and was able to fix long standing bugs that were causing various important race conditions.
Consultant/Java Developer for IBM, Middletown, New Jersey (Sep 2010 – Feb 2011)
• Responsible for developing back end services for a Spring Framework based Front End web application. My job is to create a service layer interface for the GUI developers. The service layer was implemented based on the DAO idiom using Spring Framework’s IOC/AOP to help both in maintaining a loose-coupling of components and to wrap the service layer with a Transaction manager. Data access was implemented mostly using Hibernate. Pure JDBC was used to implement mapping utilities. Additional responsibilities included moving low level java-based Factories into a Spring Framework managed environment.
JOHNSON & JOHNSON PHARMACEUTICAL RESEARCH & DEVELOPMENT, Raritan, New Jersey
Consultant/Java Developer (May 2010 – Sept 2010)
• Responsible for developing back end services within a web services stack running inside a managed Weblogic server. The services utilized Oracle/Hibernate for persistence. My main responsibility was to implement various transactions that the business layer dictated. These transactions can be described as vanilla processing of requests sent in from a web GUI. The basic design was that of a state diagram. Transactions are implemented by the methods within the web services stack. Each time a transaction is processed, it moves to another state. The GUI itself, not my responsibility, was generated using an in-house content management system that converted XLS spread sheets to Struts enabled JSP pages.
Free Lance Core Java and Web development (Jul 2009 – continuous)
• Developing and maintaining a small e-commerce web site to sell various art related items.
• Developing and maintaining a stock analysis application used to predict possible buy notifications of stocks. This application uses financial data including p/e ratio, percentage increase, volume, 52wk data, etc. to determine when to buy a particular stock.
• Developing a small programmer help site to illustrate the usage of various design patterns and to compile a list of descriptions and solutions for various Core Java, Spring, Hibernate3, Generic and threading related questions.
STONE CASTLE PARTNERS LLC NEW YORK CLIENT
Consultant (Mar 2009 – Jul 2009)
• This is a Core Java contract position in which I am responsible for creating and maintaining a Java Swing application that is used to stream data from a MySQL database and populate a Swing Jtable. The client requires easy access to any table in the database. There is also a requirement to automatically jump to any point in a table without loading the full table into memory. This is a generic interface to Database tables. Heavy OO Design Pattern Usage, Eclipse, JDBC, SQL, XML and Ant.
• UI allows the user to input multiple restrictions on all columns including the use of Regular Expressions. The resultant SQL query is generated using a Decorator Design pattern. Subject/Observer pattern utilized heavily within the Swing API.
• JSlider, JScrollBar and keyboard pagedown/up commands all control data acquisition, executing Database retrieval only when the current buffer of data is processed
CITIGROUP WARREN, NEW JERSEY
Senior Programmer Analyst (Mar 2003 – Dec 2008)
• (Core Java, Java, Collection classes,XML)Configuration Object to enable internal objects within the system to easily acquire configuration information needed to run in a variety of environments, i.e. DR (disaster recovery), development, staging, production. Configuration information includes location of servers, encrypted passwords and a large amount of other information which enables all systems to be dynamically changed at runtime. Before this system was implemented, it took a full day to deploy a large system from Staging to Production. Now this is done with the click of a switch.
• (Core Java, JSTL, Java Beans, Hibernate, Spring) Allowing Russian language text to be entered into eSales Account Data.
• Maintain, modify legacy C++ code
• (JSTL, Java Beans, JDBC, Hibernate, Spring, Java XLS API POI) Bulk upload process utilizing Spring under Jrun along with JDBC. This web utility allowed the user to bulk upload data in XLS format to a Sybase data server. I created the web-based front end using Spring Framework. In addition I used a standalone java server to upload the data.
• (Core Java, Apache XML Sax, Collection classes, Threading) Java new account form processing. This process converts a new account to XML format and automatically transfers the XML to an image processing down-stream system. Again, utilizing a java server that I created to process the request.
• (Core Java, Collection classes) Java approval processing system. Certain accounts are flagged as unapproved based upon various attributes of the account. For example, a user changes an account description or bank id. This system is driven by a truth table and causes an account to go unapproved if certain conditions are matched. This was implemented in such a way that the approval engine can reside anywhere in Citigroup’s internal network.
• Various data access utilities using Hibernate. Various web utilities/pages using Spring.
• Various simple to moderately complex perl scripts used to load various types of data into Sybase.
• (Core Java, Reflection API, Java threads, Collection classes,Apache Xerces Sax and DOM parsers)
• I developed a server (AcceptHandler) that allows our web application to easily interact with outside processes and/or data. The AcceptHandler is xml-driven and allows additional services to be added without the user having any knowledge of the inner workings of the server itself. One need only drop a class that extends a base in a particular directory. You might call this server a thin implementation of an Axis Soap Engine without the requirement of running inside a servlet container. Xerces Sax parser is the underlying xml parser being used. The accept handler is capable of running in SSL mode via a simple configurable parameter (see configuration object above)
• (Core Java)Created various java-class utilities:
• Class to transform Sybase results into a java program with getters and setters set up to easily be used in Spring and /or Hibernate. Uses DOM xml parser.
• Class to easily use Xerces SAX xml parser.
• Utility to automatically generate XLS reports based on dynamic SQL query.
• Thin generic wrapper around JDBC allowing programmers to easily utilize JDBC without having any knowledge of JDBC (e.g. with one simple call, data is encapsulated into an ArrayList of HashMaps).
• Utility encapsulating java mail allowing programmers to send email in a wide variety of formats utilizing configuration information, i.e. dev, prod, stg …etc
AT&T FLORHAM PARK, NJ
Consultant/Programmer/Tester (Jul 2000 - Feb 2003)
• Developed software to test AT&T’s B2B server with their many clients around the world/ created software to simulate clients.
• (java servlet, xml, JDBC, Oracle, sockets, UNIX, JSP, Perl)Developed a JAVA-SWING functional simulator that other testers used to functionally test AT&Ts webmethods B2B server.
• (java, servlet, xml)Created a generic set of call backs that convert XML files into a THIN internal structure for later processing using Apaches Standard SAX XML parser.
• (Core Java, xml, UNIX, Perl)Created a simulation system for AT&T to test their B2B server. The system could simulate a configurable number of clients performing random actions at a configurable rate...
• I have written many Perl and UNIX scripts to process various trace, log and statistics information.
• Many of my Perl and Java Simulators will continue to increase Tester and Developer productivity after my contract ends with AT&T.
Temple University, Philadelphia, PA - Bachelor Degree in Computer Science
University of Illinois, Champaign Urbana, ILL - Liberal Arts Major, Music Minor