profile-pic
Vetted Talent

Avinash Barde

Vetted Talent

5.7 years of Backend Development and deployment experience.

Worked on multiple projects in cloud native domain.

Working experience on microservice development and deployment on Kubernetes platforms using helm charts and DevSecOps.

Hands-on with multiple technologies related to back-end development and cloud DevOps.

Result-oriented, self-motivated, and learning-focused Senior software engineer with 5+ years of experience in design, development, and deployment of enterprise-level cloud-native applications.

  • Role

    Senior Software Engineer

  • Years of Experience

    7.2 years

Skillsets

  • OWASP
  • IAM
  • Microservices
  • Restful APIs
  • ABAC
  • Bash
  • DAST
  • GitHub Actions
  • MkDocs
  • Oauth 2.0
  • Okta
  • OpenID Connect
  • Git
  • Rbac
  • SAST
  • Ibm devops intelligence
  • Azure AI Studio
  • Event-driven systems
  • Golang
  • OpenShift Operators
  • rag
  • Vector databases
  • LLM
  • Docker - 5 Years
  • AWS - 5 Years
  • Azure - 3 Years
  • Grafana
  • Helm
  • Kubernetes - 5 Years
  • MySQL
  • Prometheus
  • Python - 3 Years
  • Terraform - 5 Years
  • Tekton
  • ArgoCD
  • DevSecOps
  • MySQL
  • Python
  • Azure
  • Terraform
  • DevSecOps
  • AWS
  • MongoDB
  • Linux
  • Nodejs

Vetted For

15Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior Software Engineer, DevOpsAI Screening
  • 70%
    icon-arrow-down
  • Skills assessed :infrastructure as code, Terraform, AWS, Azure, Docker, Kubernetes, 組込みLinux, Python, AWS (SageMaker), gcp vertex, Google Cloud, Kubeflow, ml architectures and lifecycle, pulumi, seldon
  • Score: 70/100

Professional Summary

7.2Years
  • Nov, 2024 - Present1 yr 7 months

    Senior Software Engineer

    Netcracker Technology
  • Jan, 2022 - Nov, 20242 yr 10 months

    Senior Software Engineer

    GS Lab
  • Jul, 2019 - Dec, 20212 yr 5 months

    Software Engineer

    GS Lab
  • Jan, 2019 - Jul, 2019 6 months

    Intern

    Siemens

Applications & Tools Known

  • icon-tool

    Golang

  • icon-tool

    Kubernetes

  • icon-tool

    Docker

  • icon-tool

    Terraform

  • icon-tool

    AWS

  • icon-tool

    Azure

  • icon-tool

    NodeJS

  • icon-tool

    Python

  • icon-tool

    Git Actions

  • icon-tool

    Helm

  • icon-tool

    MongoDB

  • icon-tool

    Linux

  • icon-tool

    IAM

  • icon-tool

    MySQL

  • icon-tool

    Grafana

  • icon-tool

    Prometheus

  • icon-tool

    Tekton

  • icon-tool

    ArgoCD

  • icon-tool

    Monitoring Tools

  • icon-tool

    Okta

  • icon-tool

    IBM Cloud Pak

  • icon-tool

    ReactJS

  • icon-tool

    DevSecOps

  • icon-tool

    Snyk

  • icon-tool

    Trivy

  • icon-tool

    SAST

  • icon-tool

    DAST

  • icon-tool

    DevOps

  • icon-tool

    SonarQube

Work History

7.2Years

Senior Software Engineer

Netcracker Technology
Nov, 2024 - Present1 yr 7 months

Senior Software Engineer

GS Lab
Jan, 2022 - Nov, 20242 yr 10 months

Software Engineer

