profile-pic
Vetted Talent

Sourabh Singh Dhyania

Vetted Talent

Sourabh Singh is a backend engineer with expertise in scalable, high-performance systems. With a B.Tech + M.Tech in Mathematics and Computing from IIT Delhi, he has worked with Shopify (Deliverr), Expedia, and Zupee, driving system architecture, integrations, and optimization.

At Deliverr (Shopify, Flexport), he led returns integration, generating $100K/month revenue, and built inventory transfer systems. Previously, at Expedia, he optimized flight sustainability features and latency. Skilled in Node.js, Python, AWS, Redis, and microservices, Sourabh excels in system design and backend development.

  • Role

    Mid Backend Engineer

  • Years of Experience

    7.2 years

Skillsets

  • Database management
  • Shopify
  • MySQL
  • Lambda
  • GitLab
  • Github
  • Design
  • Algorithms
  • Express Js
  • Python
  • WebSocket
  • Heroku
  • Spring
  • Type Script
  • RabbitMQ
  • Redux
  • GraphQL
  • Slack
  • JS
  • Microservices Architecture
  • Spring Boot
  • Kubernetes
  • Mathematics
  • Angular
  • Node Js
  • S3
  • Bootstrap
  • SNS
  • Database
  • Django
  • Kotlin
  • Redis
  • Node
  • SQS
  • Backend
  • New Relic
  • AWS
  • Node Js
  • Flask
  • API
  • Java
  • Docker
  • CloudWatch
  • Grafana
  • Git
  • Mongo DB
  • nginx

Vetted For

10Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Software Developer II - Express JS and Node JS (Onsite, Bangalore)AI Screening
  • 51%
    icon-arrow-down
  • Skills assessed :CI/CD, DevOps, AWS, Docker, Express Js, MySQL, Node Js, Postgre SQL, Redis, Strong Attention to Detail
  • Score: 46/90

Professional Summary

7.2Years
  • Oct, 2021 - Present4 yr 8 months

    Mid Backend Engineer

    Deliverr
  • Feb, 2021 - Oct, 2021 8 months

    Software Engineer

    Expedia
  • Jul, 2020 - Jan, 2021 6 months

    Backend Developer

    Zupee
  • Jun, 2018 - Jun, 20202 yr

    Software Engineer

    Scrumdo

Applications & Tools Known

  • icon-tool

    Node.js

  • icon-tool

    Expressjs

  • icon-tool

    Angular

  • icon-tool

    MongoDB

  • icon-tool

    Redis

  • icon-tool

    RabbitMQ

  • icon-tool

    MySQL

  • icon-tool

    Python

  • icon-tool

    Django

  • icon-tool

    Celery

  • icon-tool

    Bootstrap

  • icon-tool

    Redux

  • icon-tool

    Git

  • icon-tool

    AWS Lambda

  • icon-tool

    SQS

  • icon-tool

    SNS

  • icon-tool

    S3

  • icon-tool

    Cloudwatch

  • icon-tool

    Kubernetes

  • icon-tool

    Docker

  • icon-tool

    Twilio

  • icon-tool

    nginx

  • icon-tool

    SSL

  • icon-tool

    MSG91

  • icon-tool

    Instamojo

  • icon-tool

    Heroku

  • icon-tool

    Grafana

Work History

7.2Years

Mid Backend Engineer

Deliverr
Oct, 2021 - Present4 yr 8 months
    Responsible for leading the integration of returns with platforms like Shopify and Returnly, and building transfer systems between storage and fulfillment centers.

Software Engineer

Expedia
Feb, 2021 - Oct, 2021 8 months
    Developed features for flight sustainability and implemented horizontal slicing to reduce latency by 10%.

Backend Developer

Zupee
Jul, 2020 - Jan, 2021 6 months
    Worked on pagination, pnl calculation, WebSocket connection management, Kubernetes config auto-reload, and MySQL pooling.

Software Engineer

Scrumdo
Jun, 2018 - Jun, 20202 yr
    Integrated Slack API, developed a Slack-like application, and integrated GitLab self-managed instances.

