profile-pic
Vetted Talent

Rahul Rai

Vetted Talent
Dedicated and results-driven Software Developer with years of experience in designing, developing, and maintaining high- performance software applications. Pro cient in various programming languages and technologies, with strong focus on delivering cient and scalable solutions. Adept at collaborating with cross-functional teams to achieve project goals and meet deadlines.
  • Role

    Senior Consultant 1

  • Years of Experience

    6 years

Skillsets

  • S3
  • HTML
  • HTML
  • Jenkins
  • Jest
  • jQuery
  • Lambda
  • MySQL
  • OOPs
  • Postman
  • Github
  • SES
  • AngularJS
  • Cognito
  • CSS
  • Expressjs
  • Mssql
  • Nodejs
  • Route53
  • TypeScript
  • EC2
  • AWS - 6 Years
  • DynamoDB - 4 Years
  • DynamoDB - 4 Years
  • PHP - 3 Years
  • PHP - 3 Years
  • JavaScript - 5 Years
  • JavaScript - 5 Years
  • Angular - 1 Years
  • Angular - 1 Years
  • AWS - 5 Years
  • Apache Kafka
  • API Gateway
  • Bitbucket
  • Cloudfront
  • CloudWatch
  • Docker
  • ELK
  • Figma

Vetted For

11Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Mar-Tech EvangelistAI Screening
  • 59%
    icon-arrow-down
  • Skills assessed :Marketo, Api integration, Data Analytics, Facebook API, Google Analytics API, Data Modelling, Google Tag Manager, JavaScript, Node Js, Problem Solving Attitude, SQL
  • Score: 53/90

Professional Summary

6Years
  • Jul, 2024 - Present1 yr 11 months

    Senior Consultant 1

    Hitachi Vantara Software Services India
  • Feb, 2022 - Jul, 20242 yr 5 months

    Senior Developer

    GalaxE.Solutions
  • Jun, 2018 - Nov, 20202 yr 5 months

    Software Developer

    Enthuons Technologies

Applications & Tools Known

  • icon-tool

    Nodejs

  • icon-tool

    ELK

  • icon-tool

    express js

  • icon-tool

    AWS services

  • icon-tool

    Bitbucket

  • icon-tool

    API integration

Work History

6Years

Senior Consultant 1

Hitachi Vantara Software Services India
Jul, 2024 - Present1 yr 11 months
    Involved in the development of web application for prominent vehicle manufacturing sector. Strict adherence in Agile practices and played a key role as a Product Developer, active participant in scrum meetings, sprint grooming, sprint planning and sprint retrospective meetings. Developed UI features using Angular as per designs and created common/shared components for reusability. Written Unit test for developed screens using Jest. Done coding deployment and build in dev environment using Jenkins.

Senior Developer

GalaxE.Solutions
Feb, 2022 - Jul, 20242 yr 5 months
    Part of daily stand-up meetings to discuss estimations, daily tasks, deadlines and improvements. Developed UI features using Angular as per designs and created common/shared components for reusability. Written Unit test for developed screens using Jest. Done coding deployment and build in dev environment using Jenkins. Created APIs for microsites using ExpressJS and MsSQL. Created API specification documents for microsites and provided endpoints built using Express.js and SQL as the database. Created 6 microservices for automation of policy creation. Used ELK for generating statistical reports and visualizations of microservices logs.

Software Developer

Enthuons Technologies
Jun, 2018 - Nov, 20202 yr 5 months
    Writing codes for the requirements provided by the manager. Fixing bugs reported at various stages by debugging the project. Coding according to the requirements gathered for new functionalities.

Achievements

  • Automated the policy creation process reducing the time from several minutes to just minutes

Major Projects

5Projects

TIS Application

Jul, 2024 - Present1 yr 11 months
    Involved in requirements gathering, analysis and development of the project. Skills Used: Angular, Lambda, CSS, HTML.

COPAY TEAM

Nov, 2023 - Jul, 2024 8 months
    Created API specification documents for microsites and provided endpoints built using Express.js and SQL as the database. Skills used: Express JS, MsSQL, DynamoDB.

SYNTHETIC TEST DATA (EUROPA-TDAAS)

Feb, 2022 - Sep, 20231 yr 7 months
    Created 6 microservices for automation of policy creation. Used ELK for generating statistical reports and visualizations of microservices logs. Skills Used: NodeJS, AWS Services, SQL.

