Adit Prakash Bhiday, Full Stack Professional
●Experience in leading development teams of up to 12 developers, including some who worked offshore. Experience in mentoring junior developers.
●Expertise working on Integration architectures using messaging, SOAP web services (both document/literal and RPC based), REST services and Enterprise Service Bus (Oracle Aqualogic Service Bus).
●Expertise in working with relational databases and the procedural languages associated with them. Have worked on Oracle, Oracle PL/SQL, MS SQL Server, Transact SQL, Sybase, DB2, MySQL, PostgreSQL and Hypersonic SQL.
●Extensive experience in working in the Storage, Networking, Banking, eCommerce, Semiconductor and Aviation Domains.
●Excellent communication, analytical, technical and problem-solving skills.
●Ability to build relationships, establish credibility and build rapport with stakeholders at multiple levels, including those external to the organization.
Oracle Certified Java Programmer 2.0
Training Programs attended
Big Data and Hadoop from Edureka: Nov – Dec 2014
●Master of Science in Software Systems, Birla Institute of Technology and Science, Pilani, India.
●Accelerated General Management Program, Indian Institute of Management, Ahmedabad, India.
●Bachelor of Technology, Electrical Engineering, Indian Institute of Technology, Mumbai, India.
Java, C, C++, Java script, Groovy, PL/SQL, XML, XSL, HTML, XML, UML.
Apache Struts, Angular, ExtJS, NodeJS, JQuery, NodeJS, Grails, Spring, Hibernate, JUnit,
Unix (IBM, Digital, HP), Linux, Windows
Web Services Tools/Technologies:
WebLogic, GLUE Toolkit, SAML, OAuth 2.0, Apache Axis, Jersey, Spring Boot
EJB, JMS, JDBC, JSP, Servlets, JNDI, JCA, JCR
Web, Application and Message Servers:
Web Logic Server 10.x, JBoss, ActiveMQ, Oracle E Business Suite (Apache Web Server), Resin, Glassfish, WebSphere Application Server, IIS, Tomcat, Jetty, JRun.
Enterprise Service Bus
BEA Aqualogic, JBoss Fuse ESB, Apache Camel
Oracle, MS SQL Server, Sybase, DB2, MySQL, PostgreSQL, HSQLDB
Apache Jackrabbit, Modeshape from Red Hat
NoSQL / Big Data:
Neo4j, Cassandra, MongoDB, Hadoop, HDFS, Map Reduce, Pig, Hive
Cloud Computing Platforms
Amazon Web Services (AWS) (Lambda, S3, API Gateway, EC2, SNS, SQS, RDS, YAML)
CORBA, Tuxedo (MSGAPI), RMI, SOAP, REST
Rational Rose, Visio, ArgoUML.
RUP, Agile, Waterfall
Development, Containerization, Build and Testing Tools:
Ant, Maven, Bamboo, Docker, Cucumber, Jenkins, Sonar, JMeter, JBuilder, Eclipse, JDeveloper,.
Clearcase, Perforce, Git, Visual Source Safe, CVS, SVN, MKS, pVCS
Client: Credit Suisse, Morrisville, NC Oct 2017 – Dec 2019
Project: ProPL API
Role: Senior Full Stack Engineer
This project involved the development of a REST API, which provided services to perform CRUD operations on an Oracle database. The microservices architecture was used to design and implement this API.
Architecture and design of the ProPL API, to account for multi tenancy, caching, and conformance to the HAL specification. Documented the architecture and got it reviewed by concerned stake holders.
Design and development of resource specific REST endpoints, which modelled entities in the database.
Creation of Cucumber feature files and step definitions, to create functional tests for the requirements.
Modernization proposal for a new technology stack for a monolithic system called ServiceLive. The new proposal would use Spring Boot, Docker and AWS API Gateway for microservices implementation. Also, as a part of the proposal was a shift to the Amazon cloud (AWS).
Support and maintenance of the legacy API, called CCAR, which ProPL was aiming to replace.
Interaction with chief architects, business users and product owners, to better understand requirements of the API.
Analysis to understand how Spring Batch could be used in ServiceLive. Spring Batch was recommended as the technology to use for future batch job implementation. Existing batch jobs used Quartz, Cron and Control-M for scheduling. Spring Batch would add the quality of resiliency and the ability to administer these batch jobs.
Environment: JEE, Java 8, WebLogic, Maven, Swagger, Spring Boot, NodeJS, Oracle DBMS, REST, Hypermedia Application Language (HAL) Postman, Amazon Web Services, Docker, Kubernetes, Microservices, Cucumber, Jenkins, Crucible, Fisheye, Subversion.
Client: Argo US, Richmond, VA April 2016 – September 2017
Project: Integration Framework
Role: Senior Full Stack Engineer
This project involved the integration of Argo’s web portals with Argo’s back end systems. Argo US is in the business of providing underwriting services and offers casualty insurance services. There were various agents, who operated their own web portals on behalf of Argo US, which in turn were used to sell casualty insurance of various types. The portals, which sold the insurance policies, used the Stripe payment system to receive money from the insured, in lieu of the insurance policies, which were issued. The Integration framework facilitated the movement of policy, billing and claims data between the portals and Argo’s back end systems. This integration had to be done for multiple insured facing web portals, in addition to some back-end jobs, which had to be implemented for book keeping.
●Collaborated with the Argo Architect and SMEs to come up with a technical design for the proposed Integration framework. The architecture used the Fuse Enterprise Service Bus for routing and integration. Held meetings with stakeholders and business analysts to get feedback about the proposed design.
●Implementation and unit testing of the billing integration part of the Integration framework. The web portals used the Stripe payment system to accept payments.
●Used AWS Lambda functions to encapsulate invoice processing logic into scalable executable code. The Lambda code was written using Java and uploaded to the Amazon cloud using the AWS Eclipse plug in.
●Used AWS API Gateway to expose the AWS Lambda functions as REST services. Used SNS for notifications and SQS for queueing.
●Design and implementation of the Eager.To web portal using AngularJS 1.5, HTML and CSS.
●Integrated 2 web portals – Eager.To and Protector with Argo’s back end systems – Sirius and CAPS.
●Used various integration patterns to accomplish the integration – splitter, aggregator, content based router etc.
●Used Spring Data to store the JSON envelopes, obtained from Stripe into a MongoDB store for auditing purposes.
●Responsible for the deployment and support of the application on the AWS cloud.
Environment: JEE, Java 8, JBoss Fuse ESB, Apache Camel, Maven, AngularJS, Angular 4, Docker, OSGI, Spring Boot, Blueprint, Amazon Web Services, YAML, Microservices, MongoDB, Oracle, MS SQL Server, REST, Quartz.
Client: FedEx, Colorado Springs, CO Nov 2015 – Feb 2016
Project: VISA Modernization – PF3 Replacement Design
Role: Technical Architect
This project involved the modernization of an application, which was implemented using COBOL, Mainframe and the IMS database. The VISA application in FedEx was used to add, modify, delete and view FedEx Air Waybill information. A FedEx Air Waybill captured all details about a FedEx shipment – the sender, recipient, description of contents, whether the content was hazardous, weight, size etc. FedEx wanted to move away from the Mainframe environment and move towards a modern web-based architecture for VISA, which would enable the VISA application to be accessed from any PC, mobile or handheld device. The scope of this project was to document the proposed User Interface and the Technical Design for the new web-based system.
●Technical design and documentation of the proposed new web-based system for VISA. The new system would use JEE as the platform along with Spring on the middle tier and Spring Data on the ORM tier. It used Jersey, HTML 5, CSS 3 and AngularJS on the presentation tier.
The middle tier used the micro-services design, to transfer data to/from the HTML clients. Additionally, Tibco’s ActiveSpaces distributed cached was used to cache data on the middle tier, to improve performance.
●Had discussions with the FedEx architects, to discuss various candidate architectures for the new system and narrow them down to two candidate architectures for the new system.
●Documented the architecture using the 4+1 view model of software architecture. Used the logical and physical views to depict the chief architectural components.
●Low level design and documentation of the new system. The low-level design carried on from the high-level architecture and documented the dynamic and static aspects of the system using sequence diagrams, class diagram and data flow diagrams.
●Contributed to the development of the UI prototype which was based on Angular JS.
●Review of the architecture and design document with the FedEx architects.
Environment: JEE, Tibco ActiveSpaces, Micro-Services, Spring 4.x, Spring Boot, REST, Spring Data, HTML 5, WebSphere Application Server, CSS 3, AngularJS, IBM Mainframe, IMS, COBOL.
Client: Wells Fargo, San Leandro, CA Sept 2014 – Oct 2015
Project: SIMS (Security and Identity Management System)
Role Senior Full Stack Developer
The SIMS platform exposed a suite of SOAP web services, which could be consumed by client applications within Wells Fargo, who were required to authenticate and authorize their online users.
●Design and development of the Online Wire Transfers project within the SIMS development team.
●Developed SOAP services to enroll and unenroll a user with the ACE RSA server and to ensure delivery of a SecureID token to the user. Also wrote services to validate a token Id with the ACE RSA system. Apache Camel was used to implement the SOAP service and it involved defining the routes using the Spring XML Configuration.
●Developed SOAP clients to consume services, which were exposed by other systems, within Wells Fargo and persist the data to a persistent store. Apache Camel was used to define the entire workflow, consisting of the invocation of the web service and the persisting of data into the DB.
●Writing DAOs and POJOs using Spring Data to perform CRUD on the Cassandra data store.
●Wrote unit tests using Junit and integration tests using WFXML, to test the written functionality. Wrote Apache Camel integration tests to test the routes defined in Camel.
●Resolution of issues, which came up in the production, test and integration environments. The environments used RHEL Linux.
Environment: Java 6, JEE, Spring 3.x, WebLogic, Apache Camel, RHEL Linux, Cassandra, Bamboo, Apache CXF, Hibernate 3.x, WFXML,
Client: Netapp, Inc., Sunnyvale, CA Aug 2013 – Aug 2014
Role: Full Stack Developer
The Recommender application was an n tier web-based application, which was used by the Sales team to decide upon a Storage technology from the Netapp portfolio, which would be the correct fit for the customer requirements. Netapp had a wide range of Storage platforms and technologies, which could be sold to customers and clients, to satisfy their storage requirements. These platforms and technologies were Flash cache, Flash Pool, Flash Accel, EF and E Series etc. Each of these technologies performed well on some requirements, for example, performance and latency, whereas performed poorly on some other requirements, for example, cost, rack space, replication, availability etc. The goal of Recommender was to assign scores to these technologies and platforms, based on the answers that were given by the customers to preselected questions that Recommender displayed. The technology or platform with the highest score was then presented to the customer as the recommended storage solution.
●Responsible for the architecture, design and development of the application. Led the design of the micro-services, which were hosted on a clustered WebLogic Server. Responsible for the creation of the data model and the object model on the server side.
●Contributed to the decision on the technology stack, which was finally used. Responsible for laying out the initial structure of the project, including Maven build scripts, JPA entities and Spring Data JPA Repository interfaces.
●Helped and mentored other team members in the areas of the technologies, which were used, the best practices, which had to be adopted and the low-level design of the services, which had to be implemented.
●Wrote and unit tested the JPA entities, the DAOs and REST/Java services. Responsible for the creation and maintenance of the seed data, which had to be inserted into the database tables for Recommender to work properly. The seed data dealt with the questions and possible answers, which were shown to the user.
●Actively involved in Database related activities like creation and changes to the Oracle schema, creation of sequences and the copying of schema and seed data between development, staging and production environments. Responsible for maintaining the schema creation scripts and the data insert scripts in Perforce.
●Involved in the performance tuning of the Java services by using lazy loading features, auto-wiring and creation of Database indexes.
●The presentation tier was developed using Angular JS. Was responsible for helping the UI development team and helping them troubleshoot issues.
Environment: Java, JEE 6, Oracle WebLogic server 10.3, Spring framework 4.x, Spring Boot,Spring Data JPA, Micro-Services, Jersey 1.8, Jackson 1.7, Oracle Database 11g, Perforce, AngularJS.
Client: State Street, Boston, Massachusetts. Sep 2010 – July 2013
Project: Webtag Resiliency
Role: Senior Java Engineer
The Webtag Resiliency project was basically concerned with providing the ability to failover to an application called Webtag. Webtag was a JEE application, which was responsible for the distribution of reports written by analysts to various parties, who were interested in viewing it. Since it was very critical that the interested parties got the reports on time and without disruptions, hence it was essential that Webtag experience close to zero downtime. What was needed was the ability for a parallel, running, secondary Webtag instance to take over the processing from a primary Webtag instance, which had failed suddenly. Since Webtag was deployed on Weblogic and used the file system and a database to store files and data respectively, the goal was also to provide a secondary file system and database, which could be used, in case, if the primary ones failed.
●Authored an architecture document, which proposed a way to provide transparent failover from a primary Webtag instance to a secondary Webtag instance, which was running on a different application server and using a different file system and database.
●Designed and implemented a prototype as a proof of concept for the architecture. Conducted performance testing using the prototype.
●Responsible for creating a local development environment for the application by mocking up external stimuli.
●Responsible for the configuration and deployment of the application using a multi pool. The multi pool was configured for fail over in which the failover database server was continuously synched up with the primary database server using replication.
●Redesign and modification of the webtag application in order to provide failover capabilities to the entire webtag application. Redesign involved checkpointing the state of the application regularly to the database.
●Responsible for the introduction of the Spring framework, JPA/Hibernate and Struts frameworks in the application. The earlier application used EJB 2.0 beans, JSPs and Servlets.
●Created and configured Struts’s struts.xml, Spring’s applicationContext.xml and JPA’s persistence.xml file to configure the presentation, middle and ORM tiers.
●Contributed to the support, maintenance and bug fixing of the application, while it was deployed in production.
Environment: JEE, Oracle Weblogic 10.3, Spring Framework, Hibernate, State Street’s private cloud, EJB, JSP, JQuery, Servlet, Sybase, UNIX.
Client: Corventis, Singapore Jan 2010 – Aug 2010
Role: Senior Java Engineer
The Voyager product was designed for the medical insurance companies and enabled them to submit claims information and get replies from the CMS (Claims Management System), which was managed by the US Government. Voyager was a three-tier web based application, which used the MS SQL Server DBMS for its persistence needs. It had a presentation tier, which was based on servlets and the middle tier used the Spring framework in order to harness middle tier services.
●Responsible for reviewing the existing architecture of the application and recommending changes for improving the performance of the system.
●Establishing processes of code review and documentation in the project team.
●Experimented with using the READ_COMMITTED_SNAPSHOT isolation level in the MS SQL Server DB instead of READ_COMMITTED. Implemented the READ_COMMITTED_SNAPSHOT isolation for the Voyager application.
●Made changes to the application so as to use optimistic concurrency for database access.
●Implementing best practices in the project, like using Spring’s declarative transactions, event propagation, and use of JPA/Hibernate along with Spring etc.
●Prototyping and exploration of the Fitnesse testing framework, from the point of view of determining the suitability of the framework for the project.
●Used AWS to create Amazon Machine Images and to deploy the application on the Amazon cloud for the testing and production environments.
Environment: JEE, MS SQL Server 2005, Spring 2.x, Drools, ActiveMQ, Amazon Web Services, Quartz Scheduler, Spring MVC.
Client: Credit Suisse, Singapore May 2009 - Dec 2009
Project: Report Factory
Role: Senior Java Engineer
This project was concerned with two chief deliverables (a) Creating a flexible reporting framework, which any application in Credit Suisse could use to add reporting functionality (b) Conversion of existing reports based on Actuate to Jasper reports. The reporting framework used the open source Jasper Reporting libraries in order to satisfy report requests made by applications within State Street. The framework was designed for scalability, performance and extensibility, so that numerous applications in Credit Suisse could offload their reporting needs to this framework
●Contributed substantially to the final architecture of the framework, which was implemented. Responsible for converting the requirements, which were obtained from the business analyst to a concrete technical design and documenting the architecture using the 4+1 model.
●Design and development of the web interface for the application. Designed and developed the entire stack along with rest of the team. JMeter was used to load test the web interface of the application.
●Used the Jersey library to expose Java services on the middle tier as REST web services.
●Worked on an Android client, which made use of the REST services exposed by the middle tier. The Android client used those services to query for status updates regarding report generation.
●Designed the Database schema to persist the report scheduling information to an Oracle database.
●Annotated Java classes with JPA annotations in order to map those java classes to their corresponding tables in the database.
●Created and maintained Struts’s struts.xml, Spring’s applicationContext.xml and JPA’s persistence.xml file to configure the presentation, middle and ORM tiers.
●Contributed to the design, development and unit testing of the report generation choreographer of the application.
●Mentoring of junior developers in the team – providing them technical guidance and solutions.
Environment: JEE, Struts, JUnit, Websphere Application Server, Spring, REST Web Services, EJB 3.x, Hibernate, Quartz scheduler, Oracle RDBMS.
Client: General Electric. Jan 2009 – April 2009
Project: Java Service Offering
Role: Java Engineer
The Java Service Offering group was responsible for developing Proof of Concepts on emerging and prevalent technologies, conducting webinars on important technology topics, responding to RFPs and deciding on the system architecture for projects in Satyam.
●Authored an architecture document for a Point of Sales application. This architecture was finalized after requirements analysis, research in the Point of sales standards and specifications available and some open source applications for Point of Sales, which were available on the internet
●Conducted a webinar on JPA (Java Persistence API) after doing some research on the topic. The webinar had close to 300 participants and was attended by associates from various Satyam offices.
●Came up with a system architecture, which was presented as a response to an RFP (Request for Proposal) from General Electric.
●Responsible for mentoring technical resources and helping them develop prototypes on bleeding edge technologies.
Environment: JEE, Spring, EJB3, Toplink, BEA Aqualogic ESB, ActiveMQ, Tomcat, Struts.
Client: Indiatimes, NCR, India Sept 2008 – Dec 2008
Project: Indiatimes Auto B2B Portal
Role: Java Engineer
This project was aimed at providing the client (Indiatimes), the ability to conduct auctions of automobiles. A potential seller of automobiles had to register with the site and after obtaining proper approval could conduct auctions in order to sell his inventory of automobiles. Buyers would also have to register and after approval could place bids in order to buy the automobile being auctioned off.
●Responsible for the architecture and design of a module which enabled credit limits to be allocated to a potential buyer of an auction. The buyer could place bids in an auction so as not to exceed the credit limit allocated to him.
●Responsible for interacting with the Business Analyst and coming up with a High level and low level design
●Designed the database schema for this module.
●Development and unit testing of the Java classes, which represented tables in the database. Hibernate was used as the ORM framework.
●Responsible for monitoring the development after the design phase and solving any issues which a team of 12 developers faced.
Environment: JEE, Spring 2.0, Hibernate 3.x, DB2, Struts, XML, JSP, HTML.