• Bloom Filters

    A Bloom Filter is a Probabilistic Data Structure. The Filter responds to exits(str) with 100% certainty if str is not present. A true response from exists(str) only indicates a probability of str being present, and could be a false positive.

    Bloom filters are used to efficiently and accurately check the absence of a value. Typical examples can be blacklist of domains, checks for a username availability for registration, or whether to look for data in cache depending on the key, etc.

    Since Bloom Filters use arrays of bits, they are space efficient, and the get/set operations do not require any scans or searches, making them compute efficient as well.

    Having used them at IGN to quickly respond to is the username available on the registration form, I recently ran into them again for a hobby project.

    Read on →

  • Up and running with Aurora Serverless

    Amazon RDS is a fully managed Relational Database Service on AWS. Amazon Aurora is a MySQL and Postgres compatible database with much better performance at scale due to the enhancements and rewriting AWS has put in. For more context on Aurora, here is my earlier post.

    Aurora RDS has several practical configurations applicable to pretty much all production workloads (Multi region, Multi-flavored read replicas FTW!). The ones I like the most are Aurora Global Database, and Aurora Serverless.

    Imagine a fully managed database in the cloud that needs minimal upfront setup, scales on demand, and saves $$ by pausing when not in use. In a nutshell, thats exactly what Aurora Serverless is.

    In this post I will talk about the fundamental concepts, use cases, setting up a cluster, taking it for a spin, and tips/gotchas.

    Read on →

  • Docker Socket File for IPC

    While setting up a Consul cluster, I decided to dig a bit deeper into the whole /var/run/docker.sock phenomenon. While it is fairly common that a lot of Service Meshes like Consul, and System Monitoring Services like Newrelic and DataDog ask to mount /var/run/docker.sock, I must admit I’ve always been curious about this particular socket (vs. taking the mount step for granted). These are my notes from calling Docker Server by curl-ing the socket.

    Read on →

  • Feature Flags and Toggles

    Slides from my tech talk at Marqeta.

    Read on →

  • Managing Multiple AWS Credentials

    Simple script to manage multiple AWS credentials when using the CLI or SDKs.

    Read on →