profile-pic
Vetted Talent

Sudhanshu Rajendra Bawane

Vetted Talent

Have a knack for programming and Does not back down from taking risk and love challenges, willing to take the unconventional path(s), to get tasks done, with a sense of responsibility and leadership.

  • Role

    Engineering Manager

  • Years of Experience

    7.1 years

  • Professional Portfolio

    View here

Skillsets

  • n8n
  • Docker
  • DynamoDB
  • ETL pipelines
  • Flask
  • JavaScript
  • Jenkins
  • Jira
  • Kafka
  • LLM integration
  • MySQL
  • digital wallets
  • Payment Gateway
  • Prompt Engineering
  • Redis
  • regulatory compliance
  • Risk Management
  • Spring Boot
  • SQL
  • Sumo Logic
  • UPI
  • Git - 5 Years
  • Django
  • AWS - 4 Years
  • Python - 4 Years
  • GCP - 2 Years
  • Git - 5 Years
  • Terraform - 3 Years
  • RabbitMQ
  • Kubernetes - 4 Years
  • Grafana
  • Java
  • Django
  • C++
  • Golang
  • MongoDB
  • PostgreSQL
  • AI-assisted development
  • Cassandra
  • CI/CD
  • Claude code
  • Datadog

Vetted For

9Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Golang Engineer (Remote)AI Screening
  • 54%
    icon-arrow-down
  • Skills assessed :Communication, API development, Database Design, AWS, Go Lang, Kubernetes, Problem Solving Attitude, Redis, Security
  • Score: 49/90

Professional Summary

7.1Years
  • Jan, 2025 - Present1 yr 5 months

    Engineering Manager

    Razorpay
  • Feb, 2023 - Dec, 20241 yr 10 months

    Senior Development Engineer (Team Lead)

    Calsoft
  • Nov, 2021 - Oct, 2022 11 months

    Founding Engineer (Senior Software Engineer)

    IDFC First Bank
  • Jul, 2018 - Jul, 20202 yr

    Associate Developer

    Cognizant
  • Oct, 2020 - Feb, 2021 4 months

    Software Development Engineer I

    Sigmoid Analytics
  • Mar, 2021 - Oct, 2021 7 months

    Software Engineer II

    Xoriant

Applications & Tools Known

  • icon-tool

    Kafka

  • icon-tool

    Spark

  • icon-tool

    Informatica

  • icon-tool

    GCP

  • icon-tool

    RabbitMQ

  • icon-tool

    Django

  • icon-tool

    Terraform

  • icon-tool

    AWS

  • icon-tool

    Git

  • icon-tool

    GCP

  • icon-tool

    Terraform

  • icon-tool

    AWS

  • icon-tool

    Golang

  • icon-tool

    Python

  • icon-tool

    Java

  • icon-tool

    C++

  • icon-tool

    GCP

  • icon-tool

    Terraform

  • icon-tool

    AWS

  • icon-tool

    PostgreSQL

  • icon-tool

    Kubernetes

  • icon-tool

    Grafana

  • icon-tool

    ETL

  • icon-tool

    MongoDB

Work History

7.1Years

Engineering Manager

Razorpay
Jan, 2025 - Present1 yr 5 months
    Leading engineering teams at India's largest fintech company, managing full product development lifecycle for payment infrastructure serving 10M+ merchants and processing billions in transactions monthly. Pioneered AI-driven engineering productivity initiative by championing Claude Code adoption and implementing n8n automation workflows across the team, increasing feature delivery velocity by 3x (from 2-3 to 8-10 features per month) while maintaining code quality standards and reducing manual repetitive tasks by 60%. Drove team-wide AI tooling adoption through hands-on training, pair programming sessions, and workflow optimization, creating a culture of AI-augmented development that improved developer satisfaction scores and accelerated time-to-market for critical merchant-facing features. Spearheading critical merchant-facing customizations charter as primary engineering owner, balancing aggressive business timelines with stringent quality standards while managing complex stakeholder expectations across Product, Sales, and merchant partners to deliver highly configurable payment solutions. Orchestrated infrastructure optimization initiative that reduced Google API operational costs by $1,000 per month ($12K annually) through intelligent caching strategies, request batching, and API call optimization without compromising system performance or reliability. Driving technical roadmap and strategic initiatives for payment gateway, UPI integrations, banking APIs, and merchant-facing platforms while ensuring regulatory compliance (RBI, PCI-DSS, SOC 2). Establishing engineering excellence through architecture reviews, design documentation, code quality standards, automated testing frameworks (85%+ coverage), and continuous deployment pipelines. Building high-performing engineering culture through strategic hiring, structured mentorship programs, performance management frameworks, and career development initiatives achieving 95%+ retention.