NOCTO APPLICATION

Dec, 2020 - Feb, 20221 yr 2 months
    Led the development of Nocto, a data-driven social media platform to find and promote brands, venues, and activities. Used PHP, Node.js, DynamoDB, S3.

NICHEPUSH PLATFORM

Jun, 2018 - Nov, 20202 yr 5 months
    NichePush allows users to create one video and post it to different social media platforms with one click. Used PHP, Node.js, DynamoDB, S3.

Education

  • B.Tech in Computer Science & Engineering

    Central Institute of Technology,Kokrajhar (2017)

AI-interview Questions & Answers

Rahul Rai. In total, I have 5 years and 8 months of experience till now. I'm currently working in Galaxy Solutions as a senior developer. With the tech stack, I have majorly worked on Node.js for 5 years. I also have experience with AWS services for 5 years. With the database part, I have majorly worked on DynamoDB, which is also for 5 years. In parallel, for 2 years, I have worked on SQL with AWS services. I have worked on EC2 instances, S3, SCS, API Gateway, S3, and AWS Cognito. These are the things I have worked on. Apart from this, I have knowledge of Docker, and I also have knowledge of Kubernetes. Other than that, I have also worked on microservices. I believe this is a brief overview of my experience.

Node JS streams enhance ETL task performance by providing data in the form of streams, which are consumed by the client. This is similar to a producer and consumer relationship, where data is sent in chunks with the help of streams and buffered by the client. When a user's Internet connection is slow, for example, there is buffering, and the data is fetched from the back end. Instead of sending the whole data at a time, sending data in streams allows for good performance, as the user can start playing or downloading a file without having to wait for the entire data to be downloaded.

How do you apply the single responsibility principle in modularizing a RESTful API? Yeah. With the single responsibility principle, what happens is, one should define a class or object that is responsible for only one particular task. For example, if I'm writing a property of a vehicle, then whatever I write inside that class should be the color of the vehicle or the properties basically of the vehicle. Now if someone wants to buy a car, for example, then that buy function should be in a different class. It should not be inside the same class because that will include your card or payment systems, and that should be in a different class. So this is what single responsibility is there. That one class should have one responsibility. Nothing more than that. So, by this way, it is easier to understand the code also, and this is what the design patterns of SOLID says.

Device strategy to manage state in an asynchronous Node.js backend while integrating with various APIs. To manage state in an asynchronous Node.js backend while integrating the various APIs. When you're integrating APIs, a strategy to manage state is needed. So, you can use cookies, sessions, or global variables. Other than that, if you want to manage state, these are the things you can do when transferring data. The things which we can do are using cookies, sessions, or global variables.

Practices would ensure high availability and fault tolerance for a Node.js back-end RESTful API system with frequent deployments. Okay. With frequent deployments, what practice would you ensure high availability? Definitely, it's better for high availability to use EC2 instances, first of all, because that is fully managed by AWS. So, that is good. Other than that, a CICD pipeline is there, which is continuous integration and deployment. This would be a good option for frequent deployments. To achieve fault tolerance, I would say it's better to have a load balancer. Yeah. That would mean having different servers serving the same thing, and you can add a load balancer on top. This would distribute the calls from users. So, even if one server goes down, the second one would be up and running, and it would serve the users. This can be used for fault tolerance. Other than that, if you don't want to use two servers or three servers, if you have an 8-core CPU, you can create your own clusters on the other 7 cores, which would spawn the same code at 7 ports and the 8th one would be the main or master node. This would send requests to all the 7 other nodes. This is one thing which you can use for fault tolerance. For high availability, you can use API gateway, where you can use rate limiters or implement rate limiters so that it doesn't go down whenever attackers use a DNS attack. Other than that, using the helmet package to trim and avoid security attacks, such as XSS attacks, is also beneficial. For high availability, if you have more than one server, that is good. You can also use scalability, like auto-scaling groups, which you can attach to your EC2 instances. This would attach a new server whenever there is a load. So, these are the things which I would recommend.

The process of normalizing an SQL database to optimize for complex data queries from multiple RESTful APIs involves several stages. There are different normalization stages, which can be categorized as 1NF, 2NF, 3NF, and BCNF. Majorly, with BCNF, we say that it is the optimum. Optimum in the sense that whenever we are searching something, and our database is defined in BCNF, then that's the best. Definitely, your data which you are getting, if it is in BCNF, it is fully correct. There is no partial dependency, or I could say there is no dependency at all. We have primary keys, and these are the things which are used in normalizing. Like, there should not be any partial dependency. One item is if you are querying with a primary key, basically. If we have it, we can fetch the data on the basis of a primary key. Other than that, to optimize complex data queries, you can use indexes. You can implement indexing in the table. Other than that, if it is complex, these are the things which are coming to mind.