GS Lab
Jul, 2019 - Dec, 20212 yr 5 months
    Led backend development of an enterprise Learning Management System (LMS) in Golang and a Private AI ChatBot in Python, delivering two production-grade cloud-native products as part of a strategic DevSecOps initiative. Architected and deployed a Private AI ChatBot powered by Azure AI Studio integrated large language models (LLMs) with a Vector Database for Retrieval-Augmented Generation (RAG), enabling private, context-aware enterprise Q&A without exposing sensitive data to public AI services. Designed and published a cloud-agnostic, reusable DevSecOps Reference Architecture enabling any organization to adopt DevSecOps practices, projected to deliver 90%+ cost savings in operational and security overhead. Built and maintained CI/CD pipelines on AWS and Azure using GitHub Actions, integrating SAST, DAST, and container security scanning tools at each pipeline stage. Developed Terraform IaC modules to provision and manage cloud infrastructure on AWS and Azure, reducing infrastructure provisioning code by 98% for static site deployments (MkDocs on S3 + CloudFront). Engineered Okta SSO authentication adaptors supporting OAuth 2.0 / OpenID Connect and authored a Golang AWS Lambda function for automated user lifecycle management via Okta API. Designed and assigned engineering stories on Azure Boards; performed structured code reviews enforcing security and quality standards across a cross-functional team. Delivered a university-level DevSecOps course based on the reference architecture, enabling upskilling of engineers and students at Kyndryl University. Led a team of 4 engineers onboarded, mentored, and provided continuous performance feedback to deliver Turbonomic integration with the MCMP AIOps platform on schedule. Developed Go broker services and hardware order services enabling real-time Kubernetes workload and cloud resource monitoring with actionable cost-optimization insights for MCMP-AIOps users. Automated end-to-end deployment of Turbonomic using Helm charts on IKS clusters, cutting deployment time and eliminating manual configuration errors. Built a Deployment Automation (DA) framework using Python and ArgoCD to configure and deploy Turbonomic on IBM Cloud with full GitOps workflow. Evaluated and integrated Tekton, IBM DevOps Intelligence, and OpenShift Operators to automate Turbo configuration, establishing a repeatable, auditable deployment pipeline. Collaborated directly with enterprise clients to gather requirements and design the integration architecture connecting IBM Terraform Automation with the MCMP multi-cloud management platform. Developed Go broker services and hardware order services for Cloud Pak (CP) integration, enabling provisioning and lifecycle management of infrastructure across multiple cloud providers. Built ICAM adaptor microservices in NodeJS exposing RESTful APIs to unify cloud identity and access management across hybrid environments. Explored and implemented ArgoCD, Tekton, and OpenShift Operators to automate IBM Cloud Pak deployment and configuration on IBM Cloud.

Intern

Siemens
Jan, 2019 - Jul, 2019 6 months

Achievements

  • Created and deployed a customizable reference architecture for cloud-native DevSecOps.
  • Developed and maintained backend services for LMS and Private ChatBot.
  • Developed and deployed infrastructure pipelines and static site infra using Terraform on cloud platforms.
  • Org save 90%+ cost of adopting DevSecOps into their products

Major Projects

4Projects

Learning Management System (LMS)

Jan, 2022 - Jan, 20242 yr
    Created a Learning Management System utilizing DevSecOps reference architecture.

Private ChatBot

Jan, 2022 - Jan, 20242 yr
    Developed a Private ChatBot out of DevSecOps reference architecture.

MCMP Turbonomics Integration

Jan, 2020 - Jan, 20222 yr
    Integrated Turbonomic with MCMP to monitor Kubernetes applications and provide insights for cost savings.

CP4MCM-MCMP Integration

Jun, 2019 - Jan, 2020 7 months
    Developed a multi-cloud enterprise management application for resource provisioning and monitoring.

Education

  • Master of Science Computer Science

AI-interview Questions & Answers

I wanted to join Gather AI because it's one of the growing companies. I'm currently in my current organization, doing 30% back-end and 70% DevOps work. I wanted to be fully in the DevOps field, so this role and all the skills it requires match my skills. I'm looking for a particular role that aligns with my skill set, and I think this one fits that description. I wanted to join Gather AI.

