Abhirama

Abhirama’s Blog

Part Ninja, part philosopher, part geek—awesome in whole

Thought Stream — week of 29 Jul 2019

Idiomatic coding is doing more with less.


Would you balk if I told you - in the future, no one will cook at home. All cooking will occur in cloud kitchens and delivered to home.

Imagine the reaction of our hunter gatherer ancestors if someone had told them - in the future, no one will hunt or forage their own food.


Recovery Oriented Computing (ROC) is all about restarting components frequently and proactively to reset their state.

Did not know that this was even a thing!

https://en.wikipedia.org/wiki/Recovery-oriented_computing


Programmer parallel to “Strategy and Tactics” is interfaces.

Think of interface definition as the strategy and the way you go about implementing these as the tactics.

Clearly understand the strategy(interface def), tactics can vary depending on the situation(usage context).


Could a retail brand carve a niche by saying - we never discount?


Great sales people do but sell the product; they sell the virtues of the product.


Quick hack for making a series of Redis operations atomic - put them in a Lua script and call the script.



One of the most under appreciated aspect of VCs is that they let you take asymmetric risk - huge risk without the downside of complete person ruin.

In a country like India, where traditionally, access to capital has not been easy, this is a boon.


Saw a product on Amazon priced at 350 ₹ with a 300 ₹ discount and 50 ₹ delivery charge.

From a consumer psychology perspective, would it not be better to price this at 400 ₹ while nuking the delivery charge?


If you want to understand the perilous relationship between an entrepreneur and debt, read the excellent book “Shoe Dog” by Phil Knight - founder of Nike.

I reviewed the book sometime back.

https://abhyrama.com/2017/10/02/shoe-dog/


“I think the minute you have a backup plan, you’ve admitted you’re not going to succeed” - said no distributed systems engineer ever.


If you want it to be done, then go, else, send - said no manager ever.


When it comes to the psychology of money, one needs to get used to the idea of trading money for one’s time.


It is challenging to measure developer productivity and assign a dollar value to it. Hence this area sees the least investment in many organizations.


You can condense useful writing tips to a page. The difficulty is not in remembering, but practicing them.

Practice good writing everywhere - from official emails to tweets to inane chat messages.


Experience is not valuable if you cannot draw lessons from it.


How do you detect opportunities to make your organization more efficient?

If one asks for something and the other one says, let me give it to you instead of laying out the steps to guide the other person get it - you have inefficiency and an opportunity for self-service.


There is immense potential for a programming language with optional typing built in to the language to go mainstream.

Startups that crossed the chasm to a big corp end up trying to tack a static type system onto the dynamically typed language that took them from zero to one.


Trying to invalidate an idea is a great way to validate an idea.


Some of the best podcasts that I have listened to are with obscure uncelebrated people. That is the power of democratizing communication mediums.


Great brand advertising does not sell the brand, they sell aspirations.


You are doomed once you start believing you need money to have fun.


Good products will be used in ways beyond the wildest imaginations of its creators.

Some apparent examples - Github as a collaborative crowd-sourced document store, Twitter as a replacement for long-form blogs.


Security practises are a trade-off between convenience and safety.

To what degree you want to implement security is highly contextual; there is no one size fits all suggestion.


Seek diverse opinions, do not be obligated to follow all.


Code review is not about surfacing bad variable names and deviation from conventions.

It is about unearthing logical errors, lousy architecture choices, and faulty assumptions.