Gaurav is a polyglot back-end developer with 20+ years of hands-on experience; he's worked as a freelance developer for the past several years. He primarily works with Java and C and is also comfortable with Go being the primary project language or for infrastructure modules. Thanks to having built products in various industries—like finance, healthcare, media, retail, food, and travel—Gaurav has a range of tech and functional skills, which means he can hit the ground running on a project.
ExperienceJava - 20 yearsREST APIs - 11 yearsAmazon Web Services (AWS) - 6 yearsApache Kafka - 5 yearsApache Cassandra - 5 yearsKubernetes - 4 yearsSpring Boot - 3 yearsGo - 2 years
MacOS, Linux, Cloud, Slack, IntelliJ, Java, Go, Integration, Jira, Low Latency
The most amazing...
...thing I've developed was a custom data migration strategy that migrated more than 200 million records from one database to another without any system downtime.
- Developed and maintained the functionality of determining user entitlements when users try to playback content from Discovery Channel's website. The app currently handles a peak traffic number of 80,000 requests per second.
- Managed five different microservices liable for playback, entitlements, capability determination, and global settings management.
- Oversaw and supported the deployment of applications across various environments, including development and production via Kubernetes pods.
Senior Java Developer
- Developed modules for marketing and interface with different marketing partners like Kajabi, Mixpanel, AppsFlyer, and Facebook.
- Passed on data generated from user interactions on the UI to different marketing companies that could be used to understand user behavior and take appropriate actions.
- Deployed services across different environments, including development, user acceptance testing (UAT), and production.
- Developed an app that ensured the custom-built self-service check-out registers at Tesco were able to print receipts. These are Linux-based hosts that run multiple containers, each responsible for different functionality.
- Constructed printer drivers for any new printers that are onboarded for the till's software.
- Used Splunk to collect, manage, and monitor alerts, dashboards, and other parameters.
- Developed and maintained an application that helps customers buy passes on the NOW TV website. This involved integrating 13 different downstream systems that use REST APIs and four microservices developed using Spring Boot and Dropwizard.
- Maintained the application infrastructure in non-prod and prod environments using Kubernetes. The routines used to manage them were built in Go; also supported the app in production and configured and tuned alerts in Prometheus.
- Built consumers and producers for receiving and publishing messages from and to Kafka and managed retries and rescheduling of unprocessed messages using custom-built solutions.
- Performed nonfunctional testing using Gatling to ensure that application endpoints responded within their service-level agreement (SLA). This sometimes involves profiling to ensure memory and CPU are utilized appropriately.
- Developed an app in Go to download emails from the external email server, process them, and store them into Google Cloud Storage. Used Google Cloud functions to transfer data into Bigtable for internal data analysis.
- Worked as part of the holiday booking team to maintain a Java app that helps customers book their hotel or combo holidays. This app links with a number of suppliers for hotel, airline, and taxi reservations.
- Used Kubernetes and Helm to deploy applications in non-production and production environments.
- Worked in a pair-programming environment with BDD and TDD techniques to deliver a payments manager that orchestrates the payment workflow for NOW TV.
- Developed new microservices for integration with downstream systems using Java 8.
- Built and maintained application health rules for monitoring using Prometheus.
- Used Hystrix libraries to isolate calls downstream to enforce resilience in design.
- Utilized Kafka to publish and consume messages to and from disparate downstream systems. This was built using the Akka actor model and Akka persistence.
- Organized bi-weekly developer meetings across teams to discuss issues and improvements that would be useful for everyone.
- Developed an analytics dashboard for plotting time-series data and providing. different views of data to the user using Scala, Akka HTTP, and Elasticsearch.
- Composed CD pipeline scripts using Ansible that bake the application into an Amazon Machine Image (AMI) to achieve a near immutable infrastructure.
- Used AWS CloudFormation templates to create different application environments on AWS.
- Worked in a pair-programming environment with BDD and TDD techniques to deliver over-the-top (OTT) video content over different devices. The app also used Netflix Hystrix as a circuit breaker to ensure the response times stay within SLAs.
- Built and maintained REST services using the Dropwizard framework.
- Developed and maintained application health rules for monitoring using AppDynamics.
- Composed CI pipeline scripts to work on AWS and Sky's private cloud.
- Worked on the MCCS program, which helps Prudential to let its customers register and access its policies online.
- Wrote Camel routes in Java to orchestrate services, which communicate with different legacy systems using Blueprint, which are exposed as SOAP and/or REST web services.
- Implemented caching using Camel Ehcache and developed interceptors for applying system-wide policies on different Camel routes.
- Worked as an application architect and was involved with performance testing the platform and profiling using JProfiler to detect any bottlenecks and fix them.
- Led the development, as a teaching assistant (TA), of Common Platform registration, which is a common OSGi component used by all other accounts. Migrated REST implementation to Apache CXF, deployed in Fuse ESB with JPA entities backed by MySQL.
- Created low-level designs and ensured that the new components work similar to the old registration components; also developed adapters to communicate with external systems.
- Built components for integration between middle-office and back-office systems.
- Developed Mule-based components to process a stream of messages (file and queue-based) and send them out to third-party reconciliation systems.
- Constructed a jBPM-based framework that could schedule and process messages and manage data flow dynamically using Mule components.
- Designed and developed a rules execution framework for executing rules on any third-party rule engine. It implemented JSR-94 and can be accessed locally within an app or remotely over a network.
- Developed a visual product modeling system, a portable, self-documenting software tool that helps health plan business experts roll out new products and quickly support business changes without programming.
- Created routes and mappings over an integration broker, the IBM strategic Enterprise Service Bus (ESB).
- Developed authentication modules for the WebSphere Application Server (WAS) versions 5.x and 6.x.
- Built a framework that automated testing of the application server over different systems using an AWS Batch scheduler.
- Created an interface for a custom-built communication server that could convert data over the Snarl network protocol (SNP) to the transmission control protocol (TCP).
Tata Consultancy Services
- Developed a custodial solution to manage a customer's portfolio. Also, worked on a message transformation system that supported the transformation of custom messages.
- Worked for JPMorgan Chase to deploy the global straight-through processing association (GSTPA) application that supported T+1 settlement.
- Built a disaster recovery system using IBM MQSeries that could recover lost data by reverse-engineering the messages that have been processed.
Check Email Reliability by Analyzing Email Traffic
The application itself runs on Kubernetes.
Cache for C-based Applicationshttps://github.com/Tyagi-Gaurav/OCache
Java, Go, XSL, XML, Scala, C, Java 8, Java 11, Kotlin
JUnit, Spring Boot, Dropwizard, Akka, Apache Camel, OSGi, Vert.x, gRPC
REST APIs, Hystrix, JAX-RS, Reactor
Microservices, Agile Software Development, Test-driven Development (TDD), Behavior-driven Development (BDD), DevOps, Functional Programming, Reactive Programming, Scrum, REST
SOAP, Back-end, Distributed Systems, Cloud, CI/CD Pipelines, Integration, Low-latency Software, Prometheus, Apache Cassandra, Low Latency, Algorithms, Code Review, Technical Hiring, Technical Design, Interviewing, Task Analysis, Micronaut, Printer Drivers, Google Cloud Functions, Amazon Route 53, Google BigQuery, WebSphere Application Server, Enterprise Service Bus (ESB), Akka HTTP, JBoss Fuse, Enterprise Java Beans (EJB), Trading, Web Application Firewall (WAF), Spring WebFlux, Java 16
IntelliJ, Grafana, GitHub, Git, Slack, Gatling Load Testing, Splunk, Google Compute Engine (GCE), Helm, Amazon Elastic Container Service (Amazon ECS), Ansible, Terraform, Jira, AWS CloudFormation, ELK (Elastic Stack), AppDynamics, JProfiler, IBM MQ, MongoDB Atlas
MacOS, Linux, Apache Kafka, Kubernetes, Amazon Web Services (AWS), Amazon EC2, AWS Lambda, AWS NLB, Mule ESB
XML Schema, Google Bigtable, Google Cloud Storage, Amazon S3 (AWS S3), Redis, Oracle9i, Elasticsearch, MySQL, JSON
Master's Degree in Computer Science
Indian Institute of Technology - Delhi, India
Bachelor's Degree in Computer Science
Mangalore University - Mangalore, India
Functional Programming Principles in Scala