profile-pic

SHREYAMPAUL

Experienced Application Developer with a demonstrated history of working in the information technology and services industry. Skilled in Java, Spring, Hibernate,Spring Boot, Microservice ,Rest API , Weblogic, Spring reactive, AWS,Azure Devops,GIT, Angular,Java script,Plsql

  • Role

    Senior Software Engineer

  • Years of Experience

    7 years

Skillsets

  • Github
  • Kubernetes
  • Microservices
  • AWS
  • Kubernetes
  • Docker
  • Hibernate
  • Spring Boot
  • Java
  • Windows
  • Spring reactive
  • Pl/sql
  • Microservices
  • Mac
  • Linux
  • Jira
  • Java - 7 Years
  • CSS
  • CI/CD - 2 Years
  • Hibernate - 4 Years
  • Spring Boot - 5 Years
  • Azure Cosmos DB
  • Kafka - 2 Years
  • REST API
  • Azure DevOps
  • Docker - 3 Years
  • Kubernetes - 3 Years
  • Jenkins
  • AWS - 2 Years
  • HTML5
  • Angular
  • Spring Boot - 5 Years

Professional Summary

7Years
  • Jun, 2023 - Present3 yr 3 months

    Technical Analyst

    COFORGE
  • Mar, 2022 - Jun, 20231 yr 3 months

    Specialist Software Engineer

    LTIMINDTREE
  • Sep, 2020 - Mar, 20221 yr 6 months

    Associate Application Developer

    ORACLE FINANCIAL SERVICES SOFTWARE
  • Oct, 2017 - Sep, 20202 yr 11 months

    System Engineer

    TATA CONSULTANCY SERVICES

Applications & Tools Known

  • icon-tool

    Java

  • icon-tool

    PL/SQL

  • icon-tool

    Microservices

  • icon-tool

    Spring Boot

  • icon-tool

    JPA

  • icon-tool

    Angular

  • icon-tool

    Azure DevOps

  • icon-tool

    Jenkins

  • icon-tool

    HTML5

  • icon-tool

    Kubernetes

  • icon-tool

    AWS

  • icon-tool

    Kafka

  • icon-tool

    Azure Cosmos DB

  • icon-tool

    Docker

  • icon-tool

    AWS

  • icon-tool

    Weblogic

Work History

7Years

Technical Analyst

COFORGE
Jun, 2023 - Present3 yr 3 months
    Working as a Technical Analyst in Walmart's last-mile delivery; Designed and developed reusable software components, reducing development efforts by 50% across three different projects; Developing REST APIs using Java 17, Spring Reactive, Azure Cosmos DB, Kafka, Kubernetes, and Docker; Working on Mockito and JUnit integration, as well as code coverage.

Specialist Software Engineer

LTIMINDTREE
Mar, 2022 - Jun, 20231 yr 3 months
    Worked as a Module Lead in Philips ITAAP Microservices integration project; Developed REST and SOAP based Microservices using Java 11, Spring Reactive, Kubernetes, AWS, PostgreSQL; Exposure to CI/CD pipelines using Azure DevOps; Optimized REST and SOAP Microservices, reducing latency by 40% through performance tuning and load balancing.

Associate Application Developer

ORACLE FINANCIAL SERVICES SOFTWARE
Sep, 2020 - Mar, 20221 yr 6 months
    Worked on the Treasury module of the FLEXCUBE product, incorporating the latest features of Java 8 and Oracle 19c; Implemented the OBMA product in the banking domain using Microservices and Spring Boot; Exposure to the CI/CD pipeline process using Jenkins and WebLogic.

System Engineer

TATA CONSULTANCY SERVICES
Oct, 2017 - Sep, 20202 yr 11 months
    Worked on the Underwriting module in the insurance domain, incorporating the latest features of JAVA 8; Developed the product workbench module for TCS BaNCS using AngularJS, Java, and PL/SQL; Worked on Electronic Data Exchange EDI for uploading claims under the Eclaim module of the TCS BaNCS insurance system.

Major Projects

4Projects

Walmart LMD

    Designed and developed reusable software components, reducing development efforts by 50% across three different projects; Developing REST APIs using Java 17, Spring Reactive, Azure Cosmos DB, Kafka, Kubernetes, and Docker; Working on Mockito and JUnit integration, as well as code coverage.

Philips ITAAP Integration

    Developed REST and SOAP based Microservices using Java 11, Spring Reactive, Kubernetes, AWS, PostgreSQL; Exposure to CI/CD pipelines using Azure DevOps; Optimized REST and SOAP Microservices, reducing latency by 40% through performance tuning and load balancing.

Goldman Sachs ERA

    Worked in various products related to Risk domain which are built on Microservices platform; Identified and remediated risks and vulnerabilities in applications, improving performance.

FLEXCUBE

    Worked on the Treasury module of the FLEXCUBE product, incorporating the latest features of Java 8 and Oracle 19c; Implemented the OBMA product in the banking domain using Microservices and Spring Boot.

Education

  • B.Tech, Electronics & Communication Engineering

    Heritage Institute of Technology (2017)

Certifications

  • Aws certified developer - associate (dva-c01)

  • Building scalable java microservices using springboot & spring cloud

A Few Screening Questions Before You Begin