Senior Development Engineer (Team Lead)

Calsoft
Feb, 2023 - Dec, 20241 yr 10 months
    Led cross-functional team of 30+ engineers across two enterprise projects, managing technical delivery, sprint planning, resource allocation, and stakeholder communication for CISCO and VMWare security integrations. Architected and delivered enterprise security platform using Golang, implementing real-time telemetry solutions for data collection, monitoring, and observability at scale with 99.9% uptime. Successfully closed pre-sales negotiations and established technical partnerships with industry leaders NVIDIA and CISCO, demonstrating business acumen and technical credibility in enterprise sales cycles. Designed and implemented automated task management system integrating Sumo Logic and Grafana for intelligent workflow automation, reducing manual operational intervention by 40% and improving team productivity. Established CI/CD pipelines and infrastructure-as-code automation using Terraform on GCP and AWS, improving deployment frequency by 3x and reducing infrastructure provisioning time from days to hours.

Founding Engineer (Senior Software Engineer)

IDFC First Bank
Nov, 2021 - Oct, 2022 11 months
    Architected and developed UPI payment systems from ground up, owning credit module end-to-end and implementing risk-based pricing algorithms that increased lending profitability by 25% while reducing default rates. Led three engineering teams across UPI payments, Insurance, and Demat verticals (15+ engineers), managing product roadmap prioritization, technical design decisions, and delivery execution across multiple workstreams. Built production infrastructure for Sole-Proprietary business vertical from scratch using Kubernetes, AWS (ECS, RDS, Lambda), and PostgreSQL with comprehensive telemetry, monitoring (Datadog), and alerting capabilities. Implemented real-time transaction monitoring and credit risk assessment systems with embedded observability, ensuring 99.9% uptime for critical payment flows processing 100K+ daily transactions. Established foundational engineering processes including JIRA-based task management, Git workflow standards, CI/CD pipelines (Jenkins), and service reliability standards (SLAs, incident management, post-mortems).

Software Engineer II

Xoriant
Mar, 2021 - Oct, 2021 7 months
    Developed infrastructure-as-code solutions using Terraform for multi-cloud deployments across GCP and AWS, enabling consistent environment provisioning and reducing setup time by 60%. Identified and resolved critical security vulnerabilities in GCP environments through systematic security audits, implementing remediation strategies and establishing security best practices. Designed and implemented multi-threaded background task manager for automated volume snapshots, improving system throughput by 35% through effective concurrency optimization and resource utilization.

Software Development Engineer I

Sigmoid Analytics
Oct, 2020 - Feb, 2021 4 months
    Architected high-performance API service in C++ handling 17M page views per month with 94% cache efficiency, optimizing response times under 50ms and improving overall system scalability. Deployed containerized applications on Kubernetes clusters, streamlining development workflows, enabling blue-green deployments, and improving deployment velocity by 2x.

Associate Developer

Cognizant
Jul, 2018 - Jul, 20202 yr
    Optimized ETL data pipelines across three enterprise projects using Python and SQL, significantly enhancing data processing efficiency and reducing processing times by 30% through query optimization. Developed Python automation scripts and Master Data Management (MDM) workflows using STIBO platform, automating complex business processes and improving operational efficiency across data governance initiatives.

