Work

Talks

Pragmatic DevOps

May 10, 2022
"Universal law is for lackeys. Context is for kings." The best practices are the ones that make sense for you. Embracing DevOps culture is not a binary decision. This thinking often leads to inaction. Should we use distributed tracing? Should there be 100% unit test coverage? Should we use Infrastructure-As-Code?

Continuously Deploying A Distributed Monolith

Nov 19, 2021
Microservices are not easy. We start with hopes of independent scaling, better resource utilisation, independent teams working on individual services. But if not carefully handled, we often end up (sometimes not even realising) with a complex distributed monolith that requires complex and error prone orchestration everyday, eventually slowing us down

Think Again Before Migrating To Kubernetes

Oct 7, 2021
Kubernetes has really gained mindshare with technology teams. There is a strong interest and desire in teams to migrate to Kubernetes and other new tech in the cloud-native ecosystem. However the journey to migrate to a cloud-native stack is complex and long and has a lot of hidden costs. A

Understanding Non-Blocking I/O

July 21, 2015
As an engineer working on any web stack, you may have heard about Blocking and Non-Blocking IO. You may as well have used any framework or library that supports Non-Blocking IO. After all, they are very useful as you don’t want to block execution of other tasks while one

Projects

legend - declarative Grafana dashboards for your services with best practices

Legend builds and publishes Grafana dashboards for your services with prefilled metrics and alerts for your services. Say you got an EC2 to monitor, an S3 to monitor, a Kubernetes cronjob to monitor (or one of many other things); legend has got your back. It will do all the menial

redux-cookies-middleware - syncs Redux store state with cookies

redux-cookies-middleware is a Redux middleware which watches for changes in Redux state & stores them in browser cookie.

markdown-toc-generator

Builds Table of Contents for a markdown file.

sherlock - easy distributed locks for Python with a choice of backendsSherlock

When you are working with resources which are accessed by multiple services or distributed services, more than often you need some kind of locking mechanism to make it possible to access some resources at a time. Distributed Locks or Mutexes can help you with this. Sherlock provides the exact same

commentjson - JavaScript and Python style comments in JSON

commentjson (Comment JSON) is a Python package that helps you create JSON files with Python and JavaScript style inline comments. Its API is very similar to the Python standard library's json module.