Manchester United – EPL Manager Stats – Part 2

Overview Following up from Part 1 in this series, the focus of this post would be United manager performance against top 6 clubs in EPL. Manager Results against Top 6 If you consider the win + draw percentage for each manager against the top 6 clubs, you’d see that Van Gaal has delivered the best…More

Manchester United – EPL Manager Stats – Part 1

Overview As a football and a Manchester United fan, I decided to do some basic data analysis with the English Premier League (EPL) dataset. The Best EPL Manager for United United fans believe that Sir Alex Ferguson was the best manager for the club (and I agree). But how does he compare to managers who…More

Agent Forwarding with Paramiko

TL;DR In this post, I will walk through a challenge I faced with agent forwarding on paramiko and how I solved it. Background Before we get started, it would be a good idea to go through SSH Keys, Agents and Linux. This post requires a good understanding of agent forwarding to be able to grasp the…More

SSH Keys, Agents and Linux

TL;DR In this post, I will walk through SSH, SSH Agents and a few key Linux concepts around them. Terminologies Client – Any machine that wishes to connect to a remote system. Server – Any machine that accepts connection from a client. User – The user as which the client will connect to a server.…More

Timeouts and Retries

TL;DR In this post, I will walk through how to use timeouts and retries with Celery. The Code Refer this gist Code Walkthrough This part will cover some of the functions and their results Func: timeout_test This simple function shows how a timeout exception can be caught. Note that the timeout has been defined in…More

Playing with Chords – Celery

TL;DR In this post, I will walk through how to use “chord” structure in Celery. The Basics Chords is a complex workflow that is present in Celery. It is a combination of two things – Groups –¬†Groups are a way of combining several independent tasks so that they run in parallel. In a previous post,…More

Celery – Groups, Loops & Parallelism

TL;DR In the post, I am exploring a few questions I had with Celery and parallelism on it using groups and implementing the same feature using blocking for loop and non-blocking for loop. I decided to do these experiments based on certain optimization challenges on an application I am working on. The Question I have…More

To Optimize or Not To Optimize

TL;DR Oft times, coding is trying to find a balance between multiple parameters. Some good factors we measure code upon are – Performance Efficiency Speed Correctness Occasionally, we do miss out on factors such as – Readability Ease of Troubleshooting In this post, I will walk you through an interesting case I encountered while developing…More


I encountered a new scenario that I hadn’t in the past. The Problem I was trying to access Elasticsearch on a Linux VM and it wasn’t allowing me to connect to the port 9200. Check Ports and Processes I checked if the process was running and the correct ports were open – $ ps aux…More

Developer Sharing (Giving Back to the Community)

Lately, I have been thinking about how I can share my experiences with the developer community. I am certain a lot of us try to re-invent the learning wheel when we are trying to understand a system or tool that we want to use. In this post I want to cover how to do it…More