GauravAgarwal

I am a generalist software engineer who has worked across the stack and is equally comfortable with scaling up services as well as creating beautiful 2D and 3D visualizations.

I am a full stack developer, willing to get his hands dirty in order to get things moving. I don't believe in working in silos. I find it comforting to understand all layers of a stack.

I have worked closely with stakeholders for building scalable solutions while managing teams of developers.

Experience

Director of Engineering

Technical consulting for clients across the world & corporate training - Go, Rust, Cloud, C++, Java, React, Ruby, GraphQL, Javascript, Python, IoT, Swift, Kubernetes, IaC

Roll
Member of the core technical team. Led the backend and SRE team. Worked closely with stake holders to build and deploy new features. Performance optimizations at the DB and backend level on existing and new code being built. Moved from a manually managed infra to a IaC based solution while meeting SLAs to reduce downtime.
Key technologiesGoKubernetesHelmRDSTerraformElasticSearchDataDogVaultAWSORY HydraCircleCIGitHub ActionsTwilioOIDC

CB App, MantaSolutions
Building graphQL based APIs to power the frontend. Working closely with stakeholders for feature development. Managing and transforming the team to a agile process.
Key technologiesGoGraphQLApollo.jsPostgres

Trainings
Delivered world-class training on Go, Rust, C++, Docker, Kubernetes, Terraform, Cloud - AWS, GCP & Azure, Ruby, Python, Java, Cilium, and more for multiple clients all over Asia, America, Europe, Africa & Australia.

Products
Building SaaS products in the space of near-realtime monitoring, data ingestion and content publishing.

August 2020 - Present

Founder & Principal Consultant

Technical consulting for clients across the world & corporate training - Go, Java, React, Ruby, GraphQL, Javascript, Python, IoT, Swift

Roll
Member of the core technical team. Led the re-architecture of infrastructure and moving away from Heroku to AWS. Re-designed the existing application to be cloud-native running on AWS managed Kubernetes service. Setting up monitoring systems using EFK stack. Building and deploying new features. Integrating an oauth 2 server implementation to allow third-party developers to interact and build on top of our backend APIs.
Key technologiesGoKubernetesHelmRDSTerraformElastic SearchAWSORY HydraCircleCITwilio

Digisense, Autosense
Building a data processing pipeline to ingest 10K packets/s from Pubsub into Google BigQuery and Google BigTable. Designed and architected the pipeline on GCP using Dataflow, which is built on top of Apache Beam. Designing the codebase easy to configure and scale.
Key technologiesJavaApache BeamCloud DataFlowGoogle BigQueryGoogle BigTableGsonGoogle Pubsub

Oshi
Building a world-class react app to help patients record their own health metrics and keep a track of their diets and routine. Designed, built and iterated over several features of the app
Key technologiesReactReduxCordovaSVG

Trainings
Delivered world-class training on Go, Docker, Kubernetes, Ruby, Python & Java for multiple clients across India, US & Singapore.

April 2018 - Present

Lead Technical Consultant

Working across multiple domains from teleinformatics to mining to enterprise asset management to manufacturing. Leading a team of developers to deliver consistently and working closely with clients and their development teams to ensure timely delivery. Working across the stack - including hardware, mobile and web apps. Solving hard technical problems in a fast-changing landscape.

HRIS, Auzmor
Mentoring and leading a team on TypeScript/React. Designing the Web app from the ground up to be bug-free and scalable code-wise. Building entire backend using Ruby on Rails. Architecting deployment on GCP using Docker containers onto a Kubernetes cluster.
Key technologiesRuby on RailsReact.jsReduxGCPKubernetesDocker

Datacloud
Using OpenCV to stitch images taken inside of a mine. Consuming sensor data and visualizing the regions where the ores are concentrated. Creating, running and managing containers using Docker on Azure instances. Designed and built apps using Vue.js and 3D visualisations using VTK.js. Built ReSTful APIs using Go programming language.
Key technologiesVue.jsDockerAzureGoOpenCVPythonClickHouseVTK.jsSinatraRedis

Fankave
Building React.js based visualisations using live data from API. Designed and iterated on 2D visualisations using D3.js and pure SVG components.
Key technologiesReact.jsD3.jsSVGAWS

Smart Crib
Leading the IoT-based proof of concept product. Designed circuits using KiCAD, interfaced with MFRC-522 nfc reader & ble bluetooth devices using python. Built a self-updating dashboard using Node.js running on Raspberry Pi.
Key technologiesPythonRaspberry PiBLE BluetoothMFRC-522Node.jsBash

EAM360 Application
Leading the iOS team using Swift programming language. Ensured the mobile app is offline accessible. Setting up the CI/CD pipelines using Fastlane, Jenkins and CircleCI for both Android and iOS. Built FaaS apps using Go, deployed on AWS lambda using serverless.js.
Key technologiesSwiftiOS 11+CoreDataGCD and dispatch queuesFastlaneJenkinsCircleCIGoserverless.jsAndroid

