Abstractions should be deep not wide

Let鈥檚 say you are building a git analytics product. Your product supports GitHub and GitLab for now. It might support more products in the future. 90% of the codebase that supports GitHub and GitLab is identical. 10% is specific to GitHub and GitLab. There are two ways to build software abstractions here. The easy path to fall for is to have unified objects that take care of both GitHub and GitLab data....

March 23, 2024 路 1 min

Some data on podcasting

A few years back, I scraped data on podcasters from iTunes. The data was a bit underwhelming and made me realize that podcasters can鈥檛 be a potential market. It is a bit dated but I believe is still relevant.

March 16, 2024 路 1 min

API services should always have usage Limits

Every public-facing API service should have API usage limits. If this seems overkill then ask yourself if would it be OK if a single IP sends a million requests a second. This does not apply just to publicly documented services but even to undocumented services that are publicly accessible.

February 11, 2024 路 1 min

Using Python & Poetry inside Docker

Poetry is a great build system. And in 2023, I believe, no one should use the pip for a private Python codebase. Getting it right inside Docker is a different issue, however. Consider a simple Flask-based web server as an example # Install poetry $ pip3 install poetry==1.7.1 $ poetry --version Poetry (version 1.7.1) # Create a sample package $ poetry init --python=~3.10 --name=src --description='Flask Hello world' --dependency=Flask@3.0.0 --author='Ashish' --license='Apache 2....

January 13, 2024 路 2 min

Timing

Two cryptocurrency exchanges came out early on from Y Combinator. One is 2012. One in 2013. One returned 1500X to early investors. The other one ceased to exist after 2 years. What happened?

November 18, 2023 路 1 min

Real vs Theoretical Engineering Productivity

Some engineering productivity is real. Some are theoretical.

September 16, 2023 路 1 min

Too much documentation is harmful

As code changes, documentation becomes stale over time. This happens at big companies. This happens at small companies. Unlike code, documentation is not compiled or tested. The code is executed. If the code execution fails or produces incorrect results, it is fixed with much higher urgency.

July 1, 2023 路 2 min

Engineering stack

Most startups think of the engineering stack as if it is a single cohesive thing. However, I believe that there are three different engineering stacks that are loosely coupled to each other.

June 3, 2023 路 2 min

Engineering Guardrails

Guardrails are meant to protect us from tripping over. The same can be said about engineering guardrails.

May 7, 2023 路 4 min

VCs are anti-personas for a B2C startup

The early adopters of Instagram were not VCs.

April 16, 2023 路 1 min