profile-pic
Vetted Talent

Gourav Chatterjee

Vetted Talent

Highly skilled Full Stack Developer with 5 years of experience with a knack for architecting and maintaining

scalable web applications. Proficient in a range of technologies including Node.js, React, Next.js, and adept in

DevOps practices. Specialized in crafting seamless user experiences and optimizing performance. Committed to

delivering excellence, I am prepared to dedicate my utmost effort to elevate your projects with innovative

solutions and meticulous attention to detail.

  • Role

    Backend Developer

  • Years of Experience

    5.1 years

  • Professional Portfolio

    View here

Skillsets

  • Sequelize
  • Docker - 3 Years
  • Express Js
  • Nest.js
  • Solidity
  • Mongo DB - 4 Years
  • React Js
  • web3.js
  • Thirdweb
  • Vue JS
  • Polygon - 2 Years
  • EKS - 1 Years
  • RESTful API - 4 Years
  • S3 - 3 Years
  • AWS - 3 Years
  • GCP
  • Shell Scripting
  • Azure
  • JavaScript - 5 Years
  • Node Js - 5 Years
  • Next Js - 1 Years
  • Blockchain - 2 Years
  • DevOps
  • CSS - 5 Years
  • React Js - 4 Years
  • Vue JS - 3 Years
  • HTML - 5 Years
  • React Js
  • PHP
  • MySQL
  • Type Script - 1 Years
  • Tailwind CSS
  • Firebase
  • Kubernetes - 1 Years
  • Terraform
  • GraphQL

Vetted For

9Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Front End Developer (Remote)AI Screening
  • 72%
    icon-arrow-down
  • Skills assessed :Bootstrap/Tailwind CSS, Browser Page Rendering, CSS, Event Loop, React Js, Vue JS, HTML, JavaScript, Python
  • Score: 72/100

Professional Summary

5.1Years
  • Aug, 2022 - Present3 yr 10 months

    Software Engineer

    Ernst & Young GDS
  • Aug, 2021 - Jul, 2022 11 months

    Software Engineer

    Triophase Global
  • Nov, 2020 - Jul, 2021 8 months

    Software Developer

    Webskitters Technology
  • Jul, 2019 - Oct, 20201 yr 3 months

    Full Stack Developer

    Beanstalkedu Services

Applications & Tools Known

  • icon-tool

    Node.js

  • icon-tool

    React

  • icon-tool

    Next.js

  • icon-tool

    Vue.js

  • icon-tool

    PHP

  • icon-tool

    MySQL

  • icon-tool

    Docker

  • icon-tool

    Terraform

  • icon-tool

    Amazon S3

  • icon-tool

    Solidity

  • icon-tool

    AWS

  • icon-tool

    Azure

  • icon-tool

    GCP

  • icon-tool

    Kubernetes

  • icon-tool

    CI/CD Pipeline

  • icon-tool

    Shell Scripting

  • icon-tool

    Terraform

  • icon-tool

    MongoDB

  • icon-tool

    Nest.js

  • icon-tool

    Express.js

  • icon-tool

    GraphQL

  • icon-tool

    AWS

  • icon-tool

    GCP

  • icon-tool

    Firebase

  • icon-tool

    Sequelize

  • icon-tool

    Shell Scripting

  • icon-tool

    DevOps

  • icon-tool

    Terraform

  • icon-tool

    React.js

  • icon-tool

    GCP

Work History

5.1Years

Software Engineer

Ernst & Young GDS
Aug, 2022 - Present3 yr 10 months
    • Spearheaded a Full Stack web application development initiative for a critical supply chain management project, delivering under stringent timelines, resulting in a 40% increase in efficiency.
    • Engineered microservices-based scalable APIs, optimizing response times by 30%, while seamlessly integrating front-end components using Node, React, Nest, and Next.js technologies.
    • Pioneered the integration of blockchain technologies into the application architecture, resulting in enhanced security measures and reduced transaction processing times by 10%.

Software Engineer

