- Track record of 8 years in delivering Quality & Secured Java/JEE based solutions in Banking, Supply Chain Management & Telecommunication.
- Experience in Architecture Design (Java/J2EE, Microservice).
- Hands on experience in developing microservices from ground and converting large applications into microservices.
- Hands on experience in Angular - Js & Node-Js.
- Experience in PLSQL & Database Objects.
- Hands on experience in UNIX & Shell Scripting.
- Hands on experience in analyzing and solutioning heap memory issues.
- Hands on experience in API lifecycle management tools.
- Hands on experience in building Dev Ops CI/CD pipeline.
- Experience in Automating API/Microservice Testing in Karate (Cucumber) Framework.
Java/J2EE: Core java, Micro-Services, Struts 1 & 2, Spring (core, JDBC, Boot, AOP, MVC, DSL Integration), OAUTH2, JWT, Web Services (REST & SOAP), Hibernate, Servlet, EJB (MDB), Actuators, JPA, JDBC, JUNIT.
Application and Web Servers & Containers: Jboss, Apache Tomcat, WAS, K8S, Open Shift.
Database: Oracle, MySQL, Maria Db, Cassandra, Hadoop.
Software Development Techniques & Practices: Agile Scrum, DevOps, TDD.
Other Tools of SDLC: IBM API Connect, IBM Urban Code Deploy, Service Virtualization (LISA), Autosys, Jenkins, GIT, Bitbucket, Dynatrace, HA456(IBM Heap Memory Analyzer), SONAR Qube, JIRA, Service Now, Version One, Swagger.
Automation Testing Frameworks: Karate (Cucumber) Test Automation.
Sr. Software Engineer
- Create a Swagger document with MS modules like request, response and security etc. This swagger document is used to generate code skeleton of spring boot REST MS & to publish MS in APIC.
- Create Spring boot Microservices architecture considering lightweight, single responsibility, domain specific points.
- Design MS architecture to read accounts, transactions data from Hadoop using hive.
- Break existing MS structure to accommodate Pipeline by removing EAR/WAR
- Develop Jenkins pipeline files to include pipeline stages like initialization, run unit tests, sonar scan, build, deploy to WAS and Open shift, send pipeline results etc.
- Convert wars to jars to deploy in cruise/OpenShift container.
- Develop Spring boot microservices to interact with REST and SOAP services, Oracle database, Hadoop database.
- Integrate spring boot with Kerberos security to connect to Hadoop via hive.
- Implement message level security using JWT.
- Provide OAUTH 2 security using IBM APIC and data power.
- Develop spring DSL integration layer to call data access layer.
- Develop cross cut jars like exception handling, saving user accepted terms and conditions before invoking a microservice, request response logging feature, Validate Header parameters (Origin, content type, accept etc.), common response structure using HTTP Error codes and HTTP response status etc.
- Develop spring aspects to intercept incoming request for authorization and entitlements check.
- Develop custom health check using actuators for MS endpoints.
- Analyzing memory leakage, largest objects occupying memory and other heap memory aspects using Dynatrace & IBM heap memory analyzer.
- Above issue was resolved by increasing heap memory in WAS, Java code cleanup (by removing Sonar Scan code smells, remove unused gradle dependencies, static string constants, reduce method complexity by breaking the code and simplifying it, remove String concatenation, apply generics upper bounds on all the collections, remove dead of code).
- Develop Junit’s to cover end to end flow using Mockito.
- Develop ASCII/REST Docs in JUINTS.
- Publish products and API’s in APIC.
- Create gateways scripts to validate Request Headers like Origin, Client Id, content Type, Accept etc.
- Create APP’s to subscribe Products/APIs.
- Generate Dashboards for analytics’ and profiling of API’s to show requests received, success and failure rates, different organizations consuming API’s.
- Once a MS is deployed in production it has to be monitored and supported for 30 days.
- Trouble Shooting Prod issues and provide resolution.
- Check incoming requests and response to calculate reports of failure, success, number of calls received etc. using Dynatrace.
- Generate PROD API usage, memory usage report using Dynatrace as needed.
- Perform peer code review to maintain code quality and maintainability.
Sr. Software Engineer
- Designed Architecture of multiple Spring Boot Applications.
- Introduced idea of micro-service to table concept. This involves one to one mapping between micro-service and table of sensitive database. Each micro-service will interact with only one table to perform LASER (List, Add, Show, Edit, and Remove) operations.
- Developed multiple Spring Boot MS’s on Sensitive database tables to be deployed in K8S with individual running 4 to 6 PODS.
- Address multiple check points like, time to response, code quality, Exception handling & Recovery, logging, Junit code coverage etc. I was involved in improving performance MS’s. This process involves examination of code flow, checks for logging, run and analyzes sonar lint and finds bug reports. Tune SQL queries for less execution time. Java code Refactoring and clean the MS.
- I was involved in coding stories in angular JS and node JS API’s. Designing Structure of Node JS API’s. Invenio is designed using Angular 1.6; Node JS and React JS. UI interact with Node JS to perform DB operation, other REST service calls and other frameworks like Graph database, Solr etc.
- Designed procedures and functions to perform data file load process, validate subscription and publish requests, and bulk load which involved reading multiple tables directly and via other functions.
- Created triggers to perform logging and bookkeeping.
- Once a story is deployed in production it has to be monitored and supported for business users.
- Troubleshooting involves Debugging, log verification, Reproduce same issue in UAT. Email resolution to users
- Earlier version of spring boot applications creates lot of logs and collect data. Developed cleanup and backup script to clean server logs, Application logs and backup data from prod.
- Code review in Java, Angular JS and Node JS for pull requests
- Requirement Analysis & Supporting BSA’s in Creating User Stories
- I have successfully lead team working at offshore location to deliver more than 20 sprints.
- Support Deployment and provide post deployment warranty.
- Designed and Developed new payment system called Broadridge which takes payment wire in a pipe separated format and transforms it into SWIFT format and processes it.
- Developed Workflow of this system is. Which Transforms pipe separated wire data into SWIFT format validate payment request stop wire for maker, checker and approver check Perform OFAC treasury Check Perform actual payment workflow Perform Book keeping This system’s entry point starts from Message Driven Bean and after performing basic java validations of input. Entire object is given to Oracle Procedure to validate. Procedure performs all the validations and checks. Some of major ones are Sender and Receiver validations, Currency validation, Value Date and Country validation, Amount validation, Forex conversion, Validation of Upstream system from which wire arrived, Validation of book-keeping system, Country holiday, business holiday, Currency Code, Value amount etc. Once validation is performed wire stops for multiple approvals this is designed in java and oracle objects. If all the approvals are done actual transfer workflow is performed and wire is book kept.
- Designing and coding wire data validation and transformation
- Algorithm is implemented in java. From pipe separated wire data it extracts senders comments and removes specific treasury related codes and their prefix and suffix to predefined characters.
- Writing Shell scripts to automate manual process
- Production Support
- Understanding Requirements, Designing Functional Requirement Documents & Technical Design Documents.