Cassandra is a column oriented, NoSQL system designed to handle large amounts of data with relatively fast queries. Here at 1mg we use Cassandra for some of our database requirements. The major reason why Cassandra is quick is because it optimises the way the data is stored on the filesystem.

Partitioned to optimise querying

To use Cassandra in Python we utilise Datastax’s Cassandra ORM (Object-relational-mapping), which is a way to write queries using the paradigm of your preferred programming language (Python in our case).

Without an ORM we’d be writing raw queries that makes it difficult to write, re-use and model a table.


Previously the deployment process at Avanti was largely adhoc, with no streamlined simple “touch of a button” system.

New code was usually deployed in such a manner :

  • Tell load balancer to take down Server A, deploy new code on Server A (Server B handles all traffic).
  • Tell load balancer to take down Server B(while getting Server A up again) and deploy new code on Server B.

There were obvious downsides to such a process, for one it required us to limit deployments to only low traffic periods (usually late at night) and required a lot of manual interference with the load balancer & servers.

So, we decided to build a seamless deployment system that would achieve the following things:

  • Should trigger deployments with a simple “push of a button”
  • Should cause minimum downtime
  • Should be truly seamless (Absolutely no manual interference)

Recently I started interning at Avanti Learning Centres, an Indian startup focussing on providing interesting and lucid ways of learning. Think of Khan Academy, but focused towards the Indian audience.

One of my first tasks as an intern was to automate the backing up of their databases. I had to look at the problem broadly and list out the standard ways of taking database backups, and then choose a method that would work best.

Avanti uses mongodb and redis for their database & caching requirements. …

This is in no way going to be a comprehensive guide on how to get started with open source; its going to be more of a description of my journey.

This might help you if you’re a beginner struggling to make your way into open source.

My realisations/experiences in a chronological order :

Realisation #1 : If you’ve never contributed to a project before, its going to be extremely difficult to contribute to someone else’s code

I spent weeks trying to find a project that was interesting and easy to contribute to. Sure, I was able to find some issues and fix typos in documentation, but what I really wanted to do was contribute code.

Only after many weeks did the thought of building a project myself came to my…

If you use GitHub a lot, there’s a bunch of stuff that could help improve your experience. These include GitHub integrations, Chrome extensions and other tips and tricks.

I’ll be briefly explaining few of my favourite one’s, and then provide an exhaustive list.


OctoTree is a browser extension available on Chrome, Firefox, Opera and Safari to show a code tree on GitHub and GitLab.

It is very useful to me since it allows me to view the project source without having to clone every repository on my computer.

Octotree in action. Credits buunguyen

Github Hovercard

Github-Hovercard is another browser extension that displays a small box on links…

Lakshay Kalbhor

Student by day, developer by night.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store