Ketan Bhatt

Archive Notes

Learnings from building search experiences at Intercom

January 25, 2024 programming

Hello. Thanks for arriving at this page, even though there is no mention of LLMs and ChatGPT here. I spent my last two years in Intercom working with the Core Technologies team, with Elasticsearch being the core technology I focussed on. As part of my work, I got to build and…

Race Conditions/Concurrency Defects in Databases: A Catalogue

July 03, 2020 programming

I came across defects caused by race conditions that might occur when we work with databases, while reading Designing Data-Intensive Applications (DDIA), by Martin Kleppmann. It turns out that if we aren’t careful, concurrent transactions can cause a lot of headaches, to say the…

Get your code reviewed by Martin Fowler, kinda

June 30, 2020 programming

I picked up Refactoring, by Martin Fowler, and I am learning a lot. The book is written like a catalogue that you can refer back to later. And, for those who are seeking, the book is an excellent chance to get your code reviewed by Martin Fowler!! 😮 Martin starts the book with…

Avoid breaking habits with help from Economics

May 29, 2019 self-improvement

Recently, while reading “How Will You Measure Your Life?”, I came across the concept of Marginal Thinking and I thought that it could be used as a mental model for motivating people who struggle with building new habits (like this guy I know, me). Aside: I highly recommend…

Why do we make irrational decisions?

January 15, 2019 self-improvement

We often get surprised by the decisions taken by those around us. “But how could you not see that this whole Bitcoin thing was a bubble?”, or “how can you pass on that job opportunity?”, or “did you not know that there are more parts that need to be built here, and so this…

On taking feedback well

December 10, 2018 self-improvement

A colleague and I were discussing how it is difficult to take critical feedback well. The conversation was textual and I ended up writing a lot of thoughts. In a bid to save my keystrokes from dying, I thought I will pen down my thoughts here so that I can share them with peeps…

Deep Work, by Cal Newport

October 14, 2018 productivity

I have always been interested in how to do more meaningful work, and get better and better at what I do. This quest sees me read content which is sometimes technical in nature and sometimes talks about how to be a better leader [1, 2]. Sometimes I go a little meta and read about…

Don’t be the Alpha Geek: Your team deserves better

August 12, 2018 self-improvement

Alpha Geek? I recently came across the term “Alpha Geek” in “The Manager’s Path”. The Alpha geek is usually an excellent, effective engineer who is driven to always have the right answers, and solve hard problems. Alrighty! I want to be one! Where do I sign up? He knows exactly…

How I stopped being awful at managing: Leadership lessons from a Dev

May 06, 2018 management

At Squad, we have been following the concept of having small inter-disciplinary teams, which we call Solver Teams (the concept is beautifully explained by Spotify, we took a lot of inspiration from them). As fate would have it, I got to lead a team responsible for building the…

Two years with Celery in Production: Bug Fix Edition

December 17, 2017 programming

Photo by Martin Oslic on Unsplash Update 6th Mar, 2022: My friend and colleague Ayush Shanker recently published a follow-up post for most of the problems mentioned in this article. I recommend going through that post as well (or maybe just that post): ”Celery in production…

Blazingly fast querying on huge tables by avoiding joins

May 14, 2017 programming

Tl;dr: Avoid joins on large tables and evaluate parts of queries beforehand to get 100–10,000x performance gains! As mentioned in a previous post, because of some of our tables growing in size, our queries started performing poorly which resulted in a performance hit to our most…