Triophase Global
Aug, 2021 - Jul, 2022 11 months
    • Led front-end component development using React.js and Vue.js, optimizing user experiences.
    • Engineered highly efficient microservices with Node.js, PHP, MySQL, and Docker, improved response time by 40% and handled millions of requests per second for a leading US-based WordPress hosting company.
    • Automated server deployment process using Terraform, reducing deployment time by 50%.
    • Implemented automated backup system for customer website data, utilizing job scheduling and Amazon S3 for enhanced data integrity And disaster recovery.

Software Developer

Webskitters Technology
Nov, 2020 - Jul, 2021 8 months
    • Crafted intricate front-end components and engineered highperformance APIs, resulting in a 25% improvement in data manipulation efficiency.
    • Streamlined database calls, boosting API respons times to seamlessly accommodate a growing client base.


Full Stack Developer

Beanstalkedu Services
Jul, 2019 - Oct, 20201 yr 3 months
    • Managed end-to-end product development utilizing PHP, MySQL, and more, culminating in a successful launch on live servers, accommodating thousands of daily customers.

Achievements

  • Spearheaded Full Stack web application development for a critical supply chain management project, resulting in a 40% increase in efficiency.
  • Engineered microservices-based scalable APIs, optimizing response times by 30%.
  • Pioneered integration of blockchain technologies into application architecture.
  • Spearheaded a Full Stack web application development initiative for a critical supply chain management project, delivering under stringent timelines, resulting in a 40% increase in efficiency.
  • Engineered microservices-based scalable APIs, optimizing response times by 30%, while seamlessly integrating front-end components using Node, React, Nest, and Next.js technologies.
  • Pioneered the integration of blockchain technologies into the application architecture, resulting in enhanced security measures and reduced transaction processing times by 10%.
  • Led front-end component development using React.js and Vue.js, optimizing user experiences.
  • Engineered highly efficient microservices with Node.js, PHP, MySQL, and Docker, improved response time by 40% and handled millions of requests per second for a leading US-based WordPress hosting company.
  • Automated server deployment process using Terraform, reducing deployment time by 50%.
  • Implemented automated backup system for customer website data, utilizing job scheduling and Amazon S3 for enhanced data integrity and disaster recovery.
  • Crafted intricate front-end components and engineered high-performance APIs, resulting in a 25% improvement in data manipulation efficiency.
  • Streamlined database calls, boosting API response times to seamlessly accommodate a growing client base.
  • Managed end-to-end product development utilizing PHP, MySQL, and more, culminating in a successful launch on live servers, accommodating thousands of daily customers.

Major Projects

4Projects

Web3 Wallet

EY
Jul, 2023 - Present2 yr 11 months
    • Block chain wallet to manage transactions and Verifiable credentials.
    • Designed and managed the backend of this by developing the REST APIs using Node.js and MongoDB.
    • Used Docker and github actions CICD tool to deploy on AWS EC2 instance.

Supply Chain Management Project

Sep, 2022 - Mar, 2023 6 months
    • An innovative blockchain-based supply chain management system for meat products, enhancing transparency, traceability, and consumer trust.
    • Architected using NestJS microservices and a MongoDB database, ensuring scalability and
    • Performance.
    • Implemented Polygon blockchain for secure, immutable data tracking, reducing Fraud and increasing accountability.

Convesio.com : Scalable WordPress Hosting Platform

Aug, 2021 - Jul, 2022 11 months
    • Developed and enhanced Convesios scalable WordPress hosting platform, focusing on API integration, backup functionalities, and server management automation to deliver a high-performance and reliable hosting solution.
    • Key Features: API Integration: Designed and implemented RESTful APIs using Node.js based microservices to streamline interactions between various components of the hosting platform, enhancing overall system efficiency.
    • Automated Backups: Developed comprehensive backup functionalities, including automatic scheduling and retention policies, ensuring data integrity and ease of recovery. Server Management Automation: Automated server management tasks such as deployment, scaling, and monitoring using Docker containers, Terraform, reducing manual intervention and improving operational efficiency.
    • Performance Optimization: Utilized Cloudflare Enterprise features and advanced caching mechanisms to ensure optimal site performance and quick response times during traffic spikes.
    • Security Enhancements: Integrated robust security measures, including AI-based malware scanning, automated vulnerability patching, and SSL certificate management, to protect against potential threats.

Lead Management Application

