Things to do in Dominica – The nature island of the Caribbean

  1. Dominica, the nature island, is not easily accessible via the mainland United States. The airport is small and only propeller planes can land here.
  2. The island is beautiful and is the only Caribbean island to have a rainforest. It is known to have 365 rivers.
  3. The currency is East Caribbean Dollar (1 USD = 2.7 XCD). The USD has full acceptance, though.
  4. Kalalau is the national dish. Its a soup made from Dakshin, and I would recommend trying it out.
  5. Public transport is better than most other islands but is still limiting if your itinerary is jam-packed.
  6. There are two towns, Roseau and Portsmouth. I would recommend staying in Roseau if you don’t have a rental car since most tours, taxis, and buses depart from there.
  7. Most good activities are on the south side of the island. The south faces the calmer Caribbean sea while the north side faces a more turbulent the Atlantic Ocean.

Read More

How many source-code repositories should a startup have

Recently, this question came up during the discussion. “How many source-code repositories should a startup have?”

There are two extreme answers, a single monorepo for all the code or repository for each library/microservice. Uber, for example, had 8000 git repositories with only 200 engineers! I think both extremes are wrong. Too many repositories make it hard to find code and one single repository makes it harder to do simple things like testing, bisecting (to find buggy commit), deciding repository owners.

Read More

Celsius vs Fahrenheit

The US is one of the few countries where the temperature measurements are in Fahrenheit. Elsewhere, Celsius is the norm. Usually, when traveling, I want an approximate mapping. Thankfully, it is linear and easy to memorize.

To convert temperature in ºC to ºF – double and add 30
To convert temperature in ºF to ºC – subtract 30 and half

Read More

I’m looking for financial partners and would like to connect…

A sample of LinkedIn requests I receive these days.

Hi Ashish, I’m the CEO of [redacted]. [redacted]. I’m looking for financial partners and would like to connect to see if we’re a fit.

Hi Ashish, I’m the CEO of [redacted]. [redacted]. I’m looking for financial partners and would love to connect! – M

Hey Ashish, I’m the CEO of [redacted] – [redacted]. I’m looking for introductions to financial partners and would like to connect to see if we’re a fit. – S

Hi Ashish, I’m the CEO of [redacted]. [redacted]. I’m looking for introductions to financial partners and would love to connect! – K

Read More

Three days in Cancun (Mexico)

Cancun, or, more precisely, Cancún, is a coastal tourist city on the Caribbean (eastern) side of Mexico. There are two significant areas, Punta Cancun (tip of Cancun), also known as the Hotel Zone and Playa Del Carmen. We chose to stay in Punta Cancun. The Hotel Zone is walkable and you don’t need to rent a car if you are staying there. Buses are always available to go to other parts of Cancun though you rarely will.

Read More

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.

Read More

In a remote village in Thailand…

After renting a moped in Thailand, I stopped at a small shop to ask for a petrol pump/gas station. Instead, the shop owner handed me a bottle of gasoline for purchase.

“Must be a peaceful country where they can sell gasoline in bottles.”, I said to myself, “In most parts of the world, people would use this as a petrol bomb during violent protests and riots.”

Petrol/Gasoline sold in bottles in Thailand

Petrol/Gasoline sold in bottles in Thailand

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. So, someone dialing 612-555-1234 in the US is dialing “+1-612-555-1234”, while the same person in India is dialing “+91-612-555-1234”. Since international dialing would be more infrequent, telecoms require unique prefix numbers like “00” to distinguish whether someone is 612-555-1234 in their country or 0061-255-51234 in Austria. In some states, even the domestic area code is not explicitly required. So, a user might have stored “555-1234” as the phone number to which telecoms will implicitly prefix the user’s area code. And if the user wants to dial beyond their area, the telecom operator would require an additional “0” prefix to mark that it is an STD call. This localization has a massive implication regarding processing cleaning and normalizing phone numbers retrieved from the user’s contact book. Both country code and area code don’t contain “0”, and usually, that’s superfluous. So, while telecoms might be OK with calling or sending SMS to “0-612-555-1234”, they will treat a number like “91-0-612-555-1234” as incorrect.

Multiple countries can share telephone codes

USA, Canada, and many countries in the Caribbean share the “+1” telephony code. The carriers would treat calls or SMS as international, though. Italy and Vatican city share “+39”.

Continuous area codes or country codes are not always adjacent

As the population grows in certain areas more than others, the codes reserved for other regions can get allotted to them. An example of that is the San Francisco Bay area, where the first 408 and then 669 was allocated on top of the existing 650 area codes to deal with the growing population.

Confirming phone number ownership

You can never trust an incoming call or incoming SMS’s phone number. Therefore, the only way to verify that the user owns a phone number is by sending them a text message or making them a phone call.

-->