If you are reading this or came here to read some of my writings, Thank you! I have moved all of my posts from Medium to Substack and shall be writing new posts there. It comes with a sweet email subscription feature and doesn’t ask people to pay for reading stuff.

Click here 👉 sitaram.substack.com

Image for post
Image for post
Photo by Patrick Tomasso on Unsplash

Recently, at work, I was working on the reliability of background job processing. The nature of this process is to run every minute, spawn a bunch of parallel processing workers where each of these child workers writes a bunch of documents into a MongoDB collection. Now I needed to make sure all of the processing is happening smoothly and alert if there’s a considerable delay in the processing. We use ELK based monitoring with ElastAlert for alerting. So I decided to write a script that would poll the database collection, query the appropriate documents and send data to ELK. We would run this script with CRON every minute to make sure we are getting the current status of the system. …

This post is co-authored by Hricha Kabir, my colleague at Altizon Systems.

Image for post
Image for post
Photo by Robert V. Ruggiero on Unsplash

We work on an IoT product focusing on manufacturing industries and build analytics reports. Most of the time, report design and information vary based on the user’s role who is going to consume it.

Example: A Director level person is interested in a consolidated report of a week, whereas a Department Head is interested in the statistics of a single day and Quality Manager is keen about shift data. …

What is a Virtual Machine

Virtual Machine is a simulation of a computer system. When we talk about VMs in the context of languages, we are mostly talking about Process VMs. They are designed to enable us to execute a program in a platform independent environment.

One of the most popular Process VM is JVM. JVM allows developers using JDK to develop programs without worrying about the platform. A java program is first compiled into bytecode. Bytecode is nothing but special instructions which JVM interprets and executes. It also takes help of JIT to do faster execution but that’s a different topic.

What is RubyVM

Ruby VM also termed as YARV was introduced by Koichi Sasada[1] in 2004. It was developed as a Ruby C extension. It uses most of the existing ruby features such as GC, inline caching and Ruby Script parser. It was designed as an attempt to make ruby faster by using learnings for other languages like Java. Yet unlike JVM, no code is converted into machine code directly (JVM hotspots/JIT), instead, the Abstract Syntax Tree is compiled into YARV instructions, which can be interpreted faster. The Goal was to introduce new features such as JIT and AOT one step at a time. …

This post is about GopherconIn 17. I was lucky enough to attend it.


Event took place at Hyatt Regency on 24–25th Feb. The venue had good facilities and great food. It was closer from airport for speakers and attendees coming from out of Pune.


I met many people, all sharing same interests. Many of them had already been using Go at their workplaces, some were discovering opportunities to use it and a few, like me, playing with it for side projects. I had chance to learn new things from them, some of them had long working experience and it was great listening to them. A thing I noticed, most of the folks were from startups than the bigger organisations. …

Almost every person working in tech has heard about ReactJS by now. Some might even know Redux, Flux and something better. In this article I’ll be focusing on problems that I, as a beginner, faced with ReactJS and what I learned from them.

Since I learnt programming, I don’t know why, but I always tried to run away from javascript. Not because I hate it. but because I had (only) heard of a billion javascript frameworks, extensions, transpilers, package managers etc, which would stop me from knocking javascript’s door. Then I was first introduced to ReactJS at my workplace. At that time, I had a little (read as no) experience with any javascript. Yeah, I know Javascript is the key to the web development, (but hey, who are you to judge). …


I joined Altizon Systems in August and we have our backend primarily in Ruby on Rails. In the first week, I setup the environment and before directly going to rails framework I started looking for “Getting started with Ruby” guides. Soon I realised the popularity of ruby is not overrated. Ruby is a beautiful language indeed, also one other thing I liked is that, it has much similarity with python. Since my first two task of GSoC were in Python, I have had a pretty good hands on it.

These includes features like dynamic typing, exception handling, and object oriented nature. Ruby specifically enhances object orientated nature by allowing builtin method overriding and having syntax…

Wow! It feels so nostalgic while writing this down. A four year journey of my engineering at PICT has come to an end. A Journey that started with a question about ‘ How my college life would be? ’ ends with a question ‘ How will my life be after college? ’.

Though I may not be the only one like this, but it is certain that writing a post about my journey can makes it special for me. So here’s the part which I can remember fondly.

First Year: The one where it all started!

I still have few memories of my first day of academics at PICT. It was the first lecture and I sat besides a guy (and this guy turned out to be consistent topper in our department). Then, everybody introduced themselves and the lecture started. It was Maths lecture and everyone was listening keenly (I don’t know how engineers lose this skill in their 4 years). After this, other lectures went on and meanwhile everybody started making new friends. …

Recently I came across an interesting project named “Greennav”. It is an open source project which is trying to solve very interesting and much important problem in the real world which is Making transport energy efficient.
This post is an introduction to the project. The project is on github here.


Greennav stands for ‘Green Navigation’, is a system which aims to provide model specific driving instructions like economical and energy efficient routes for the electric cars. It was initiated at Technische Universität München and now being researched and maintained by René Schönfelder, a Ph.D student at University of Lübeck.
There are several routing paths available which mainly evaluate shortest distance or shortest time (based on traffic conditions) but energy usage of the vehicle has been a less valued factor in conventional routing services. Greennav is about focusing more at this factor to help to make world more sustainable. Also with its own energy optimal routing algorithm greennav wants to develop a modular frontend system such that various researcher can test their own routing algorithms on it. More than 50 students have contributed to this project till now.
Currently it has a limited database map of Bavaria in Germany and it runs a simple web interface. …

Few weeks back, then I was not aware of json support in PostgreSql so I was using HStore for storing non relational part of my database. How hstore is different than json is it is a simple key value store. To talk in terms of programming, simply a map having a string as a key and another string as a value.
This post is about how to use json in postgres and reading and writing it using golang with REST APIs.

Json in PostgreSql :

First login into your postgres project. Let’s create a simple table in postgresql :

create table student(id uuid primary key not null, Name varchar(20), data…


Sitaram Shelke

programmer and open source enthusiast | currently writing at 👉 sitaram.substack.com | sitaramshelke.me

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