My main role is to develop the new backend for our web application which originally written in Java and PostgreSQL.
- Distributed system consisting of multiple nodes for the web server written in Clojure, ElasticSearch and Cassandra.
- Performed DevOps duty - this includes built a metrics dashboard using Grafana and Graphite for monitoring and Ansible for deployment
- Implemented API in REST architecture including various complex business rules
- Implemented queue to communicate with other system
- Fixes various bugs and memory leak issues with the help of VisualVM and Mission Control
- Introduced various optimizations:
- Optimized inefficient query that can yield up to 150x improvements for certain case (5s to 30ms)
- Performed data migration that improved Data Ops workflow. This brings over 33x improvements (from manually creating 1000 reports to 30 reports monthly)
- Caching query that brings over 2x improvements and also prevents cache stampede issue
- Component-based code using Stuart Sierra’s Component framework for dependency injection
- Work on our front end webapp using Ember.js
Other things that I've done:
- Implemented queue system to avoid bombarding our reporting system with new report requests
- Created and open sourced Kani, a Clojure-based application for Cassandra backup that works with Unicode
- Worked together with the marketing team to develop our main mobile-first responsive website using a CMS system, Bootstrap and jQuery