October 2016 - October 2018

Lead Technical Developer

Zephyr, Mod.us
Been a part of this long running project since the beginning. Later went on to lead a remote distributed team. Built realtime apps using websockets, React.js. Used immstruct and immutable.js for state management. Used RxJS to reduce thrashing and jank in the app. Built interactive visualisations using Google maps and SVG + React.js based components.
Key technologiesReact.jsElixirRxJSSVGImmutable / ImmstructWebpack

Betting LeadIn
Worked on building a app using Elm on the frontend and used Elixir and Phoenix for the backend. Built concurrent and fault-tolerant scrapers using elixir and OTP framework.
Key technologiesElixirPhoenixErlang OTPElm

November 2015 - September 2016

Senior Technical Consultant

DMP, Mod.us
Developing new features on their existing vehicle tracking system built using Ruby on Rails. Optimised and tuned their postgreSQL workload and queries.
Key technologiesRuby on RailsPostgres

Lifelogger
Built interactive app using Elm. This was a highly interactive 3D visual app using reddit API as proof of concept. Deployed on heroku.
Key technologiesElmHeroku

December 2014 - November 2015

Software Engineer

Managing internal servers to the satisfaction of internal stake holders. Analyzing and cleaning up billing data. Building dashboards for internal metrics. Stabilizing systems dealing with payments and another system which was a customer-facing near real-time dashboard for automation logs.

Automate
I have been the main rails developer on the Automate team, which is the product which allows you to run Selenium/JS Tests across multiple Browsers/OS combination. Here I have been working hard to stabilise their application, over the course of 2 months.
Key technologiesRuby on RailsNode.jsSelenium WebdriverSphinxMySQLJavascriptjQuery

Infrastructure
Managing their internal test environments using a combination of capistrano, bash and adhoc scripts. Error recovery and ran diagnostics to bring failing systems up and running.
Key technologiesAWSCapistranoBashNagiosNewrelic

Zombie
Developing an internal usage dashboard, for understanding usage patterns across multiple metrics and dimensions. Fast iteration and feedback cycle. Designed the raw SQL queries and built a custom query builder to run on MySQL
Key technologiesRuby on RailsjQueryTwitter BootstrapMySQL

September 2013 - October 2014

Consultant

Worked with Senior Developers - practising agile, TDD, pair programming and extreme programming methodologies. Learnt a lot of coding techniques, including refactoring and writing clean readable code. Built an extensive set of visualizations, including maps based ones, to chart sales distribution across a country.

May 2012 - September 2013

Education

Anna University, Chennai

Bachelor of Technology
Information Technology

CGPA: 7.71

September 2008 - March 2012

Doveton Matriculation Higher Secondary School

State Board
Physics, Chemistry, Maths and Computer Science

Marks: 934

May 2006 - March 2008

Skills

Programming Languages
  • GoGo
  • RustRust
  • ElixirElixir
  • RubyRuby
  • ErlangErlang
  • JavaScriptJavaScript
  • PythonPython
  • HTML5HTML5
  • CSS3CSS3
  • BashBash
  • SwiftSwift
  • ElmElm
  • TypeScriptTypeScript
  • JavaJava
Tools & Frameworks
  • GorillaGorilla
  • RailsRails
  • SinatraSinatra
  • PhoenixPhoenix
  • ReactReact
  • VueVue
  • LodashLodash
  • BootstrapBootstrap
  • WebpackWebpack
  • BabelBabel
  • Node.jsNode.js
  • LessLess
  • SASSSASS
  • D3.jsD3.js
  • VTK.jsVTK.js
Infrastructure & Data
  • KafkaKafka
  • PostgresPostgres
  • MySQLMySQL
  • RedisRedis
  • SqliteSqlite
  • Apache BeamApache Beam
  • DockerDocker
  • KubernetesKubernetes
  • NginxNginx
  • GitGit
  • FastlaneFastlane
  • CircleCICircleCI
  • JenkinsJenkins
  • TerraformTerraform
  • ElasticsearchElasticsearch
  • FluentdFluentd
  • KibanaKibana
Platforms
  • LinuxLinux
  • DebianDebian
  • Raspberry PiRaspberry Pi
  • UbuntuUbuntu
  • iOSiOS
  • AWSAWS
  • Google Cloud PlatformGoogle Cloud Platform
  • AzureAzure
  • HerokuHeroku
  • Digital OceanDigital Ocean
Workflow
  • Fault tolerant & resilient architecture
  • Distributed micro-service architecture
  • Mobile-First, Responsive Design
  • Cross Browser Testing & Debugging
  • Agile Development & Scrum
  • Rapid Prototyping & Early feedback

Talks

Interests

Apart from being a developer, I enjoy most of my time being outdoors. I like playing Table Tennis, Chess, Beach Volleyball and Soccer. Swimming is my favorite thing to do in summer.

Indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring musician, and I spend a large amount of my free time exploring the latest technology advancements in the development world.