Hi. This is Shreyam Paul. So I'm basically from West Bengal, Kolkata. So, I have experience of around 7 years right now, and apart from that in Java technology, I have experience of around 7 years. In terms of tech stack, other technologies like Ring board microservices, I have experience of around 5 plus years. And regarding DevOps, cloud technologies like AWS and Azure, I have experience of around more than 1.5 years. Also, I have experience in tough technologies around 2 years right now. And right now, I'm working with Cocoa as a Java backend developer. And, yes, I'm working with Copart, and my client is Walmart. So I'm working directly with the client right now. And, basically, I'm working with them on their post-pandemic projects.

Okay, so you have to tell your discuss. Okay? Like, if you talk about discussing that, I can say in a typical saga design pattern, basically. So the coordination is crucial to manage the distributed transaction with a central coordinator. And this is because if we talk about each microservice managing its own database, the transaction needs to be broken down into smaller and isolated steps that can be rolled back independently if needed. So there are two types of saga design pattern. Like, we have choreography. Each microservice is responsible for specific events. Of course, there's no central orchestrator. So each service is responsible for knowing which events to act on or which events to ignore for the next step in sequence. This works well for simpler workflows. There's another thing in Saga and Fireflies which is orchestration. And so a central orchestrator is responsible for initiating or managing each step of the transaction. So the orchestration basically invokes each microservice in the correct sequence and handles all compensating transactions. So in orchestration, the central orchestrator is responsible for managing all compensating transactions, and in case of choreography, each microservice is responsible for its own actions.

If we talk about that, in case of maintaining code quality, first of all, I have to do a code review. So, implementing the code review process is essential. If doing the code review helps catch bugs or knowledge sharing at first, all those things will happen. Then, coding standards and guidelines should be in place. There should be coding standards and guidelines. And we have some automated testing. We can write automated test cases or functional integration test cases, which will help us achieve high-level code quality. We also have to set up the CICD pipeline, which basically ensures that every change is automatically tested and deployed. We can also do some static code analysis, like SonarQube, Code Climate, or Jetbrains. We can also use pair programming to encourage two developers to work together, so they can get real-time feedback and faster problem-solving. We also have to encourage team members to refactor code. Once that happens, during free time, we can help reduce technical debt to improve maintainability. All those things should be in place. And we should set quality goals, like establishing quality metrics, such as a code coverage target of 80%. Bug rates should also be tracked.

So you have to create a Docker file for a dev application. Okay. Output detection is like in Maven, you can do that. Yes, first of all, in Maven, what we can do is creating the Docker file for a Java application with Maven. It will involve some key steps. First of all, you have to build the Maven project, then you have to write the Docker file. Every Docker file for an application should be written with all the required target information. Then we have to expand on the Dockerfile step. The first stage, the build stage, happens. The second stage, the run stage, happens. Right? What will happen from all those steps, which will be there. Then build and run the Docker image. Suppose you have to build the Docker image by using Docker build, then run your application on a Docker container with Docker run my Java app. So first, build the image, then run the image. Then you will have to test the application. These are the basic steps.

So I have to manage. How can I manage this? Yeah. Like, we can use a Kubernetes cluster kind of like such kind of API keys. whatever we have to create a like in case of Kubernetes FortiGRID, like a config dot yml or secret yml we can create. Okay. So Kubernetes has those kinds of secret objects that are specifically stored or managed the sensitive data. So how can we use it? Like, either we can create a YAML file, or we can go directly to the format, like do those things. Right? Like, we can directly use a YAML file. Right? API version, you have to select, then what is the kind all those things will be there. Like, we have a kind of the secret or kind will be config. So in config, you have to give config, but in secret, you have to give secret. And then we have to provide under that data. We have to provide all those things such as username. And after doing that, like we have to create the secret file and we have to apply that in Kubernetes format, like kubectl apply -f then YAML file. So in this way, I guess, we can use all those things.

Okay, let's first choose, but first of all, what will be the tool for CICD? Like, we can use Jenkins or we can use GitLab CICD, or we can directly use GitLab, GitHub Actions, or any other tools. Then we have to design the pipeline for the microservices. Right? And then, we have to create, like, automate the build and test all those things. We have to containerize the microservices. Those kind of things, we have to use all those things and implement the deployment strategy. We use Kubernetes or any other, that is also fine. And we also automate that, yes, you can give me some kind of gate. Also, you can do monitoring or logging. Those also, you can do.

So here's how we can use to. Okay. What could be that change now is class loader. It's not the concept of sales message, sales logic. This is not the file. Okay. Basically, I guess it is validating the first principle, single responsibility principle. Like, according to the single responsibility principle, that class should have only one reason to change, meaning it should have only one responsibility. But this logger class is responsible for two different log mechanisms, like logging to console or logging to file. So to add if you want to add to the single responsibility principle, we should separate the responsibility by creating different classes for each logging responsibility, like one for a console logger and one for a file logger. And so this would make each class responsible for one type of logging, allowing them to modify independently. So I think this is the way we can do as per my understanding, like getting an abstract class and also.

So private synchronized plus, single data, single channel plus. So they are here, they are using double check locking if I'm not wrong. The code is basically using double check locking. So I think the main issue should be the instance should be volatile, I guess. Like, the static singleton instance, that should be volatile if I'm not wrong. So volatile, it will if we declare the instance as volatile, it will prevent the instance from being partially constructed and ensure the visibility of changes is posted. The given thing is of course, the given thing should be there.

Finally speaking. I'm not sure about that. I'm not sure, but I don't know about this.

Resilient transaction management, we can use, like, it should be there. We can use a direct transaction annotation and manage all those string boot. This is a string boot annotation and a transactional. And also, you can use a strategy or a propagation level, in which, using the annotation, we can do that.

I'm not aware about this, so it's better not to answer this question. Thank you. Have a nice day.