Gaurav Tyagi, Developer in London, United Kingdom
Gaurav is available for hire
Hire Gaurav

Gaurav Tyagi

Verified Expert  in Engineering

Back-end Developer

Location
London, United Kingdom
Toptal Member Since
May 26, 2021

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.

Portfolio

Discovery UK
Java 11, Amazon Web Services (AWS), Vert.x, Reactor, Spring WebFlux...
GrowthDay
Java 8, MongoDB Atlas, Amazon EC2, Web Application Firewall (WAF), REST, JSON...
Tesco
Java, Micronaut, Splunk, Printer Drivers, Scrum, Jira, Terraform, MacOS, Linux...

Experience

Availability

Part-time

Preferred Environment

MacOS, Linux, Cloud, Slack, IntelliJ IDEA, 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.

Work Experience

Senior Developer

2021 - PRESENT
Discovery UK
  • 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.
Technologies: Java 11, Amazon Web Services (AWS), Vert.x, Reactor, Spring WebFlux, Microservices, Kubernetes, Spring Boot, gRPC, Java 16, Kotlin, Go, Docker, PostgreSQL, Rust, APIs, Architecture, Back-end Development

Senior Java Developer

2021 - 2021
GrowthDay
  • 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.
Technologies: Java 8, MongoDB Atlas, Amazon EC2, Web Application Firewall (WAF), REST, JSON, APIs, Architecture, Back-end Development

Senior Developer

2021 - 2021
Tesco
  • 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.
Technologies: Java, Micronaut, Splunk, Printer Drivers, Scrum, Jira, Terraform, MacOS, Linux, CI/CD Pipelines, Integration, Spring Boot, Apache Kafka, AWS Lambda, GitHub, Git, REST APIs, JUnit, Low Latency, Test-driven Development (TDD), Reactive Programming, Back-end, DevOps, Microservices, Distributed Systems, Docker, APIs, Architecture, Back-end Development

Senior Developer

2020 - 2021
Sky UK
  • 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.
Technologies: Java, Go, Spring Boot, Dropwizard, Apache Kafka, Kubernetes, Amazon Web Services (AWS), Prometheus, Grafana, Gatling Load Testing, Apache Cassandra, Scrum, Hystrix, Jira, MacOS, Linux, Low-latency Software, CI/CD Pipelines, Integration, Amazon Elastic Container Service (Amazon ECS), Amazon EC2, Amazon S3 (AWS S3), Amazon Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, ELK (Elastic Stack), JAX-RS, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Reactive Programming, Functional Programming, Redis, JProfiler, Back-end, DevOps, Microservices, Distributed Systems, Algorithms, Docker, APIs, Architecture, Back-end Development

Senior Developer

2020 - 2020
Love Holidays
  • 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.
Technologies: Go, Kubernetes, Google Compute Engine (GCE), Google Bigtable, Google Cloud Functions, Helm, Scrum, Jira, MacOS, Linux, CI/CD Pipelines, Integration, Apache Kafka, Google Cloud Storage, Google BigQuery, GitHub, Git, REST APIs, JUnit, JAX-RS, Low Latency, Test-driven Development (TDD), Back-end, Microservices, Distributed Systems, Algorithms, Docker, APIs, Architecture, Back-end Development

Senior Developer

2017 - 2020
Sky UK
  • 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.
Technologies: Apache Cassandra, Apache Kafka, Dropwizard, Spring Boot, Java, Go, Agile Software Development, Scrum, Prometheus, Grafana, Kubernetes, Hystrix, Jira, MacOS, Linux, Akka, Low-latency Software, CI/CD Pipelines, Integration, Amazon Web Services (AWS), Gatling Load Testing, Amazon Elastic Container Service (Amazon ECS), Amazon EC2, Amazon S3 (AWS S3), Amazon Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, JProfiler, ELK (Elastic Stack), JAX-RS, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Reactive Programming, Functional Programming, Redis, Back-end, DevOps, Microservices, Distributed Systems, Algorithms, Docker, APIs, Architecture, Back-end Development

Senior Developer

2016 - 2017
Expedia
  • 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.
Technologies: Scala, Elasticsearch, Terraform, Ansible, Akka, Akka HTTP, AWS CloudFormation, MacOS, Linux, Low-latency Software, CI/CD Pipelines, Integration, Amazon Web Services (AWS), Amazon Elastic Container Service (Amazon ECS), Amazon EC2, Amazon S3 (AWS S3), Amazon Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, JAX-RS, Test-driven Development (TDD), Functional Programming, Back-end, DevOps, Microservices, Distributed Systems, Algorithms, gRPC, APIs, Architecture, Back-end Development

