Hi there đź‘‹! Welcome to my website!

I am a Software Engineer, with a special interest in working with Backend Technologies like Java. Here, I document some things that I learn, and find interesting. You can learn more about what I do on the About page!
The White Tiger

The White Tiger, by Aravind Adiga - A Review

It was around 2007-08, when it made the headlines. By it, I mean “Harry Potter and the Deathly Hallows”, of course. What did you think? I would not care much if The White Tiger by Aravind Adiga won an award or not. Honestly. I pestered my Dad about the book, Harry Potter, of course - and it’d take some time to come by my hands. There was barely any library in my vicinity, except my school’s, and I surely knew that new releases would never come in. ...

July 15, 2025 Â· 7 min
The Bhagavad Gita for Millennials

The Bhagavad Gita for Millennials, by Bibek Debroy - A Review

If your first thought about me after seeing the title is - “How old are you?” - I’ll not be surprised. This is because you’ll not be the first person to comment a similar thought. ...

March 16, 2025 Â· 5 min

Mastering ExecutorService Shutdown: Tracking ThreadPool Termination

Let’s say you want to execute some tasks. Since executing it through a single thread might take you quite some time to get the result, you decide to use the ever dependable ExecutorService to process it through multiple threads. ...

January 4, 2025 Â· 4 min
Devi for Millennials

Devi for Millennials, by Bibek Debroy - A Review

I went into reading this book with high expectations, and I was… disappointed? But that’s probably on me. I wanted something which inspires me to explore the rich Indian culture that I know only sparsely about, at the same time holding my hand over the things I don’t know. It does do the former very well, but the latter, not so much. A lot of questions are answered, but it raises even more questions the more you read. ...

December 25, 2024 Â· 5 min
SSH Tunneling diagram

SSH Tunnelling with Java

You heave a sigh of relief, as the QA has approved a long-awaited feature for deployment on Prod. However, as a part of the process, it is first deployed on the UAT env, where there are test accounts that can be used to certify the feature works outside of the local developer and QA testing systems. ...

September 21, 2024 Â· 4 min

Handling limited sudo access through Ansible

Running specific commands with sudo using Ansible It seems a trivial use case, but it’s not. Consider a situation when you’re not the user allowed a full sudo access on the remote machine. However, you are only allowed the sudo access on certain commands, which, of course, requires a password. For example, starting or stopping a service. ...

March 29, 2024 Â· 2 min

Stupid Patterns

We know about companies using Dark Patterns (more on this post by TechCrunch: WTF is dark pattern design?), and how they affect users. But can there be something like a “Stupid Pattern”? A thing that most companies do, and they don’t even realize it’s stupid? This blog post is a part real-life case study, and a major rant about one such pattern that is almost definitely, very stupid. ...

December 31, 2021 Â· 9 min

Dynamic Enums

But can one even make Enums dynamic? Enums, by definition, are static. They are used to “predefine” constants. I’ll let the official Oracle Java Tutorial on Enums to help explain the definition. ...

July 3, 2021 Â· 17 min

The Java Constants Interface Anti-Pattern

How do you define and use constants in Java? Most advice on Internet has the following opinions: Declare public static final for constants in a class Do not use Interfaces for constants The most common way to define a constant is in a class and using public static final. One can then use the constant in another class using ClassName.CONSTANT_NAME. Constants are usually defined in upper cases as a rule, atleast in Java. ...

November 8, 2020 Â· 5 min

How to change Java Version/JAVA_HOME for Ant?

I wrote this earlier on a Github gist, but putting it here for a consolidated reference. Want to change Java Version/JAVA_HOME for Ant builds? Open ~/.antrc file by running vim ~/.antrc Add JAVACMD=<NEW_JAVA_HOME>/bin/java and save The Ant wrapper script for Unix will source (read and evaluate) the file ~/.antrc before it does anything. On Windows, the Ant wrapper batch-file invokes %HOME%\antrc_pre.bat at the start and %HOME%\antrc_post.bat at the end. You can use these files, for example, to set/unset environment variables that should only be visible during the execution of Ant. ...

June 15, 2020 Â· 1 min