Achievements

  • Designed and developed an entire new UPI payment system
  • Leading three teams in UPI, Insurance and Demat
  • Responsible for all prod related issues and to change the existing system
  • Responsible for maintaining all the services uptime and also the entire CI-CD pipeline
  • Creation of terraform scripts for infrastructure deployment on GCP and AWS
  • Filtering out all vulnerabilities in GCP and providing resolution to them
  • Created new services in python with spark to maintain the parallel process
  • Migrated the entire system into a python executables
  • Extended the build system to integrate with the mercurial sparse feature
  • Developed 17 business rules for various scenarios to automate entire process
  • Spearheaded CISCO and VMWare security integration using Golang, showcasing expertise in backend development.
  • Led a 30+ member team across two projects, demonstrating strong leadership in GCP, Terraform, and AWS environments.
  • Successfully closed pre-sales negotiations with industry leaders NVIDIA and CISCO.
  • Ensured seamless task creation and monitoring, emphasizing technical proficiency in Git, Grafana, and ETL.
  • Implemented a sumo-logic based solution for task automation directly from monitoring tools like Grafana to even auto-scheduling the AWS load balancing.
  • Designed and enhanced UPI payment systems, owning the credit module and implementing risk-based pricing models.
  • Successfully led three teams in UPI, Insurance, and Demat, overseeing product-related issues and driving positive changes.
  • Implemented cutting-edge risk-based pricing models, significantly boosting lending profitability.
  • Documented and implemented robust risk assessments, mitigation strategies, and compliance activities.
  • Revamped the infrastructure for Sole-Proprietary businesses, addressing all product-related issues and driving system evolution.
  • Pioneered the establishment of a new infrastructure tailored for Sole-Proprietary businesses, utilizing Kubernetes, AWS, and PostgreSQL databases. Managed product-related issues and system changes.
  • Responsible for the creation of new tasks, work cards, and ensuring the uptime of all services and the entire CI-CD pipeline.
  • Developed impactful Terraform scripts for infrastructure deployment on GCP and AWS.
  • Created a robust architecture for AWS, effectively mirroring infrastructure in GCP via Terraform.
  • Identified and resolved vulnerabilities in the GCP environment.
  • Successfully managed applications across Kubernetes, AWS, and GCP.
  • Implemented multi-threading, significantly improving throughput and reducing execution time.
  • Designed and implemented a multi-threaded background task manager for automated volume snapshot creation and maintenance.
  • Orchestrated the migration of the entire system into Python executables.
  • Built an API-driven publishing service handling 17 million page-views per month, operating at 94% cache efficiency.
  • Deployed dockerized applications on kube clusters, streamlining the development process.
  • Extended the build system to integrate with the mercurial sparse feature, addressing performance issues with large repositories.
  • Rebuilt the mercurial sparse subsystem, transforming it into a user-friendly tool.
  • Spearheaded the optimization of the ETL layer in three projects, significantly enhancing data processing efficiency.
  • Wrote Python pipeline scripts and created/modified workflow jobs on MDM tools, automating processes.
  • Developed match-link algorithms using STIBO MDM, ensuring accuracy in data relationships.
  • Created an inbound processor for XML loads, reducing load time by 30%.
  • Developed 17 business rules for various scenarios, automating entire processes.
  • Created an outbound processor for hot folder linkage, improving overall system efficiency.

Major Projects

1Projects

GOLANG (IN HOUSE PROJECT)

    Work with a team to create a server-side application via the use of various functionalities like go routines and package import like multi-version. Assist in designing and developing a scalable recommendation platform that can be used by various systems/applications using the CRUD framework. Echo server implementation to change priority network pipeline and workflow.

Education

  • Bachelor of Technology (B.Tech) in Information Technology

    Government College of Engineering, Amravati (2018)

AI-interview Questions & Answers

Yeah. So this is Sudanshu. I have been working for six years now. It's more of a core and backend. I would say, sometimes the requirements and

Well, to have a rate limiting algorithm, you can use multiple functionalities and methods. The one I had used in one of my previous projects was with the least connection approach. So the way this works is: if you have two servers, one server has already 10 request processing, and another has nine request processing. Your rate limit algorithm does this: once something comes in, it blocks that number of API entries. In layman terms, you can say it uses a bucket and other things. Let's just say there was a bucket, and you configure that bucket in such a way that it would only accept around 5 balls. As soon as the 5th ball comes in, it will just get spilled out. These are certain ways you can rate limit things. The reason one basically uses a rate limit is to control API responses and make sure there isn't an overload of things, so the API performs well.

If you have to implement polymorphism in a Go line without modifying the existing functionality, to me, I think, only thing I can think of with, would be use of empty interfaces with struct embedding.