Development Engineer

2015 - 2016
Sky UK
  • 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.
Technologies: Java, JAX-RS, Dropwizard, Hystrix, ELK (Elastic Stack), AppDynamics, Apache Cassandra, Low-latency Software, CI/CD Pipelines, Integration, Amazon Web Services (AWS), Gatling Load Testing, Amazon Elastic Container Service (Amazon ECS), Amazon EC2, Amazon S3 (AWS S3), AWS NLB, GitHub, Git, REST APIs, JUnit, JProfiler, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Back-end, DevOps, Microservices, Distributed Systems, Algorithms, APIs, Back-end Development

Senior Developer

2014 - 2015
Wipro
  • 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.
Technologies: Apache Camel, Java, Integration, REST APIs, JUnit, XML, OSGi, JProfiler, Back-end, Distributed Systems, APIs, Back-end Development

Application Architect

2012 - 2014
Monitise
  • 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.
Technologies: JAX-RS, Apache Camel, JBoss Fuse, Enterprise Service Bus (ESB), MySQL, JProfiler, OSGi, CI/CD Pipelines, Integration, Git, REST APIs, JUnit, XML, Behavior-driven Development (BDD), Back-end, Microservices, Distributed Systems, Algorithms, APIs, Back-end Development

Analyst Programmer

2011 - 2012
BGC Partners
  • 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.
Technologies: Mule ESB, Enterprise Service Bus (ESB), Integration, JUnit, XML, XSL, Back-end, Distributed Systems, Algorithms, Trading

Application Architect

2004 - 2011
DXC Technology
  • 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).
Technologies: Java, XSL, XML, JUnit, XML Schema, SOAP, IBM MQ, Enterprise Service Bus (ESB), Enterprise Java Beans (EJB), WebSphere Application Server, Oracle9i, Back-end, Distributed Systems, Algorithms, Trading

Java Developer

2003 - 2004
IBM
  • 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).
Technologies: Java, WebSphere Application Server, JUnit, XML Schema, XML, XSL, Oracle9i

IT Analyst

2000 - 2003
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.
Technologies: Java, XML, Enterprise Java Beans (EJB), Oracle9i, IBM MQ, XML Schema, JUnit, XSL, WebSphere Application Server

Check Email Reliability by Analyzing Email Traffic

A Go-based application to analyze the reliability of an organization's emails to its customers. It works by downloading emails from the server and checking their receipts. It schedules jobs to download the emails every few minutes and store them on Google Cloud storage. Then a Google Cloud function processes them and adds them to a Bigtable; afterwards BigQuery can then be used to generate reports from the data.

The application itself runs on Kubernetes.

Cache for C-based Applications

This is a cache for applications written in C that's loosely based on the design of Java HashMap which has multiple regions. Each region could potentially be locked exclusively for a single write and have multiple read locks.

Languages

Java, Go, XSL, XML, Scala, C, Java 8, Java 11, Kotlin, Rust

Frameworks

JUnit, Spring Boot, Dropwizard, Akka, Apache Camel, OSGi, Vert.x, gRPC

Libraries/APIs

REST APIs, Hystrix, JAX-RS, Reactor

Paradigms

Microservices, Agile Software Development, Test-driven Development (TDD), Behavior-driven Development (BDD), DevOps, Functional Programming, Reactive Programming, Scrum, REST

Other

SOAP, Back-end, Distributed Systems, APIs, Back-end Development, Cloud, CI/CD Pipelines, Integration, Low-latency Software, Prometheus, Apache Cassandra, Low Latency, Algorithms, Code Review, Technical Hiring, Technical Design, Interviewing, Task Analysis, Architecture, 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

Tools

IntelliJ IDEA, 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

Platforms

MacOS, Linux, Apache Kafka, Kubernetes, Amazon Web Services (AWS), Docker, Amazon EC2, AWS Lambda, AWS NLB, Mule ESB, Kajabi

Storage

XML Schema, Google Bigtable, Google Cloud Storage, Amazon S3 (AWS S3), Redis, Oracle9i, Elasticsearch, MySQL, JSON, PostgreSQL

2006 - 2010

Master's Degree in Computer Science

Indian Institute of Technology - Delhi, India

1996 - 2000

Bachelor's Degree in Computer Science

Mangalore University - Mangalore, India

MAY 2014 - PRESENT

Functional Programming Principles in Scala

Coursera

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring