Anantha Kumaran random thoughts

ananthakumaran@gmail.com
Bangalore, India.

Summary

Senior Full Stack Engineer with 14+ 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

Userflow
July 2024 — Present
remote

Working as a Principal Software Engineer for Userflow.

  • set up and maintain a self-hosted ClickHouse cluster and migrated over 6TB of data from PostgreSQL.
  • optimized infrastructure to reduce costs by over $16K per month.
  • redesigned the segmentation engine to leverage ClickHouse, enabling segment queries to be converted into a logical plan executable in ClickHouse, PostgreSQL, or a hybrid approach. This optimization allowed real-time queries by using PostgreSQL for recent data (last 1 day) and ClickHouse for historical data, reducing the need to store historical data in PostgreSQL.
Used several technologies including Phoenix, Websocket, ClickHouse, Redis, PostgreSQL, Oban, Kubernetes, Cloudflare, Prometheus, Elasticsearch, Pinecone.
Scripbox
May 2022 — June 2024
onsite

Worked 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.
  • external event integration with providers such as Amplitude and WebEngage was previously implemented independently across multiple services in an ad hoc manner. I unified the implementation, making it easier to integrate with new providers.
  • led the implementation of BSE direct fund offering.
Used several technologies including Rails, Phoenix, MySQL, Elasticsearch, Kafka, Redis, PostgreSQL, Exq, Kubernetes, Kong, Prometheus, Debezium.
Gojek
Oct 2019 — Apr 2022
remote

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
onsite

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
remote

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
remote

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
onsite

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
onsite

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