If your service is really heavy, one design aspect in Golang would have put priorities to ensure optimal performance. K. So if the service is read-heavy, that means, first thing that's clear to me is that my DB transactions, whatever they might be, will have to be itemized and independent of one another. That means some read calls will be going on, and I don't have to worry about write operations. So if it's such a case, then I would usually go for a structured database design, which will be our SQL one, as it's easy to retrieve and search from a structured database compared to your document study database, which would be NoSQL ones, like MongoDB and things like that. But for this exact requirement, I would usually prefer a structured database, a normal, like traditional SQL one. This will give me optimal performance because if I have to search in a very segregated manner or for a very particular 1 or 2 bits of data, it's easier, and it's also easier to formulate a query for that. Not to mention, I can pass certain exact parent results, which is not doable with unstructured ones. So, yeah, that would be it.

In your Go applications, if you need to ensure that each and every transaction or operation with your DB follows the asset properties, there are certain ways to make that happen. So let's say you have a microservice architecture, and everything is happening. In such cases, we have assets, and first would be atomicity, then consistency, isolation, and durability. To make sure each and every one of those things gets properly validated, the way I would start constructing things is by using Microsoft's design approach. I would take a first approach using ACID (atomicity, consistency, isolation, and durability) in calls, because whenever you have asynchronous calls, you don't have to wait for acknowledgment. And then at the end of the day, you can run a lookup or something like that, which will synchronize your entire DB transaction that has happened. If there's any mismatch in your transactions, you'll be able to detect it. That's one way of doing it. But if you want an atomic transaction with consistency at the same time, then an async model is not the right approach. You need a model with request-response acknowledgment, and DB transactions are usually preferred in standard structured databases like SQL and all. So, this is how I would usually think of it.

Well, in terms of SQL injections, I don't have exposure to it. However, later I have used SQL, so I'm not sure how to prevent an SQL injection attack when my goal is having user-generated database queries.

So it shouldn't be there. It should be all. Well, the for loop is perfectly fine, I would say, as it's assorted code, and the smaller one is will be getting upended every time things are happening. Same goes for your equal scenarios. I would say the logic error would be in the forward statement, the conditional. An operation will fail in so many corner cases because it has never been specified that both slices are of the same length. So in such cases, the standard approach should be to check for the smaller slice length. So how would that be? Let's just say if slice a is the first one, it would be of a smaller length. So I would have, like, 4 I is less than the length of a. And then I will do my everything, result and all. There would be something else, and it would be a pending based on things. As soon as this loop gets over, whatever counter for the j would be, I would take that counter and the remaining element for the j array and directly append it to the result. So that's a better way to do this. I can even put, let's just say for a I can even put an or statement there because and would fail in a major case. So or would be a better approach instead of logical and. Or the first approach is always good. You just have things there. Or what you can do is you can do a reverse append. Like, the append shall be from the back of the array. That's also one of the ways you can do it.

Interface area. Okay. Floor 64. Shape.area. Well, one thing I can think of is that the way we're using interface here, if I need to use other shapes, then I have to create more area methods, meaning more area functions instead of just using one and then getting done with it. What we can do is have my interface as a kind of template. So, if I need to use a square structure, also, which in that case, I will have other things like diameter and radius. My area or whatever, that would be called, like, circle, semicircle. It would be according to this code. Yeah. So, it will create some independent mode functions, which is not usually encouraged as the reason we use interface is to make sure to keep the length span of the entire code small and to have reusability of whatever function that has been defined in it. So, that's the only thing I can think of it. Otherwise, it seems kind of okay with me.