Achievements

  • Led the integration of returns with other RMTs like Shopify and Returnly increasing revenue from $0 to $100,000/month.
  • Built system to transfer from Deliverr Reserve storage to Fulfillment centres like FBA and Flexport.
  • Reduced average response time of API by 88% through MySQL pooling implementation.

Major Projects

4Projects

Onlease

    Involved in IVR and programmable voice setup with Twilio, production server setup, and payment integrations.

Websocket connection management in distributed environment

Onlease ( IVR and programmable voice setup with Twilio.

Real time Chat Application

Education

  • B.Tech + M.Tech in Mathematics and Computing

    Indian Institute of Technology, Delhi (2018)

AI-interview Questions & Answers

I graduated from IIT Delhi in mathematics and computing in 2018. After that, I started working for Strandu as a full-stack developer in Python, Django, and Angular front end. Then I started working with Zupery and Expedia. In Zupery, I worked as a backend developer on Node.js. And then in Expedia, I worked for around 6 months in JavaScript and Golang. Then I worked at Deliver as a backend developer. There, I worked on Node.js, AWS, and MySQL.

Connection pooling in Node.js improves database performance by creating multiple connections and then reusing them, so that more connections can be used and these operations can be done in parallel. This can help in reducing the network latency and the overhead of creating new connections for each database operation.

Yeah, I would recommend using the SOA framework because it gives us all the question response types. And also, it gives us layering of architecture. So what we can do is, we can create functions which will call other functions in, so that in this manner, we can keep our authorization and authentication layer, then logging layer, and then we can also have

We should get into it. We're not gonna know. Yes. It is entirely the same. We can ensure the identity by using a separate post guess. We can use lots that are provided by post guess. And in that manner, transactions will have SEO goodies. So they will be atomic, and there will be data integrity, and they will work as they are being performed in parallel in isolation.

We can handle so Express JS provides us with the next function. We can create a layer above the API layer. In that layer, we can call the next function and handle any errors at a global level. And if the error written by the API is a known error, then we can wrap it in a suitable error response code. Otherwise, we can throw a general error like a server error, like 500.

So for implementing a caching layer, what we can do is create a caching layer above the API layer. In that layer, it will cache data based on the API route. If data exists, then it can return it. Otherwise, it will call the underlying API function, cache it, and then return the cached data.

Maybe we can use cursors here, because if there will be, this. So here we are not handling the case when a user is not found. And in that case, we are returning rows. So in this case, the DB can throw an error and we should also throw an error if a user is not found. But it's not giving an error currently and it will return empty rows instead.

It should request parents, but I, instead of, I, it should be ID. And, because ID is the parameter name provided in

to isolate n services, isolate n services running in separate containers, how can you utilize docker's network features to isolate n services running in separate containers. If these are running in separate containers, so what we can do is, we can create, docker will provide us, we can expose different ports from each container and internally it can be connected to a common port like localhost 3000 or 8000, and externally it will be exposed to different ports. So in that way, all the services, all the containers will be exposed on different ports and can be connected to that port.

He comes in for scaling and accessing a JavaScript application on AWS infrastructure. If we're using AWS Lambda, then logging is an important factor. If we're scaling up, so multiple instances can be created at the same time. We should allow multiple instances of Lambda to be created simultaneously. And we should configure a minimum number of Lambda instances that should be running so that latency is not high for the first few requests. We can have a limited time for that Lambda, like 15 or 30 seconds, after which it will be killed. So, latency should not be greater than that. We should have a good monitoring system, using which we can monitor all the Lambda instances. And if they go down at some point of time, we should get notified and we should also monitor the error log so that we can get to know if there is something going wrong. Yeah.

Node JS application. So AWS has its repository for containing images. So first, an image would be deployed to their registry. And from there, if we are deploying on AWS Lambda, then Lambda will pull that image from that registry, and it will run that service on a virtual machine. And it also depends on how we want to trigger the deployment. Maybe we want to deploy it through several CI/CD pipelines, so that if any changes are merged to a branch, then it should be deployed automatically instead of manually taking the deployment. And there are a few steps that we can add in that circle, such as file. They should like DB migrations that should run before that. And a few indication tests that we can add, and this should be positive. We can add a condition on which, and only, passing of previous step. This step should be done, so we can create a dependency in that way. So deploying through CircleCI is a better approach.