- A seasoned Core/Server Side Java Developer with extensive experience in Multi - Threading, Concurrency, Synchronization, Thread Pool, Collection Framework, Reflection, Exception Handling, Data Structure, Design Patterns, Java Memory Model, GC tuning, Cache etc.
- Proficient in designing, developing of n-Tier Distributed Enterprise Application in different phases of SDLC, including Requirement gathering, Analysis, Design/Architecture, Development/Integration, Build Management, Enhancements, Testing etc.
- Have extensive working experience in multiple BFS domains like Fixed Income, Risk (CCAR), Regulatory Reporting, Retail banking, Security Lending, Portfolio Management, Order Management System, Mortgage etc.
- A self-motivated, enthusiast, quick learner, detail-oriented developer, experienced in delivering high-quality, scalable, predictable, and high-performance applications.
Java Technologies: Core Java JDK 1.8, Multithreading, Annotation, Reflection, Generics, Collections, Java Beans, JMS, Exception, I/O, Enums, JDBC, JAXB, JAXP, Hibernate
App/Web Servers: Apache Tomcat 7.x/6.x/5.x, IBM WebSphere 7.0/6.x, BEA WebLogic, JBoss 3.X/4.X, BEA Tuxedo, iPlanet, Grizzly HTTP Server.
Build & Deployment: Maven 3.x, Hudson, Jenkins, AHP, JaCoco, CPD, PMD, FindBugs, Ant 1.6.5.
IDE: Eclipse, RAD 7.5.4, JBuilder 9.0.
Web Technologies: J2EE, jBPM, Servlets, JSP, WSDL, JAX-RPC/WS, SOAP, Restful Web Services, Jersey Framework, EJB 2.1, Hibernate 3.1, Apache Struts 1.3, JSTL, HTML, DHTML, CSS, JSON, JSF.
Spring Technologies: Spring Integration, Spring Batch, Spring Boot, Spring IoC, Spring MVC, Spring-WS, Spring Security, Spring Transaction, Spring JDBC Template, Spring Integration, Spring Boot, Spring JPA etc.
XML: FIXML, XML, XSD, XPath, XSL, XSLT, Schema, DTD etc.
Operating Systems: Sun Solaris 2.8/2.10, Linux (VMware), Ubuntu, MS-DOS
RDBMS: AQUA Data Studio, Sybase IQ, Sybase ASE, Oracle 11g/10g/9.2i/8i/8.0.x (SQL, PL/SQL), Apache Derby 10.x, IBM DB2 7.x, MS SQL Server 2000/2005, Sybase, Stored Procedures, Packages, Triggers, DBlink, View, Functions, Procedures, H2.
Data Base IDE: PL/SQL Developer, SQL Navigator 4, Toad, Embarcadero.
Source Control: Git/Gerrit, SVN, IBM Synergy, CVS, WinCVS, VSS, ClearCase, Star Team, Assembla.
Others Tools: SeeBeyond (eGate Integrator), MQ series/Active MQ, Web Services Studio, Sybase BCP.
Methodologies: RUP, Agile (Version One), Test Driven Development.
Open Source: Logback, ehCache, ICEfaces, Apache POI (word, excel), Apache commons, Apache Active MQ, Velocity.
Modelling Tools: BPMN2, Eclipse Modeling Framework (EMF), Rational Rose, VISIO, Sybase Power Designer.
IR: HP Quality Center, ClearQuest, JIRA, eTracker, Mercury, Bugzilla.
Testing Framework: JUnit, Mockito, PowerMockito, Selenium.
Other Languages: C++, C.
- Designed and developed the Enchiladas Fixed Income Engine. The core Engine calculates the Base OID Schedule, Payment Schedule, Accrual schedule, depending upon if the Adjustment type is Bond Premium, Acquisition Premium or Market Discount.
- Developed the OID YTM (Yield to Maturity) calculator using Newton Rhapson method. Developed the Engine project as a library (a Maven project).
- Designed and developed the REST API, using JAX-RS, Jersey.
- Developed a generic ETL Framework by using Java Blocking Queue, Executor Services, and I/O APIs.
- Used Java Generics for developing generic Parser and Mapper classes. Designed and developed user friendly User Defined Exception handling Framework. Used Java IO APIs, Decorator Design pattern for Writing/Reading to/from multiple types of file.
- Developed Unit test cases using Junit, Mockito/Power Mockito. Tested REST APIs from POSTMAN Application.
- Extensively used JAXB APIs for parsing XML/Text based data files. Created/modified XSD schema for input data type (POJO) validation. Used Class Loader to invoke the right Parser/Mapper dynamically.
- Implemented Security Layer by using Web Token, Authentication Filter etc.
- Used Java 8 features like Streams, Lambda, Functional Interface, Producer, Consumer etc.
- Used Hibernate Query, Session, Transaction, Entity, Typedef APIs for ORM mapping along with DAO for data access using Hibernate to fetch data from database. Configured Hibernate Connection Factory (C3P0) Attributes to handle situations like Timeout and Stale Connection etc.
- Designed and developed Batch jobs to generate Transactions and Error reports for Day 0 and Delta. Used Executor Framework, JAXB, ehcache, Apache DBCP, JDBC, Collections, and Apache Commons etc. Implemented caching mechanism for Instrument details using Ehcache.
- Created Maven Project using POM file to configure the project artifacts, dependency management, build life cycle, excluding configuration files from the generated war files.
- Performed trouble shooting including stack trace analysis and JVM tuning by changing to Heap sizes according to the requirement. Managed and monitored the JVM performance by Heap Size, Garbage collection, taking Thread dumps.
- Implemented the logging mechanism using Log4j framework. Changed Rollover policy from TimeBasedRotationpolicy to FixedWindowRotationPolicy in order to have a fixed number of archive files over a rolling log.
- Deployed the war file in a WebLogic portal hosted on AWS EC2 instance. Managed deployment, maintained lifecycle of the hosted portal instance. Created AWS stack using script. Handled Load balancer, Cloud Formation, Security group etc.
- Created/modified Jenkins CICD pipeline for build automation.
- Implemented Validation frame work for validating Input Data file.
- Developed shell scripts to automate Batch/ETL jobs. Investigated into JIRA tickets and did analysis and provided solution for them.
Environment: JDK 1.8, GlassFish, AWS, JAX-RS, Jersey, Eclipse, Apache IO, JAXB, Apache Commons, maven, XML, Postgres, Git, JUnit, Jenkins, AWS, JIRA, Hibernate etc.
- Singlehandedly created/maintained workflow using Core Java, Collection, Spring Restful, Spring MVC to implement CRUD functionality on functionalities at Tenant and DataSet Level.
- Designed application modules using micro-services architecture.
- Used Core Java, Collection Framework, and DAO Layer to implement this.
- Used Spring Integration, Spring Boot, and Core Java to build and connect Intra applications components.
- Created/maintained In-memory/ Junit test cases to in corporate End to End testing.
- Also provided Junit test cases using Mockito, PowerMockito mocking frameworks for portal project.
- Created/maintained batch jobs using Spring Batch and Spring Boot for EOD batch processing of Customer data related batch jobs.
- Created and maintained ARM scripts for automatic checkout from bit-bucket and consequent build and deployment using Jenkins, maven etc.
- Created Database objects like Tables, sequence, index, Views, GRANTS, and Roles etc.
- Maintained the DB Scripts in Git/bit bucket.
- Used/modified using Java 8 features like Stream, Lambda Expression in the existing code.
- Used EclEmma code coverage tools and was part of code review process.
- Created/maintained deployment processes of Registration/ Ingestion in DEV/QA environment.
- Migrated existing projects from SVN to Git with commit history.
- Created Jenkins built scripts for separate projects and pipelines.
- Created Log4j configuration corresponding to different environment.
Environment: JDK 1.8, Tomcat, Eclipse Mars, Spring Batch, Spring Boot, Spring Integration, Git/Git extensions, Maven, WinScp, Putty, JAXB, XML, Oracle, SVN, XSD, Mockito, PowerMockito, JUnit, Jenkins, Linux, JIRA, Hibernate, Hadoop, Cloudera cluster.
Confidential, New YorkSenior Developer
- Implemented E2E (End To End) process consists of one or multiple Processes, which in turn consists of one or more Activities or Sub-Processes.
- Designed BPMN models of the E2E process using Eclipse BPMN2 modeler, configured Activity/Process details.
- Developed WorkItemHandlers and service implementations corresponding to BPMN Models using jBPM (Eclipse plugin) and Core Java.
- Developed different types of Activities e.g. Data publishing, Data Validation, ETL, Report Generation (Axiom). Fixed Form Reports related MetaData is SFTPed to Axiom Reporting team. Developed SFTP framework using JSch (Java Secure Channel) APIs. Tested the code in Kerberos enabled platform. Developed File Watcher Script for SFTP application.
- During PPNR calculation an in-house Model Execution Framework is used to read input monikers, validate monikers, perform MEF execution, capture Output, validate output and write to mercury.
- Used Core Java, Collections, JSON, jBPM, Hibernate to develop WorkItemHandlers, Service Implementations classes.
- Projective RWA (Risk Weighted Assets) Calculations/ Transform are of two types, Spot and Standardized. WorkItem Handlers, Service Implementations classes are done by using Core Java, Collection, JSON, jBPM, Hibernate etc.
- CCAR and DAST test requires simulated stressed market data.
- BHC bank needs to carry out the Stress Tests for total 5 scenarios (3 Fed given and 2 Internal).
- Each scenario consists of 28 RiskFactors and each of them consists of a number of shocks values. SMT (Scenario Management Tool) is used to generate the simulated Scenario data.
- Used jBPM WorkFlows, BPMN Modeler 2 plugins, Core Java, JSON, Hibernate etc.
- Static Runbook has the details of the Top level processes, their child processes and the corresponding activities. Static Runbook gives a of the ideal time to run a complete CCAR Execution from start to end.
- Whereas, Dynamic Runbook calculation provides actual time taken by each of the processes/activities.
- Designed the Static and Dynamic Runbook and developed using Core Java, Data Structure, Collection, RestTemplate client etc. Used Multiple Predecessor logic to determine the dependency of processes.
- Developed Context Services, Moniker Services, DrillDown Services etc. which provides data used in Calculation and Fixed Form Reporting. Developed the services using Spring RestTemplate, JDBCTemplate and Core Java.
- Developed different DAO Implementation using Spring JDBC Template in order to pre-populate the Run Details, notifications etc. at the start of the application.
- Developed a tool to generate Fudged Messages and deliver it to a Queue/Topic to during Unit testing of the Workflows.
- Worked on Tomcat DB Connection Pool configuration to achieve optimum number of DB connections using Apache Commons DBCP.
- Extensively used Git/ Git Extensions as the repository.
- Used Mockito and JUnit for developing Unit Test code.
- Developed and maintained Stored Procedure, Named Query to implement WorkFlow Functionalities.
- Used Goals and Profiles in during build to create war for specific environments using Maven.
Environment: Core Java 1.7, Tomcat, Eclipse Plugins(BPMN modelers, JBoss Drools ), Git/Git extensions, maven, WinScp, Putty, JAXB, XML, Oracle, Eclipse Kepler, SVN, XSD, Mocito, JUnit, Jenkins, Teamcity, Ant, Jsch, Windows 7, Linux, HP ALM, Hibernate.
Confidential, Jersey CitySenior Developer
- Worked with Operations to analyze the OCC document to understand the specification and created gap analysis document between the intended system and the existing system.
- Generated Model classes from the Position Schema of OCC system using JAXBAPIs.
- Designed and developed a batch application to download table data from PROD databases to flat files(by identifying business entity) using Core Java, Spring JDBC, Spring Batch, Log4j2, Multithreading, Executor Service, Executors, DAO Framework etc.
- Developed some "File Watcher" application, which loads data files to some secured location using SFTP, Core Java, JSCH (Java Secure Channel APIs).
- Designed and developed a reconciliation tool (POC), which takes metadata information about previous report runs and get the report results. It takes the report results as inputs and generates the delta difference. This delta difference is going to be the basis of the LOPR report. Used Java Collection, XML parsing, Java IO, and Generics API’s to code classes.
- Designed and developed application to parse Snap Shot data from OCC in the FIXML format and parsed it according to the OCC manual and uploaded using JDBC batch insert to the Sybase IQ database.
- Did coding to include issuers coded as SECTION 604 regulation under BHCA monitoring report. Changed Global Report to Regulation, Global Issuer to Regulation and Global Issuer to Threshold mapping. Tested in Dev and UAT environment.
- Coded change in business functionality to map Global Issuer to Regulation mapping and Global Product to Regulation mapping under the same Regulation and comments.
- Did a POC using Spring Batch to download Production data files of size 100 GB by a single threaded application to a data file.
- Developed Mock JUnit Test cases to mock Business functionality testing. Did JUnit data validation with static In-memory data instead of validation against database.
Environment: Core Java 1.5/1.6/1.7, JAXB, XML, Sybase IQ, Sybase ASE, DB2, Eclipse Kepler, SVN, XSD, Mocito, JUnit, Maven, Jenkins, Teamcity, Windows 7, Linux.
Confidential, Wilmington, DelawareSenior Developer
- Devised the algorithm, Coded to implement it (a Contract First Web Service) using Spring-WS, Spring MVC, Spring IoC, XSD, JAXB, DAO Framework, Exception handling, Collection and Core Java.
- Used Tidal Enterprise Client to create/modify scheduled jobs in windows based agent. Developed Java Server Side code used to be invoked from Tidal Clients. Promoted the jobs developed in Dev Tidal environment to QA and Production environment.
- Coded the Tax Form Generating Module for 2013 Tax year to generate tax forms for 1098, 1099-R,1099-S,1099-A,1099-C,1099-DIV,1099-INT,1099-MISC using Core Java, Collection Framework, Java Exception, XML, XSLT, Velocity Template, XSD and JAXB.
- Used Maven/ Git/Gerrit during development code check out and local build before the code check-in. Also used SVN version control system during source code management process for old style version management system.
- Coded Unit Test cases for every Java class using Junit/Mocito Testing Framework. In order to meet or exceed the high code coverage (90% minimum code coverage) used tools like JaCoco and EclEmma. Used tools like CPD, PMD, FindBugs to find subtle bugs in the application like duplication of code, unused code, improper indentation etc.
- Coded in Java Servlets, used to play the audio files needed depending upon the workflow executed for IVR application.
- Configured both 32/64 bit Tomcat instance for 32 /64 bit applications. Did performance tuning to the Server configuration for optimization.
- Designed, developed Server Side caching mechanism using Core Java, ehCache API, Collections, Spring API, RESTful API. Tested, bug fixed, deployed the application.
- Designed, developed, Coded the “KeepAliveConnection” implementation using Core Java, ExecutorService, Multi-Threading, Collection, Exception, Generics etc.
- Coded and configured Server Cache implementation using ehCache to enhance the performance. Implemented File based cache overflow configuration. Coded customized Cache Manager Factory classes to handle configurable Disk Store Location attribute.
- Implemented distributed Logging mechanism by using LOGback, logger and appender for each of the separate interfaces and web application.
- Coded using LOGback API and Java to implement per user Logging facility. Implemented Time and Size based Roll over policy for logger. Coded Logging Context set/ reset mechanism to facilitate the log files with different contexts.
- Developed solution to change the log levels of independent modules dynamically using UI tool. Implemented tool where users can view/download log files (for debugging purpose) for an environment without server access using RESTful API and Spring MVC.
- Developed Resource (images) Externalization Framework using Spring MVC to keep resources out of the deployed war file using Spring MVC.
- Coded Mock client interface as a backup of the actual implementation (when service is down) using Spring AOP.
- Developed data access implementation using DAO Framework, spring JDBC Template and SQL Named Query.
- Coded web service client implementation using Spring MVC, Restful Web Service API. Retrofitted SOAP based client code implementation.
- Used AntHillPro during DEV/QA/UAT built process to maintain automatic build life cycle management.
Environment: Core Java 1.6, Spring (MVC, IoC), Spring-WS, log4j, Git/ Gerrit, SVN,SOAP,JMS/MQ series, XML, XSLT, XSD, AntHillPro, Eclipse, Mocito, JUnit, Maven, Callable Statement, Stored Procedure, Velocity Framework, Apache tomcat, Jenkins Slave, CPD, PMD, JaCoco, FindBugs, EclEmma.