database indexing works there are different ways to say database indexing is a technique and indexing is a technique used to optimize query performance by reducing the amount of data scanned during data retrieval. indexes work similarly to an indexed book, allowing the database to quickly locate a particular row without scanning the entire data set. So, how it works is first we need to create an index. When we create an index on a column, the database stores the values in that column into a sequence of a data structure. Without an index, the database performs a full table scan, but with an index we can directly point out that particular index and return that particular row. This speeds up the query, making a full table scan unnecessary. Index searching uses binary search or a binary tree or hash-based lookup, which is much faster in most cases. There are many different types of indexes, like single-column indexes or multi-column indexes, also known as composite indexes, and unique indexes.

So for keeping a system secure, we need to apply authentication and authorization over it. So that only authorized users can access that particular system. Also, inside a system, based on authorization, users can access particular components. This is one way. Another way is to provide a gateway or load balancer, or a gateway, in between, so that it will be one layer between a system and external access. We can also deploy a particular system into HTTPS so that communication between client and server will be encrypted. We can use some encryption algorithms. If that particular system is a containerized system, then we can scan all the containers with the help of some DevSecOps tools, like Tri-V and BlackDock, and then only deploy that particular container so that it will be a vulnerability-free system. Vulnerability scanning can be applied, and we can integrate all the different tools into our existing CICD so that our system will be secure.

What are the challenges you faced when trying to autoscale Kubernetes clusters, VMs, or EC2 instances horizontally? So, there are different factors or challenges I faced when adding scalability to virtual machines, particularly when scaling horizontally, which involves adding more VMs to the cluster. In that case, I faced multiple challenges, including networking and load balancing challenges, ensuring proper network operation and reliable load balancing across all the VMs. This is one challenge I faced. Also, in the case of distributed data, we faced challenges in managing data consistency between multiple VMs, especially when there's a stateful application involved. In that case, we faced this challenge. We also faced a challenge in the orchestration of the VMs, which involves dynamically adding or removing VMs from the cluster, requiring automation or coordination. Another challenge we faced is the scaling bottleneck. Horizontal scaling might not eliminate all bottlenecks, particularly in system components that cannot be scaled horizontally. Scaling bottleneck or performance and latency issues can be introduced when distributing the workload across multiple VMs, sometimes resulting in overhead and latency. Additionally, managing efficient autoscaling and scaling can be tricky.

Managing DB changes that developers want to deploy to production is a critical aspect of RDevOps. So we want to follow some CI, CD, or we can say this is typically managed through some change management or continuous integration and continuous development pipelines along with other best practices also involved. So we need to establish a change management process, for that we can use a change request process via Jira or ServiceNow, then approval workflow, and then use a version control system, such as Git. Then we will test changes in a non-production environment, and then implement a CI, CD pipeline. First, we will test particular changes in a non-production environment. Then we will implement CI, CD for production. Implementing CI, CD will involve multiple things: the CI part will automatically build and test the application whenever changes are committed. The CD part will automatically deploy changes to a staging environment and then to production according to your request. For deployment, we can use different strategies like BlueGreen, Canary. We are mostly using the BlueGreen strategy. In BlueGreen, there will be two identical environments. For example, one is the live environment, and the other is blue or green. All the changes will happen to the green environment first, and then all the traffic from green will be moved to blue. Our blue environment will become the latest environment, and after that, the green environment will be updated.

When choosing between hosting your application in Kubernetes and VMs, I consider several parameters. First, I need to determine if the application is a microservice architecture or a monolith. If it's a microservice architecture, I'll divide it into different small functional functionalities or services. If it fits, I'll deploy it on Kubernetes. Otherwise, I'll deploy it on a VM. For example, if the application has only one functional code or one functional service, a VM would be a suitable choice.

We need a route table in the networking context. It's used to determine where to forward traffic based on the destination IP address. In a networking context, if I say like the analogy of a route table is like a map that helps routers decide where to send traffic. We need a route table in contexts like load balancing, where we use it to distribute traffic across multiple nodes. For instance, a load balancer like NGINX will use the route table to forward traffic to specific nodes based on the routing information in the table. This helps in efficient traffic redirection.

