Anantha Kumaran random thoughts

ananthakumaran@gmail.com
Bangalore, India.

Summary

Senior Full Stack Engineer with 13+ years of experience. I have built complex web frontends, high throughput API backends and job processing systems. Nowadays, I mostly play the solver role.

Work Experience

Scripbox
May 2022 — Present

Working as a Lead Software Engineer for Scripbox.

  • helped setup a standardized observability system that encompasses metrics, logs, and traces for all applications.
  • implemented event logs using Kafka and Debezium, guaranteeing the transactional integrity of the published messages.
Gojek
Oct 2019 — Apr 2022

Worked as a Senior Software Engineer for the merchant platform division of Gojek.

  • helped build the system which handles communication with external parties like KFC, McDonald, Bluebird, etc
  • designed and implemented the initial version of shuffle card service for Gobiz Mobile App
  • helped rewrite a critical high throughput service in Elixir
  • written plugins for background job processing system to handle new use cases
  • was involved in the implementation of various authentication and authorization related features
Some of the libraries — namely exq_limit and exq_batch — are open-source. Used several technologies including Rails, MySQL, Elasticsearch, Kafka, Redis, BigQuery, Exq, Kubernetes.
ActiveSphere
Feb 2012 — Sep 2019

ActiveSphere was a boutique software consulting company with 10 to 15 engineers. We got acqui-hired by one of our clients, Gojek. Some of the client projects I have worked on include

Midtrans
May 2016 — Sep 2019

Midtrans is a leading payment gateway in Indonesia.

  • was part of the team which develops the snap product, an embeddable payment form
  • helped them migrate their notification system to Elixir stack to improve throughput and resource consumption
  • built the initial version of centralized auth server based on oauth protocol
  • built a streaming report generation system that could export hundreds of thousands of rows of data in xlsx and csv format while maintaining constant memory overhead
  • helped with establishing a pattern for kafka consumers. There are now 10s of consumers processing millions of events per day. Built a system to selectively reprocess historical events.
  • helped with decoupling services which were directly accessing each other's databases
Some of the libraries — namely redix_sentinel, barlix, xml_stream and zstream — are open-source. Used several technologies including Rails, React, MySQL, Elasticsearch, Kafka, Redis, BigQuery, Exq, Kubernetes, Gitlab CI.

EnerNOC
Apr 2013 — Apr 2016

I was a core member of the team that developed Energy Manager, a web app used by professionals to visualize and understand energy usage. I have touched many parts of the system. My main contribution includes writing and improving various charts like load profile, consumption, heatmap etc using D3. I have also written an automated test system to generate charts for various combinations of state and compare their screenshots with previous versions to catch regression and a library named μ to compress url parameters. Used several technologies including Node.js, D3, AngularJS, Knockout.js, Redis.

Bitstat
Jan 2011 — Jan 2012

Developed and deployed a web based business process management system. Used several technologies including NGINX, Unicorn, Rails, Solr, MySQL, Amazon EC2, Amazon SES, qpsmtpd, Redis, OAuth, Capistrano. Authored a WYSIWYG Form Editor similar to wufoo.com.

Artha42
Jul 2010 — Dec 2010

Worked with a team that developed and deployed a personal health record management system. Used several technologies including MongoDB, Sinatra, NGINX, Thin, Beanstalk

Proficiency

Experienced - Elixir, Ruby, JavaScript, TypeScript, Emacs Lisp.
Knowledgeable - Clojure, C, Erlang, Shell script, Go, Java.

Selected Open Source Projects

NEato - Nintendo emulator written in go.

Memcachex - Memcached client for Elixir.

Tide - TypeScript Interactive Development Environment for Emacs.

Fake Dynamo - Amazon Dynamodb emulator.

Webify - webfont generator which can convert ttf to woff, eot and svg.

μ - μ is a JavaScript library for encoding/decoding state in URL.

FDB - FoundationDB client for Elixir.

Education

B.E Computer Science (2006 — 2010).
Karunya University, Coimbatore. CGPA 8.1/10.

Links

code - https://github.com/ananthakumaran
reading list - https://ananthakumaran.in/books
visualizations - https://ananthakumaran.in/visualization