GauravAgarwal

I am a generalist software engineer who has worked across the stack and is equally comfortable with managing and keeping services up and running, 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.

Currently, I am working on life's grand plans...

Experience

Founder & Principal Consultant

Technical consulting for clients across the world & corporate training - Go, React.js, Ruby on Rails, GraphQL, Javascript, Python, IoT.

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

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
Leading a team of developers. Building entire backend using Ruby on Rails and frontend using React.js, deployed on GCP using Docker containers on Kubernetes cluster.
Key technologiesRuby on RailsReact.jsReduxGCPKubernetes

Datacloud
Worked with OpenCV to do image stitching. 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
  • Ruby
  • JavaScript
  • Go
  • Python
  • HTML5
  • CSS3
  • Bash
  • Swift
  • Elm
  • Elixir
  • TypeScript
  • Java
Tools & Frameworks
  • Rails
  • Sinatra
  • Phoenix
  • Gorilla
  • React
  • Vue
  • Lodash
  • Bootstrap
  • Webpack
  • Babel
  • Node.js
  • Less
  • SASS
  • D3.js
  • VTK.js
Infrastructure & Database
  • Postgres
  • MySQL
  • Redis
  • Sqlite
  • Docker
  • Kubernetes
  • Nginx
  • Git
  • Fastlane
  • CircleCI
  • Jenkins
Platforms
  • Linux
  • Debian
  • Raspberry Pi
  • Ubuntu
  • iOS
  • AWS
  • Google Cloud Platform
  • Heroku
  • Digital 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.