Egypt in 8 days

Egypt, locally known as Misr (मिस्र) is world-famous for its pyramids and ancient polytheist temples. I made a trip to Egypt in Nov 2020, during the COVID-19 era. Given the general lack of tourism, it was a great time to travel since I didn’t face any queues and in many temples, I was the sole visitor.

Very few people outside of the tourism industry understand English, so, it is good to make yourself aware of a few basic phrases. The equivalent of “hello” is  “As-salamu alaykum”.  To ask for a price, say “bekam da“. And of course learn the common numbers like five (hamza), three (thlath), ten (ashri), and twenty (ashrin) since these are what you will encounter on the street. And “I don’t understand Arabic” is “Ana mish fahem al Arabee”.

As a vegetarian, I did not face any problems finding food since Falafel and Ful sandwiches are aplenty and available for cheap (1-5 EGP per sandwich). The national dish Koshari is neither delicious nor nutritious. The Egyptian Pizza, Feteer, however, is darn delicious.

Read More

Docker: Be careful about the scratch image

After I wrote my previous post, some suggested that I can cut down the image size further by using a “scratch” image. And that’s true, “scratch i”s a reserved 0-sized image with nothing in it. And utilizing a scratch binary image did cut down the size of the final Docker image from 13MB to 7.5MB. Pretty good, right? Except the image cannot do an SSL cert verification because of the missing SSL certs!!!

Failed to reach google.com: Get https://google.com: x509: certificate signed by unknown authority

Read More

Glacier National Park in 4 days

Glacier National Park, Montana is considered to be one of the most gorgeous national parks in the US. We went there in September 2020. It wasn’t snowing but the weather was still pretty erratic with random cold showers during the day. So, I would recommend going no later than August. Also, the east side, which has native American reservations were closed to prevent COVID-19 spread.

Dressing in at least three layers is highly recommended as the weather changes dramatically with heights and the time of the day.

Read More

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.


Fancy but will this ever finish?

Now, here’s what’s the state transition looks like,
task started -> task progressed -> task finished/failed.

So, ideally, a software engineer should be implementing all these states. Most don’t. Some push the error handling to a later point. And then forget.

In such a situation, the indeterminate progress bar just stays there, spinning and spinning. While a determinate progress bar actually stops. So, a determinate progress bar not only communicates the speed of progress to the user but also, communicates if the progress has stalled.

So, why aren’t they more popular? Probably because it is a bit more work, you have to decide what the unit of work is. And if you are too off, the progress can look arbitrary. In my belief, even if the progress looks like a car navigating a bunch of speed breakers, it is superior since it communicates more actionable information to the end-user.


Slow towards the end but the user can see the rate of progress and if the job is stuck

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.

Here’s what I have seen works best.

  1. Backend code – ideally, one single repository.
  2. Frontend (web) code – one single repository. This can be separately tested and even outside contractors can access this. The web code is anyways shipped to the client, so, leaking it isn’t that big of a worry.
  3.  Mobile code – one repository per platform (Android, iOS, etc.) if there is no code dependency. Or one single repository if a common codebase like React Native or Flutter is being used. Again, those who access the mobile code won’t need access to the backend code. And given that this code in compiled form is sent to the users, there is less worry around leaking it.
  4. Open-source code – One repository per open-source package.

As opposed to a monorepo setup, this setup makes it harder to make simultaneous changes to backend and frontend, or backend and mobile apps. And that should be the right behavior anyways. Since backend services and frontend can be, or eventually will be, deployed independently of each other. Mobile apps are deployed independently anyways, so, the backend has to provide backward-incompatibility for that.

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

Subscribe For Latest Updates

Signup for our newsletter and get member-only articles




-->