Triophase Global
Sep, 2021 - Feb, 2022 5 months
    • The lead management project was designed to streamline the import and export of leads from various sources, ensuring efficient management and communication through an integrated mail system.
    • A key feature of the platform was a comprehensive learning module, offering a streaming facility and payment subscriptions via Stripe for seamless access to educational content.
    • The platform also incorporated Zoom API integration, allowing for live virtual sessions and meetings.
    • The system was architected with Node.js microservices and PHP for backend development, utilizing MySQL for database management.
    • The front end was built with React.js, providing a responsive and user-friendly interface. The entire solution was containerized and deployed using Docker, ensuring scalability and ease of maintenance.

Education

  • B.Tech in Information Technology

    JIS College of Engineering (2020)

Certifications

  • Aws certified developer associate

AI-interview Questions & Answers

Hi, I am Gaurav Chatterjee, and I am a full stack developer. I have 5 years of experience as a full stack developer. Currently, I am working with Manstack, MongoDB, Express JS, React JS, and Mongoose JS. Apart from this, I have experience with Vue. I have experience with Nest, Next, all these technologies. I have also experience in DevOps, AWS, multiple AWS components, and CICD pipeline setup. I have all this experience. I have also worked with Docker and Kubernetes, setting up servers and all. So, I have overall 5 years of experience, and I can work seamlessly on both the front end and back end, mostly using JavaScript technologies. And I'm looking for new opportunities to enhance my skills as well as to give my 100% for the betterment of the organization that I will be working for.

So, event loop is a continuous loop that helps to run JavaScript on browsers. So, in the context of event loops, the event loop is a continuous loop, which monitors all the functions that are being executed in JavaScript. So, in case of any web API calls or any kind of other API calls or any external activities, JavaScript, the environment JavaScript does not do that by itself. What happens is it's being done using the browser APIs. So, when this kind of scenario comes, it gets picked up by the browser APIs, and it gets executed and it comes to the callback queue. And the event loop checks the call stack where all the functions are getting stored. So, that call stack is continuously checked by the Event Loop. If there is any function, the Event Loop executes that. And after all the functions are executed in the call stack, then the callback queue gets checked. And if there is any external activity that is pending over there, then that gets picked up and executed in JavaScript. So, that's how the event loop works.

So synchronous code is all the functions that we use, everything, such as console log and everything, all this executes synchronously, so that is synchronous. But if there is any external API calls or in Node.js, if there is any database calls or anything, so that is not a synchronous call. That has to be executed in an asynchronous manner. And for those scenarios, we can use promises, and we can use async/await to execute those asynchronous codes effectively in our code base. So async/await can help us to write asynchronous code in a way that looks like synchronous code. So synchronous code is what happens synchronously and async is what happens asynchronously. But using async keyword, we can make it look like a sync code.

So, Java, we can use the fetch API. We can use fetch, and we can use JavaScript's fetch API to handle multiple API calls. As it is asynchronous, the Vue JS UI will be automatically processed, and it can execute simultaneously. On the other end, JavaScript's event loop will check the callback queue if the API calls are being finished, then it will capture those callback functions and put them in the call stack, and that's how the API calls will be finished executing.

Yeah. So nested routes are like, suppose I have a route for users, and I want to fetch another route for user slash profile page. We can do this by using React Router, and we can use user slash profile page. Then we can call the component which is responsible for showing that particular route. We can put it in the parent route so that it is taken as a nested route. And browser page rendering is so, what React does. React keeps a virtual DOM, and it takes a copy of the actual DOM and keeps a virtual DOM. Every time a page renders, it changes it. Whatever changes happen in the page, it compares with the actual DOM. The virtual DOM gets compared with the actual DOM. If there are any changes, it only changes those things, not the full document.

So I would, yes. So if there is a large CSS code base, so if there is I would take first the common CSS code, which is being used in multiple components, and I would put it in a separate file. And I would take that file for all the components that I am using. But if there is any CSS code for a particular component, I would write a separate CSS file for that component only and which is used by that component so that all components do not have to use the large CSS code base. And there could be multiple classes, which are not in use by a single component. So even if the component is not using the CSS classes, it has to load the CSS classes, which increases the load time of the page and affects the browser's performance. So I would shift whatever CSS code is necessary into separate CSS files and which are used by particular components. And if there is any CSS code which is being used for multiple components, then I would take that in a common CSS file, like a styles or CSS file.

