Provided consulting services and guidance in the development of transactional and distributed systems for large scaled mission critical applications in airlines, financial and government industries using Agile methodologies such as TDD, BDD and Continuous Delivery.
Implementation of Enterprise application based on J2EE, HTTP, Core Java and Oracle Database using Object Oriented Analysis and Design, Domain Driven Design, Pattern Oriented Software Architecture, User Story Driven Agile approach Test Driven Refactoring towards Patterns of Enterprise Architecture when Working with Legacy Code Rapid Development from Requirement Analysis to Code Complete through Behavior Driven Development and Continuous Delivery.
Agile Software Developer/Architect
- TDD, BDD Developed CCP Collateral, CCP Swaps applications which interoperating with clearing houses and brokerage firms on Grails/Groovy/JEE platform. Introduced framework and reference implementation for functional test automation using Spock and Selenium 2. Instead of using Geb, designed easy to use enterprise Page API to read, write from form, Menu Navigation and encapsulation of waiting mechanism inside click event. Combined other open source technologies for end to end testing of web workflow for Accounting, Pricing and Custody operations from Data Entry, Upload to CSV/Excel/PDF Reports. Coached the team to get up to speed with the framework and implement functional tests for mission critical process to ensure bug free releases. Actively evolved this Grails Plugin to maintain the usability for variant application flavors.
- Advocated Behavior Driven Development methodology as the initial phase towards Continuous Delivery. Used this approach to assist the system upgrade to support Windows 7 and latest Jasper Report libraries and achieved 0 bugs on UAT for Collateral Management, Retail Future Merge and MBK Stratification.
- Reviewed applications to distill effective design solutions as architecture artifacts to serve the future development using Emergent Design methodology and made the code base much cleaner and leaner.
Team Lead Java Developer
Worked on Sabre Profiles system which helps airlines to manage traveler profiles, wrote and executed some release implementation to release the application and migrate customer profile into Sabre Profile System. While adapting to the new environment, added value to the existing architecture. One improvement was the introducing of parallelism to data analysis and reduced the processing time to 20 of the old process.
Implemented Southwest Airlines AirTran Integration after the delivery of Rapid Rewards Loyalty program. Conducted training and coaching for new technologies used by the team and provided guidance to other developers, QA and BA. Solved many problems caused by concurrent development from multiple teams. Contributed in architecture and implementation of the airlines booking application built on AJAX, J2EE, Spring MVC, jQuery and internal web services implementation. Implemented many functional features associated with Rapid Rewards program and improved the architecture of stub implementation. Improved the tests using Ruby and jRuby. Collaborated with distributed teams in Chicago, Brazil and Argentina on one code base from trunk of the Subversion system to utilize TDD, refactoring and continuous integration. Helped Southwest Airlines transforming into an agile organization using XP, Scrum.
Conducted Agile Coaching for JPMorgan Global Collateral Engine development team. Setup continuous integration using Behavior Driven Development and Test Driven Development. Collaborated effectively with the team in London. Performed coaching and delivery and built strong relation with this client. While coaching, also delivered the application built with GWT, Spring and Hibernate on Tomcat Server with Oracle Database. Implemented jBehave/Selenium functional tests GWT web application and Informatica data transfer workflow and motivated Informatica ETL developers to adapt TDD approach.
Senior Java/J2EE Web Services Developer
Designed and implemented the next generation of Telematics services for Hyundai and Infiniti using Glassfish J2EE Application Server web services EJB. Applied TDD, sonar and Java mock libraries to improve the test coverage of the application. Implemented 100 test coverage for some application modules with productive design approach to raise the bar the code quality. Tested Web Services with soapUI and Groovy scripts. Designed framework with limited patterns to improve the productivity of the application.
The application is adapted by Infiniti as Infiniti ConnectionTM.
Senior Java/J2EE Developer
Defined and improved the Kanban Scrum process using JIRA. Developed contract and payment system based on SOA, Java 5, Oracle and open source framework such as Hibernate to provide service to C .Net client via JSON RPC with Lingua XML XSD over HTTP. Designed Generic Composite Algorithm framework to organize complex business logic for concurrent contract origination using Java concurrent utility and UBS in-house financial calculation library . Implemented workflow and batch process for payment processing by Check or Direct Debit from Bank Account and user interface to monitor the transactions. Maintain the Perl script for code generation. Design Generic Wrappers for Hibernate Session, Criteria and Query to reduce the number of DAO implementation for the project. Developed Stored Procedure class as a wrapper to JDBC metadata to cache Callable Statement to boost performance to call Oracle 10g stored procedures. Implemented web services client of enterprise wide Single Sign On. Coded jUnit TestCase and TestSuite.
Led a team on the integration of WebSphere application with mainframe application using integration pattern including ESB with MQ transporting messages to different queues to load the business transactions from web application into mainframe based BankTrade DB2 database to reuse the legacy business applications. Also implemented processes to download mainframe transaction back to web application with web services for document assembling from SQL Server.
Greatly improved the architecture of the internet application for broker dealer to apply for Margin Lending and mortgage application from Macquarie Bank. Developed Spring IoC for context and transaction management with Hibernate. Implemented sophisticated mortgage origination workflow with imaging function for supporting documents. Integrated with email server, TIBCO Staffware, webMethod and SFTP to Vignette and Credit Bureau Web Services. Designed Stamp Duty framework to configure the progressive and proportional stamp duty formula for each State from database to avoid code change when rate changed by government regularly. Used MVC architecture pattern and AJAX to improve the response time and usability. Designed a framework for adding AJAX to existing Struts based web application. Implemented JDBC Stored Procedure class to manage JDBC metadata and mapping to stored procedure invocation from Java. Built the application on HTML, Struts, Actions, Tiles and JSP/JSTL. Configured application on Solaris. Integrated many open source library such as Apache, DWR and Spring. Configure production environment of Apache and WebLogic server. Generated jUnit test case and test suite classes using Apache HTTP Client by customizing Struts Action. Integrated ITAM Single Signon to the application.
Prototyped Struts based dashboard applications for payment processing, utilized Spring and Hibernate framework, as well as Apache Commons Collections, Validation and Logging framework. Setting up Spring IoC for context and transaction management with Hibernate ORM framework, practiced Agile methodology by utilizing continuous integration and test coverage.
Senior Java Architect/Lead Developer
Defined the scope and designed architecture of GTPNet, an AJAX, J2EE web-based LC and global payment application backed by legacy BankTrade in CICS/COBOL, DB2 via 3270 for ABN AMRO Bank.
Designed metadata services to serve the business analysts. Provided web-based interface for business analysts to explore and document the definition of database tables and columns in Oracle and DB2. Use Apache web server with multiple Tomcat servlet containers for load balancing and failover.
Vice President, Java Developer
Managed application implementation, system integration, performance and problem diagnostic and code review of vendor deliverables for the online trading and investment management platform, maxblue by Deutsche Bank.
Responsible for the delivery of technical analysis, high low level design for outsourcing. Developed algorithmic investment application with WebLogic, Oracle and Reuters Market Data Feed. Applied advanced technologies such as servlet, JSP. Influenced decision of adapting Struts framework which had a significant impact on the progress of the projects.
Principal Consultant, Java Developer
Designed application base on SOA architecture pattern with CORBA object model with event driven distributed components. Applied many advanced Object Oriented methodologies to manage this large scaled application. Designed XML Plan upload for planners to submit document to Planning center for further process. Identified, evaluated and implemented XML/XSLT technology to overcome the performance bottleneck of the system and successfully solved the performance problem. Also improved the performance of the XML based Rule Engine for plan validation algorithms. Established development and architecture standards by advocating conventions and design patterns.
Replaced the legacy HPS front end with PowerBuilder. Implemented Model-View-Controller pattern for HPS mainframe rule invocation.
Converted several brokerage applications, e.g. Confirms, Global Clearance, Dividend and Interest Redemption, MBS and Broker Affirmations for Y2K compliant, enhanced GUI with PowerBuilder and implemented the EMU change.
Performed system analysis, coding and testing of the new GUI. Developed an innovative conversion methodology and improved the productivity. Used PowerBuilder, C , HPS, IBM MVS and DB2. Couched other consultants to use the methodology during the project and reviewed the code from peer developers.