So, here in this example, if you see VPC security group IDs, over there they have hard-coded that particular VPC security group ID, which is potentially a security risk. We can't hard-code this type of thing. Instead of that, we can store that particular ID inside a VAR file or provide it through HACCP or PORT or through any cloud-native secret store like parameter store. Likewise, we can provide that particular value instead of hard-coding it. This is what I identified. Any other issues, I've found this one.

Deploying a multi-tier application using Terraform in both AWS and Azure environments, ensuring high availability, involves several steps. First, we need to architect the multi-tier application, which consists of a front-end, back-end, and database tier. For the front-end and back-end, we can use load balancers to handle user traffic, and for the back-end, we can expose APIs that are only accessible to the back-end, while the front-end can only access those APIs. For the database tier, we can use cloud network database services such as Amazon RDS or Azure Database, which can be replicated across availability zones for high availability. To achieve high availability, we can deploy the front-end and back-end layers across multiple availability zones. Using Terraform, we can manage the infrastructure as code, and it supports both AWS and Azure providers. We can create separate modules for both environments, which are reusable components that can be managed through Terraform workspaces. This allows us to handle multiple environments through Terraform workspaces. Additionally, we can deploy the back-end tier as a microservice or API, and in the case of Azure, we need to set up a VPC. Finally, we can execute Terraform commands on a particular workspace to deploy the environment. In Terraform, we can create separate modules for AWS and Azure, which can be managed through workspaces. This approach allows us to handle multiple environments, including AWS and Azure, and ensure high availability in both environments.

To deploy an Azure-based application with high availability and minimal latency, we need to design an architecture that can distribute application components across multiple Azure regions and availability zones. This ensures the application can handle failure and maintain performance under high load or adverse conditions. To achieve this, we can use Azure Traffic Manager for global routing and load balancing. For regional redundancy, we can deploy application components across regions and zones. Additionally, autoscaling can be applied on Azure VMs or Azure App Service to handle varying loads. For database replication, we can create multiple replicas to ensure high availability. We can also use Azure Redis caching to reduce database load and improve performance. To manage high traffic, we can use Azure Front Door for global traffic distribution and load balancing. The compute layer will consist of App Service and VMs. Monitoring and alerting will be handled by Azure Monitor and Azure Application Insights, which provide metrics such as response time, latency, availability, error rate, and CPU and memory usage. These metrics can be used to create alerting or reporting across the globe. We require a global traffic distributor, which is available in Azure. This architecture ensures high availability and minimal latency across the globe.

Okay, now, so GDPR, okay. So while deploying any application, we need to follow some standard compliances or standard compliance we use, like we can't reveal any information which is sensitive or organization-related information, or any information that will potentially expose a client or something. That kind of information we can't expose outside the organization. Also, some of the secrets, some of the tokens, all those we will need to use either inside as an environment variable or store that particular secret inside a cloud-native secret store or in case of Kubernetes, store it as a Kubernetes object called a secret. We can store it over there. Also, not revealing any client's information to the outside, that's one point.

I have experience with setting up a distributed email interface on a platform like AWS SageMaker. Now, setting up a distributed machine learning interface on a platform like Enhance, leveraging deploying on to SageMaker, Enhance leverages cloud infrastructure to train large models or our database across multiple instances. So, I will explain the step-by-step breakdown of the process based on my experience with AWS SageMaker. So, first, we will discuss what AWS SageMaker provides, which is a managed platform to build, train, and deploy machine learning models. When it comes to distributed learning, SageMaker enables us to train models, scale horizontally, or use built-in algorithms. There are some built-in algorithms like those in TensorFlow and PyTorch. So, let's discuss the steps to set up a distributed machine learning interface on AWS SageMaker. First, we need to create a SageMaker environment. There is a concept called a Notebook. First, we need to create that Notebook, which has computation logic to run a particular model or execute a particular model. Then, we need to prepare data for distributed training and choose a particular distributed training approach. We need to set a job, which will decide which algorithm to use and all. This is how we can optimize it for distributed training.