One of my most frequently used websites was typehere.co which did something very simple. It was a blank canvas where I could type stuff, and it would store the contents locally. I mostly used it as a scratch-pad for quickly taking down notes or typing something while explaining. I’ve used it for the better part of a decade. In Oct 2023, the site... Read more 18 Nov 2023 - 1 minute read
I’ve worked on a wide range of software projects: ML stuff, databases, search engines, rendering engines, web servers. Most of which involved writing code that was performant. I’ve learnt a bunch of tricks from each domain that I think can be applied broadly, and this blog explains some of them. First construct, then optimize Construct the d... Read more 27 Oct 2023 - 5 minute read
I’m a professional coder, and so like all good coders™, I spend a non-trivial number of hours working each week on side-projects. The projects’ range is pretty wide, from low-level RPC stuff to machine learning and rendering engines. Right now, I’m working on several projects that might never see the light-of-day. The most significant among them... Read more 05 Sep 2020 - 4 minute read
I recently spent an entire month’s paycheck on a new PC. Before jumping into it, I wanted to revisit my PC history from the beginning. The primary use cases for all my PCs have remained consistent over the years: gaming and coding. Prologue: Xerox Shop PCs My family didn’t have a personal computer until I was in fourth grade (2007). Before ... Read more 03 Jun 2020 - 11 minute read
While profiling Shadesmar a couple of weeks ago, I noticed that for large binary unserialized messages (>512kB) most of the execution time is spent doing copying the message (using memcpy) between process memory to shared memory and back. I had a few hours to kill last weekend, and I tried to implement a faster way to do memory copies. Au... Read more 24 May 2020 - 11 minute read
Yesterday was my last day as a maintainer of TensorFlow Addons. One of my first and last commits were adding and removing myself as a code owner respectively. June 16th 2019 to 17th May 2020. It was a good eleven months. I’ve read many blog posts about other maintainers quitting due to a toxic, ungrateful community. Fortunately, that is not ... Read more 17 May 2020 - 1 minute read
Jan 2020 Update: This lock does not work. Please don’t use it. I’m currently trying to fix it. Check out the previous post instead, which as of right now seems to work as intended. In the words of Linux Torvals: “Because you should never ever think that you’re clever enough to write your own locking routines.. Because the likelihood is that ... Read more 02 Dec 2019 - 3 minute read
Interprocess message passing is an important tool, especially when developing large complex systems like robots. ROS is commonly used for pretty much every small/medium scale robot, and it’s no different at Project MANAS where we were using ROS across the board. ROS uses a publish-subscribe paradigm for communicating between messages, and intern... Read more 10 Oct 2019 - 12 minute read
I’ve recently spent a lot more time contributing to open source software. One of the major projects is TensorFlow Addons, which a SIG that basically replaces the old tf.contrib for TensorFlow 2. I was fortunate enough to be made a maintainer of the project. We recently released this blog which talks about Addons in details. Read more 11 Aug 2019 - less than 1 minute read
I was working with C++ to build a replacement for Costmap ROS to use in a driverless car, since Costmap ROS is targeted towards smaller autonomous bots. To this end, the current plan is to make it work in real time, and include some more functionality (like bayesian updates). In my implementation, the costmap is split into two parts: Costmap, w... Read more 14 Jun 2019 - 8 minute read