This blog is an attempt to pay homage to the classic book “Zen and the art of motorcycle maintenance” by Robert M Pirsig.

Let me ponder over the ideas in the book in the context of problem-solving & writing code.

There are various layers and dimensions to the book, but one central theme that resonates throughout the book is the exploration of the question “what is quality?”

How do you measure the quality of a solution/code?

If quality is in the code, then it could be measured- But I don’t think you have an algorithm to which you can provide…

Every company want’s a good work culture, they look for help outside, but very few people look inside.

You cannot pick a culture from a catalog and decide to use it, a specific culture emerges out of a specific type of people.

For example, spotify model emerged out of a bunch of people at spotify, can it be copied by everyone? yes to some degree, but will it be the same culture?
not sure? checkout the the ship of thesus paradox.

Before embarking on a journey to improve the work culture in your organisation, you need a honest realisation of…

How I wish,

To be myself.

To talk life and death, not weather and sports.

To talk about my pains, not politics.

To talk about my sufferings, not holidays.


MVCC (multi-version concurrency control) is a concurrency control mechanism used to provide consistency and isolation attributes (as defined in ACID) for shared data.

The aim of this blog is to give a very high-level understanding of MVCC, without going too much into any specific implementation details.

Lock based concurrency control

When you have multiple concurrent processes (or transactions) operating on a set of shared data, one way to provide consistency & isolation is by using “locks”.

But locks are expensive because when a process locks the data set for reading/writing, all other processes wanting to get access to the same data set will be…

LSM tree is at the heart of most storage systems that provide high write throughput, be it a key-value storage like dynamodb/cassandra or a messaging system like pulsar which is backed by bookkeeper.

The various components of a typical LSM backed system are shown below.

The main reason why LSM provides high write throughput is that every write request is actually performed only “in-memory” in contrast to traditional B-Tree based implementation where the updates are done to disk which can trigger an update to an index making it very expensive.

So the obvious question is, how does LSM achieve durability…

Has society lost sanity?

The mind has taken over the spirit, the chase for materialistic fulfillment has risen above our true human nature.

how foolish it is to waste a life chasing ego gratification in the form of materialistic possessions and validations from others.

why is it that only a few in every generation truly seek within oneself?

why is it only few know that they are not their mind?

why is it only a few renounce everything outward and go on a dreadful journey within oneself?

the mind has taken over the spirit.

the chase for pleasure and success…

When everything is going well and one fine morning Mr Bob shows up with full of excitement, guess what? He learnt Scala and while learning Scala he also got acquainted with functional programming, now he thinks his brain is wired in a completely new way! he wants to use Scala on the project!

Although i felt happy that Bob learned functional programming, i was taken aback when he started rewriting java code in Scala. what is going on in his mind? is Scala the only way to write functional programming? is Scala even necessary to write functional code?

Well, I…

You must have heard about raft as an understandable consensus algorithm, In this blog i want to give a quick overview of how to use the go implementation of raft using a sample distributed calculator application

The calculator application is a service which exposes http endpoints to fetch the current state of the calculator, add and subtract a value to the current value/state

Two instances with raft

As illustrated in the above diagram, you need 5components on each instance to get raft working. Rraft is designed in such a way so that you could have your own implementation of any of these components



“The Tao that can be told is not the eternal Tao”

Okay! there you are, the wonder of this universe! Extremely conscious, self referencing being. I am glad I was able to get your attention amidst all those unfinished tasks and goals you have set for yourself. Don’t be surprised, it’s not that hard to predict it - don’t you see? Every conscious being in today’s world has goals and deadlines for himself, trying to win, trying to get rewarded. …

John Pradeep

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