Yeah. So, how the state is being updated with the company? So this state counter, we can use, like, we could update the counter beforehand. And in the set state method, we just need to pass whatever the updated value is. We should not execute this kind of thing, like counter, then update the counter plus 1. We don't do this. We update the counter value first, then we pass the updated value in the set state method so that the new value gets updated in the state component. So my solution would be to update the counter value beforehand and put the updated counter variable inside the set state method without the curly braces.

Yeah. It will not work because it's fetching the URL, and in the then method, it's getting the response and then it's getting the JSON. But the return statement will execute first because it's a synchronous method. And in the asynchronous method, so the fetch will take some time to be executed, and the event loop will not pick up this immediately. Instead, the event loop will pick up the return statement before, and there will be no data. So the data may be blank, and that will return a null value as the return statement. So what I would do to rectify this is I would put the return statement in the second then block. So that would work. This will not work because the return statement is outside the then block. So the asynchronous code will take some time to be executed, and the return statement will be executed first. That's why there will be no data because the API call will not be finished by the time the function returns the data.

Yeah, so we need to understand how virtual DOM works. Like, the virtual DOM takes a copy of the real DOM, and whenever there's an update in the rendering process, it compares the virtual DOM with the real DOM. And if there are only changes, then it only updates those parts in the actual DOM after comparing with the virtual DOM. And if there's any update, then only it should re-render the component. We could memoize the situation, like what the list is being updated. If there's any updation, then only it should render the component. Using memoization technique, we could optimize the whole rendering performance so that it doesn't get updated every time there's a change in the component or in the UI. So, yeah, memoization would be a technique that we could use, and use virtual DOM to optimize list rendering when there's a large dataset.

If there is a bootstrap update and maybe issues like visual regressions and anything, we need to check the documentation to see what has been updated and if there are any breaking changes or not. If there are any breaking changes, we need to address those things and update our classes based on the breaking changes mentioned in the documentation, like some components, some colors, and all. If there are any changes, we need to plan accordingly to rectify the previously developed code to update with the newer version. We could use a separate CSS file to rectify all those classes and match up with the new version, and we could change the class names and all in certain places where there are issues.

So what I did for React application deployment is I used AWS Amplify. There's a service called AWS Amplify. We just need to link our GitHub repository, whether it's private or public. We need to link the repository to Amplify and specify the build command, test command, and the deployment command. It's like running NPM install, then NPM build, and all this stuff. So whenever we do that, AWS picks up automatically. Every time there's a push to the main branch, it picks up the code, builds it, and deploys it to their environment. It also handles SSL termination by itself. If we want to map our own custom domain, we can do that in the admin panel. For security, as I mentioned, it automatically handles SSL termination. It has an environment section where we can mention some secrets, although we shouldn't expose any secrets in the frontend. If there are any, we can mention them in the environment section, and it picks up from environment variables. For scalability, Amplify can also be configured for scalability. If there's a certain load, it can be scaled automatically. We can spin up another instance and set up a load balancer for load balancing between all those instances.

Yeah. Tailwind CSS is a very good tool, and I have been using it for a long time now. What Tailwind CSS does is use the technology called tree shaking. So, what happens is when we give the classes, Tailwind doesn't give us all the built-up components like Bootstrap. It gives us classes, and we can use those classes to build our own components, and that is very useful. Why? Because it doesn't load all the classes, all the CSS classes like Bootstrap in our component, and it doesn't get heavy. It takes only the classes that we specify in the code base and takes the CSS for those classes only. It doesn't take all the CSS classes, and that helps to optimize the application's performance. Also, we can do our own styling using all those classes because using Bootstrap, the application looks very similar to other applications. But using Tailwind CSS, we can do our own styling. We can create our own CSS file. We could use Tailwind classes inside the CSS file to make any custom classes, and later, we can use those custom classes inside our Vue JS component to use Tailwind CSS. So, that's a very good technology, and Tailwind CSS is a very developer-friendly tool; I would suggest it.