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