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
This was the documentation for a project I completed as part of my compilers class. It’s a language to define neural networks, which is then optimized and compiled into efficient executable C++ code. The code of the compiler needs some refining, and will be released shortly. Also, note that the entire project was completed in around 48 hours, so... Read more 05 Apr 2019 - 4 minute read
In Reinforcement learning, most of the training time is spent in collecting experience from your environments(real life robots, simulators), and very little time is spent on the actual learning part on the GPU. So if we want fast RL training, we need to build fast environments. Due to its ubiquitous usage in RL and easy-to-use API, I’ll be stic... Read more 14 Jul 2018 - 9 minute read