
Abhishek Kumar
Career Summary
- Passionate learner with 3+ years of experience in the Software industry mostly in the domain of public clouds, CI/CD and providing automation with internal Tooling.
- Strong academic background with Master’s Degree in Computer Science Engineering from Indian Institute of Technology (IIT), Bombay.
- 3+ years of experience in writing codes in multiple languages like Java, Golang, Python and Groovy language. Earned Oracle Certification in Java Programming back in academics.
- 3+ years of extensive working experience in AWS cloud. Hands-on experience in GCP, Oracle, Azure.
- 1.5+ years of experience in managing CI/CD infrastructure.
- Working Experience in kubernetes and Dockerfiles domain.
Work Experience
Member of Technical Staff, Qubole
September 2019 - Present
Major Projects:
- Jenkins Infrastructure Revamp: Migration of Build & Bake automation to Kubernetes cluster moving away from EC2 as Jenkins worker machines. Efforts mainly involved dockerfiles creation for over 60 packages, K8s set-up and retirement of legacy machines and workflows. Project decentralised the build ownership from Ops to respective teams owning the packages resulting in drastic reduction in on-call issues.
- Version Controlled Jenkins Set-up: Jenkins infrastructure set-up in automated and versioned controlled fashion using Ansible playbooks, Groovy scripts and terraform configurations. It helped the team in cloning any number of Jenkins server from the existing Jenkins infrastructure with minimal manual interference.
- Centralised Management and governance for AWS Accounts: Management of around 30 AWS accounts including centralised account creation using Control Tower, centralised billing using AWS Organization, team wise IAM role based access provisioning using Single-Sign-On and centralized governance using Service Control Policies.
- Cost Saving Initiatives: Helped the organization in cost-optimization initiatives during Corona pandemic saving around 50k\$ in less than a month. Efforts involve weekend shutdown of internal environments, upgrades of EC2 machines and automated termination of idle resources etc.
- Version Controlled AWS Resource Provisioning: Provisioning of Automated, version controlled and peer-reviewed process of AWS resource creation using terraform and 3rd party tool named Atlantis
- Build Pipeline Provisioning: Setup full CI/CD pipelines for all supported clouds so that each commit will go through standard process of software lifecycle and gets tested well enough before it can make it to the production.
- Release Cycle Responsibilities: Work closely with release managers and QA engineers in all the major releases for all supported clouds. Responsibilities include providing stable infrastructure, delivering first draft of artifacts, assistance with any bottleneck and listing possible improvements to address before next major releases.
-
Internal Tooling:
- Python based tool to automate the PR merge process enforcing repo based mandatory approval and valid PR title format
- Tool to provide commit difference between production and hotfix tags during hotfixes on Azure, GCP and Oracle clouds.
- Python and Jenkins based tool to cherry-pick and push the commits at release branches.
Technologies used:
- AWS Services
- Jenkins
- Ansible
- Python
- Bash
- Azure
- GCP
- Oracle
- Groovy
Software Engineer, Dataxu
July 2017 - July 2019
Major Projects:
- Warden: An IaC Golang tool to manage company’s critical AWS resources in a versioned and automated environment by codifying the AWS resources into configurations.
- Cross Account Bucket Access: Implementation of Golang, Jenkins based tool to grant temporary, auditable cross account S3 bucket access to an IAM role
- AWS Single Sign On: Redesigned company wide AWS access leveraging AWS Single Sign-on. Efforts involve configuring fine grained roles for SSO, clean-up of IAM users and provision of a wrapper over aws-cli to authenticatea user against Okta and using SAML assertion to retrieve temporary STS credentials from AWS.
- AWS Tagging: Development of lambda based tool to examine tags of newly created resources as per company tagging guidelines to track AWS cost at more granular level
- Provisioning of Athena workgroup: Provisioning of Athena workgroups, each with different access levels different user types, to get better Athena cost distribution between teams, applications and ad-choc usage
Technologies used:
- Golang
- Python
- AWS Services
- Jenkins
- Bash
- Github
Academic Projects, IIT Bombay
- Implementation of Raft Consensus Protocol
- Implemented a highly concurrent file server in Google’s Go language. In addition to the usual Read,Write, Append, Delete operations it also provides Compare-And-Swap and automatic expiry time asbuilt-in primitives
- Made the file server fault-tolerant by replicating it using the Raft consensus protocol. A system of fiveservers behaves as one transparently, and can survive node failures as long as a majority is functional
- Implemented multithreading in file server to handle multiple clients at same time using GOlang
- Github: https://github.com/abhisoniks/cs733
- Implementation of Zero Knowledge Authentication protocol
- Explored various authentication protocol & literature study of zero knowledge authentication protocol
- Implemented a client-server pair which uses ZKA protocol for authentication purpose
- Computer Network Implementation
- Implemented several Client-Server architectures using c socket programming where client was chattingwith a dummy math server
- Analyzed TCP congestion control mechanism and parameter like average throughput, maximumexpected throughput, congestion window by varying various parameters of TCP using NS-3 simulator
- Modelled Virtual Private Network via tunnelling and IP tables
- Github: https://github.com/abhisoniks/Socket-Programming
- IITB Network Monitoring and traffic analysis
- To analyze traces collected at firewalls, proxy servers and other devices to extract quality information like type of traffic, number of user, peak bandwidth. A pre-requisite for this is optimal level of anonymization so that users remain anonymous, but usage trends remain extractable.
- Work on zabbix framework for network monitoring and determining the usage of network resources like memory, bandwidth for different application in IITB network.
- Develop a measurement tool that will statistically characterize and archive the statistics on an ongoing basis so that long term trends can be studied over many years.
- Seminar on Online Voting System using Bitcoin and Blockchain
- Studied various applications of Bitcoin and Blockchain
- Addressed major concerns in implementation of e-voting
- Demonstration of e-voting system in context of Bitcoin and Blockchain
IITB has huge networking infrastructure comprising of thousands of switches, Wireless access points and thousands of kilometers of cable, which is used by lot over tens of thousands users in a variety of different ways. There has been ample amount of work done for installing and maintaining IITB network but not much has been done in area of log analysis, statistical analysis and measurement of network traffic. Thus, the focus of my thesis work is dedicated to this aspect of IITB network. Specifically:
Resume
Education
-
M.Tech in Computer ScienceIIT Bombay2015 - 2017
-
BTech in Computer ScienceJCDV College of Engineering, Sirsa2011 - 2014
Certification
-
Oracle Certified Professional Java Programmer
Technical Exposure
-
CI/CD
-
AWS Cloud
-
Devops
-
DS & Algorithm
-
Golang
-
Core Java
-
Python
-
Bash
Others
- Ansible
- Groovy Scripting
- Jenkins Infrastructure
- Mysql
- Github
- Bitbucket
- Code Review
- Agile
- System design
- System Engineering
- Distributed System
- Linux
- cloud computing
- Cryptography
- REST API
Language
- Hindi (Native)
- Punjabi (Native)
- English (Professional)
Blog
Interests
- Trekking
- Indian Politics
- Music