Well, I don't know how I would have it in AWS. But for usual adherence, for a go service being highly valuable and they're having other things, certain things you can do. First of all, it's usually encouraged to have a profiler. So in Go, you can create a profiler and things like that. One more thing that I usually follow is create a watcher. So it watches who are on the APIs, and it has a connection to an HCT manager. So as soon as there is something or there is any modification or let's just say my API has 3 calls, create, delete, update. Whichever call is getting performed, my entity manager informs me continuously. And as soon as something goes wrong, there is usually some recovery management code written behind it based on the scenarios. So that would be profiler voucher. What you can do is that whenever you write a service, so to make sure that service is up to the mark from the start itself, it's a good habit to create some benchmarks in your project. So service is created. So to test that service, keep some benchmarks and things like that. That will give you a proper running service. In terms of AWS, I don't know. My work experience with Go wasn't like that in a way that I would have to deploy my service on AWS. But the way I think I can think of certain things. Highly available. I'm not sure about AWS, but I can think of it in a Kubernetes scenario. What you can do is that you can make sure your selectors in your services, let's just say if you have cluster IP and things like that, you can configure them in a way that your resource management is properly handled. You can have your load balancer to make sure your services are highly available. Let's just say you can configure it in such a way that whatever ports they are running on, as you say, you had 10 ports and they were communicating with their local host, and every communication was going on. You can implement certain Kubelet services in a way that utilization, once it goes beyond 60% or 70%, just shift remaining load that is coming to the load balancer to those ports which are identical or ideal, basically. So let's just say you had 4 ports and you had 4 replica sets of them, and those replica sets were ideal. So as soon as utilization goes beyond 60% or 65%, a replica set port will be used. So that's one way you can do it. I think we call it something like weighted round robin load balancing approach. So you can do that. For this question, in terms of AWS, I'm not sure. I haven't used my Go services with AWS yet. But with Kubernetes, yes, you can do it.

I would say that instead of choosing a singular service, you can create a family of multiple services. Have a Kubernetes setup, have Redis, and both of them in conjunction. They will provide you with so many options and services in such a way that your services, or whatever you would be running in your Go applications, will always be available. They will have many disaster scenarios covered. Once that is done, you can take that entire family and deploy it on your AWS SDK. So it was highly available, highly scalable, and now you have fault tolerance because it was only a premise setup. Now it's on the cloud, and you have more range to scale it horizontally. You have more replica availability. In such cases, plus on top of that, AWS itself provides certain fault tolerance features. And because of that, I would say it's good to create a family of components instead of just choosing a singular one. You can do it with a singular one; there's no issue. But in terms of cost and effectiveness, I usually suggest creating a convention of multiple families. I take good from Kubernetes, I take good from Redis, and I take good from AWS, and I combine them to make a better, you know, better-performing product. So, yeah, that would be my thinking on this.

How would you manage human rights, deploying, scaling, and operations on the whole and the API on AWS? See, in terms of Kubernetes, management and deployment, now what you can do from the start, you can enable your horizontal scaling. So, irrespective of the service that you choose, maybe cluster IP, node port, anything like that, it will always be having some horizontal scaling. So, your scaling is done. In terms of deployment, it's good to have replica sets so that if one port goes down, you already have another port to take its place. And, you know, things are always highly available and going on. So, your service won't go down. Because, in terms of pause, one thing people forget that they are item protected. That means those pods are constantly getting destroyed one after another, and new ones are getting cleared. So, it's good to have some replicas, you know, as a backup. No. If there are multiple, you know, go back and APIs are running, what you can do is that you can configure your selector in cluster IP that will give you a highly scalable API request response or you can say performance. And now when you put that on AWS, things will be a little bit different. Because what happens is that under AWS, you have more scale. Your resource-absorbing capability has increased drastically. On AWS, now you don't have to worry about your on-premise setup. You don't have to worry about how to scale it now going forward because horizontal and vertical scaling both are available to you at a higher degree now. Plus, there are ways in which you can configure your load balance. Let's just say if you are using a weighted round robin approach on Go, you can do it in a way that lets just say your API service or your entire Kubernetes were running on some buckets and things like that. You had some Lambda to support it and maybe some current scenarios, current training, you had some ML models going on. So, based on such architecture and complex system, what will happen is that your back-end API will always be running irrespective of what's happening. You will have fault tolerance. You are going to have your services, you know, always in a scaled manner. What you can also do is you can create a profiler, have a dashboard assigned to it, maybe graph on a dashboard or Prometheus for simpler things, and keep consuming the metrics. So, as soon as something happens and that metrics produces some kind of alert, configure your AWS in such a way that it will do your on-time load balancing. AWS has that functionality, so you know, just make a use of it. So, yeah. That is how I would usually utilize, I mean, that's what I think, that's what I can think of in terms of utilizing micro.