5 reasons package.json doesn't scale

package.json is the standard package configuration management file used in the Javascript world. To call it terrible is an understatement. Here’s why.

Why I prefer Obsidian for taking notes

I started using Google Notebook around 2008. Once I received a notice that it will shut down, I switched to Evernote around 2012. Unlike Google, note-taking is the central business of Evernote, I thought I would be fine. I was wrong. Evernote became terrible over time. Then I heard about a service called Notion. I deliberated and decided to wait out. Turns out a new cool kid on the block showed up soon enough....

Low code

I’m a big of serverless. In fact, in 2021, I believe that it should be the default choice and one should have a strong reason to deploy their own servers.

Don't buy Google FI SIM with a phone

There are several nightmare stories on the Internet regarding Google’s poor handling of payment issues related to Google Fi service. Most problems arise because people buy a phone along with Google Fi SIM. Don’t do it.

Fundraising rounds then and now

Then Seed/Angel Series-A Series-B Series-C IPO Now

React Native

There are tons of hyped-up claims surrounding React Native that are worth addressing. The reasons why companies run for React Native are usually, We already use Javascript for the website and now, we can build apps in that as well. We can use one codebase for Android, iOS, and web apps. Or at least, Android and iOS apps. Facebook uses it

Indeterminate Progress bar is an inferior UX design

60 milliseconds is when we notice something isn’t immediate. Any user interaction, that involves sending data over the network or doing heavy computation on it, usually takes way longer than 60 milliseconds. So, we end with a progress bar. There are two broad categories of progress bars, one that shows the absolute/relative progress, a determinate progress bar, and one that does not an indeterminate progress bar.

The two-step approach to big code modifications

We all have to make significant code changes from time to time. Most of these code changes are large. Consider the scenario that you merged one such significant change, and then other team members made a few more changes on top. Then a major bug is detected. You desperately make the fix. It makes it in. You declare a victory, and a few hours later, your colleague notices another bug/crash/performance regression. Your commit cannot be reverted. It isn’t just about you. Many others have built on top of the change you made—the code sloths along in this broken state for a few days before you eventually fix it. Everyone has faced this issue at some point or the other.

Dealing with phone numbers in contact book

If you are building an app that uses the user’s contact book then their certain gotchas to avoid. Telephone country codes are prefix-free If a country has a country code “+91”, then no other country will get a country code like “+912” or “+913”. This scheme ensures that numbers are inherently unambiguous. Telephone numbers can have multiple representations Since most people don’t dial internationally, telecom systems implicitly assume a domestic call....

Programmable Money and value capture

Money serves three purpose - unit of accounting, a medium of exchange, and a store of value. Cryptocurrencies have been compared to Programmable Money. Anything programmable requires an experimentation platform for iterations and improvement. Bitcoin seems to have won the “store of value” battle. Ethereum has the developer mindshare and is the preferred experimentation platform. Multiple cryptocurrencies are still fighting the battle to be the medium of exchange. The amusing part is that every cryptocurrency startup envies Ethereum’s developer ecosystem and is trying to attract developers....