Gaurav Tyagi, Back-end Developer in London, United Kingdom
Gaurav Tyagi

Back-end Developer in London, United Kingdom

Member since November 14, 2017
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.
Gaurav is now available for hire

Portfolio

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

Experience

Location

London, United Kingdom

Availability

Part-time

Preferred Environment

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.

Employment

  • Senior Java 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 responsible 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, AWS, Vert.x, Project Reactor, Spring WebFlux, Microservices, Kubernetes, Spring Boot
  • Senior Java Developer

    2021 - 2021
    Growthday
    • Developed modules for marketing and interfaced 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, AWS EC2, Web Application Firewall (WAF), REST, JSON
  • Senior Developer

    2021 - 2021
    Tesco
    • Developed an app that ensured that 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 a different functionality.
    • Constructed printer drivers for any new printers that are onboarded for the tills program.
    • 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
  • Senior Developer

    2020 - 2021
    Sky UK
    • Developed and maintained an application that helps customers buy passes on NOWTV website. This involved integration with 13 different downstream systems that use REST APIs. This involved 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 also manage retries and rescheduling of unprocessed messages using custom-built solutions.
    • Performed nonfunctional testing using Gatling to ensure that application endpoints provided response within their SLA. This sometimes involved profiling to ensure memory and CPU are utilized appropriately.
    Technologies: Java, Go, Spring Boot, Dropwizard, Apache Kafka, Kubernetes, AWS, Prometheus, Grafana, Gatling Load Testing, Apache Cassandra, Scrum, Hystrix, Jira, MacOS, Linux, Low-latency Software, CI/CD Pipelines, Integration, AWS ECS, AWS EC2, AWS S3, AWS 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
  • Senior Developer

    2020 - 2020
    Love Holidays
    • Developed an app in Go to download emails from the external email server and process them and store them into Google Cloud storage. Used Google Cloud functions to transfer data from cloud storage into Bigtable for internal data analysis.
    • Worked as part of the holiday booking team to maintain a Java app that helps customers to 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
  • 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.
    • Used Kafka to publish and consume messages to and from disparate downstream systems. This was built using the Akka actor model and Akka persistence.
    • Organized biweekly developer meets 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, AWS, Gatling Load Testing, AWS ECS, AWS EC2, AWS S3, AWS 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
  • 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 AWS AMI with the aim of achieving 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, AWS, AWS ECS, AWS EC2, AWS S3, AWS Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, JAX-RS, Test-driven Development (TDD), Functional Programming, Back-end, DevOps, Microservices, Distributed Systems, Algorithms
  • 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 made use of 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 App Dynamics.
    • Composed CI pipeline scripts to work on AWS and Sky's own private cloud.
    Technologies: Java, JAX-RS, Dropwizard, Hystrix, ELK (Elastic Stack), AppDynamics, Apache Cassandra, Low-latency Software, CI/CD Pipelines, Integration, AWS, Gatling Load Testing, AWS ECS, AWS EC2, 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
  • 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 for the orchestration of 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
  • Application Architect

    2012 - 2014
    Monitise
    • Worked as an application architect and was involved with performance testing the platform and profiling (using JProfiler) the application to detect any bottlenecks and fixing them.
    • Led the development, as a TA, of Common Platform Registration, which is a common OSGi component used by all other accounts. The REST implementation was migrated to Apache CXF, which was deployed in Fuse ESB with JPA entities backed by MySQL.
    • Created low-level designs and ensure 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
  • 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 the flow of data 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 which is a portable, self-documenting software tool that helps health plan business experts roll out new products and support business changes quickly without programming.
    • Created routes and mappings over an integration broker (IBM Enterprise Service Bus).
    Technologies: Java, XSL, XML, JUnit, XML Schema, SOAP, IBM MQ, Enterprise Service Bus (ESB), JBoss Drools, 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 5.x and 6.x.
    • Built a framework that automated testing of the application server over different systems using a batch scheduler.
    • Created an interface for a custom-built comm server that could convert data over an SNP protocol to a TCP protocol.
    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 JP Morgan Chase to deploy the GSTPA application that supported T+1 settlement.
    • Built a disaster recovery system using IBM MQ Series 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

Experience

  • 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
    https://github.com/Tyagi-Gaurav/OCache

    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.

Skills

  • Languages

    Java, Go, XSL, XML, Scala, C, Java 8, Java 11
  • Frameworks

    JUnit, Spring Boot, Dropwizard, Akka, Apache Camel, OSGi, Vert.x
  • Libraries/APIs

    REST APIs, Hystrix, JAX-RS
  • Tools

    JBoss Drools, IntelliJ, Grafana, GitHub, Git, Slack, Gatling Load Testing, Splunk, Google Compute Engine (GCE), Helm, AWS ECS, Ansible, Terraform, Jira, AWS CloudFormation, ELK (Elastic Stack), AppDynamics, JProfiler, IBM MQ, MongoDB Atlas
  • 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, Cloud, CI/CD Pipelines, Integration, Low-latency Software, AWS, Prometheus, Apache Cassandra, Low Latency, Algorithms, Code Review, Technical Hiring, Technical Design, Interviewing, Task Analysis, Micronaut, Printer Drivers, Google Cloud Functions, AWS Route 53, Google BigQuery, WebSphere Application Server, Enterprise Service Bus (ESB), Akka HTTP, JBoss Fuse, Enterprise Java Beans (EJB), Trading, Web Application Firewall (WAF), Project Reactor, Spring WebFlux
  • Platforms

    MacOS, Linux, Apache Kafka, Kubernetes, AWS EC2, AWS Lambda, AWS NLB, Mule ESB
  • Storage

    XML Schema, Google Bigtable, Google Cloud Storage, AWS S3, Redis, Oracle9i, Elasticsearch, MySQL, JSON

Education

  • Master's Degree in Computer Science
    2006 - 2010
    Indian Institute of Technology - Delhi, India
  • Bachelor's Degree in Computer Science
    1996 - 2000
    Mangalore University - Mangalore, India

Certifications

  • Functional Programming Principles in Scala
    MAY 2014 - PRESENT
    Coursera

To view more profiles

Join Toptal
Share it with others