The piece of Python code is supposed to implement authentication and authorization logic. Here's a breakdown of what it's supposed to do: 1. Check if the user is authenticated. 2. If authenticated, check if the user has permission to access data. 3. If the user has permission, return "Access granted". 4. If the user does not have permission, return "Access limited". However, there are several errors in the logic that might prevent it from functioning as intended: 1. The `else if` statement is incorrect. It should be `elif` (short for "else if") to check another condition. 2. The condition `if user is old user` is unclear. It's likely meant to check if the user is an old user, but the syntax is incorrect. It should be `if user.is_old_user()` or `if user.is_authenticated and user.is_old_user()`. 3. The condition `if user has permission access data` is also incorrect. It should be `if user.has_permission_access_data()` or `if user.has_permission() and user.has_access_data()`. 4. The logic is inconsistent. If the user is authenticated and has permission to access data, the code returns "Access granted". However, if the user is authenticated but does not have permission to access data, the code returns "Access limited". This is the opposite of what's intended. Here's a corrected version of the code: ```python if user.is_authenticated: if user.has_permission_access_data(): return "Access granted" else: return "Access is limited for you" else: return "Access denied" ``` Or, using the `elif` statement: ```python if user.is_authenticated: if user.has_permission_access_data(): return "Access granted" else: return "Access is limited for you" else: return "Access denied" ```

Even the SQL, it seems like there is an issue in the JOIN operation. It's adopting help identify the error and explain the necessary correction. Okay. Select users dot name or rest of quantity from users. Okay. In a JOIN order on user dot ID is equal to orders dot user ID. Where orders dot quantity is greater than 1. Users dot name from users. Inner JOIN orders on users dot ID and orders dot user ID. There is an issue, in the second line, which is saying that in a JOIN orders on user dot ID. basically, it should be users dot ID is equal to orders dot user ID. That should be orders dot user ID. This is the issue.

How do you implement an item put in back end service in Node. Js to handle repeated API calls without duplicating data. How would you implement an back end service to handle repeated API calls without duplicating data? We can, what we can do here is we can provide, or we can use caching here if a particular user is repeatedly calling same API. Definitely, caching would be a good option. Other than that, if you want, you can implement a rate limiter also if it is too much frequent for that. These two things is what I'm thinking right now. How do you implement repeated API? And now if you, don't want to duplicate the data, okay, without duplicating data, then what should be yeah. Read replica would be a good option. if you have a read replica, then your database would be calling from I mean, yeah. that would be a good option. Basically, we are fetching it from the read replica, and we are providing it to the user. And, so your database queries I mean, the load on the database will be less. Other than that, I would say caching would be a good option if the data is not changing. If it is changing, then read replica. other than that, if you want to limit rate limiter, that's okay. Yeah. These are the things, which we can implement.

Which market to API and bands would be most effective for custom audience segmentation, and how do you avoid rate limiting? So it'd be most effective for custom audience segmentation. For custom audience segmentation, which API endpoints? You can use API gateway, where you can implement basically authorization and authentication, which will be there. You can also use AWS Cognito to get your custom audience, and it will be there in the identity pool. That's one idea. If you want to avoid rate limiting, the user should be authenticated according to their authorization, and we can provide that these guys don't need to be in the rate limiting option. That should be okay for now.

How can you leverage GA 4's new features to optimize website back end performance when implementing custom analytics? Google Analytics 4, when implementing custom analytics, yes. Although I have not used any analytics tool until now, we have our own custom analytics, and from there, we analyze our back-end performance. So, how can you leverage features of GA 4? We need to use the features of GA 4. With the features of GA 4, I'm not sure because I have not used it. Website back-end performance. Yes. You, although I have created my custom analytics, and from there, I used to analyze the performance of users and my CPU performance, at what time it was high or idle. These things, basically, how much users hated my APIs and which APIs were hated most of the time? Any errors or particular timing at which users went high or it went down. So every analytics is present. I mean, you can implement it. If Google Analytics has any more features, then definitely we will have to check that and try it.