S Anand

Winning the alphabetical race

Since my name (Anand) begins with “A”, I used to get called on fairly early at school. In attendance. Answering questions. Classroom exercises. Quizzes. Even the distribution of test results.

A few people later told me that it is good training, since I’d always be prepared. (Maybe. I’ve no idea.)

At IBM and IIMB, Ajit was the only one ahead of me, alphabetically. Then he went a step ahead and named his son Aadi. I thought that’s impossible to beat.

Today, we recruited Aabhas Bharadwaj. I checked on LinkedIn. I can’t find a single name on LinkedIn that’s ahead of his, alphabetically.

So, does he win the alphabetical race? Can you find one ahead of his?

LLMs can teach experts

I am a fairly good programmer. So, when I see a problem, my natural tendency is to code.

I’m trying to break that pattern. Instead, I ask ChatGPT.

For example, I asked:

Write a compact 1-line Python expression that checks if user.id ends with @gramener.com or @straive.com

user.id.endswith(('@gramener.com', '@straive.com'))

After 15 years of using Python, I learnt that .endswith() supports tuple suffixes. This has been around since Python 2.5 (released in 2006 — before I knew Python.) The documentation has a tiny sentence in the middle saying “suffix can also be a tuple of suffixes to look for.”

I checked with a few colleagues, including Jaidev. They didn’t know it either.

It’s small little things like this that made me conclude.

I’m not going to code anymore. ChatGPT will, instead.

Father of the bride

In 2012, I started Gramener with half a dozen friends.

This week, we were acquired by Straive, a part of Barings Private Equity Asia.

How do you feel?

I feel like the father of the bride. Gramener was registered on 26 Feb. A day before my daughter’s birthday. I’ve spent more time with Gramener than my daughter. That makes Gramener my elder child. Who’s moving into a new household. Along with me. (I feel like சகலகலா சம்மந்தி.)

I feel grateful. I’m not good at business. But when my cousin remarked, “Anand, you’re now giving a livelihood to over 250 people!” I was stunned. My co-founders, colleagues and clients built a thriving business and put me (of all people) as CEO in the middle of it. How do I even go about saying “Thanks”?

It feels like joining college. New people. Larger group. New ways of working and learning. Lots of topics to explore. Exciting and scary.

What was it like?

Fundraising was rocky.
We started in 2019. COVID struck. We paused.
We resumed in 2021. Russia invaded Ukraine. We paused.
We resumed in 2023. The Israel – Hamas war started. Luckily, the deal was nearly done.
I’m grateful Naveen ran the entire process like clockwork, taking all the stress. I’m the happy free-rider, as usual.

Starting up was not that rocky.
We’re many. With half a dozen co-founders, there are enough shoulders to cry on. That counts.
We’re steady. We didn’t know how to blitz-scale, but we knew not to blitz-fail. Survival counts for a lot.
We’re lucky. This is basically the “I have no idea why we succeeded” category. Serendipity counts for a lot, too.
Ganes, Mayank, Naveen, Ram, Ravi, Vengatesh — yeah, it was fun. Not every day. But most of the time. It was fun.

What will you do?

I’m part of Straive’s data, analytics & AI business.

Straive extracts and analyzes all kinds of data. Financial. Legal. Research. Education. Pharmaceutical. There’s a fair bit of converting unstructured data to structured. Exactly the kind of thing I love doing.

So, I’ll be doing what I’ve been doing the last decade — extracting insights from even more data and telling better stories from those.

I joined Gramener as “Chief Data Scientist”. Now I’m debating “Data Storyteller”, “Data Detective”, “Data Psychologist”, and a few other evil titles.


Wish me luck!

Scraping

I was at Cream Centre with my father on a Sunday afternoon. We’d finished a light lunch and were debating dessert. (He has triglycerides. I have cholesterol.) This was my fifth visit this year, and I had abstained so far. I couldn’t any longer.

I ordered a Sizzling Brownie Sundae. But not for reasons you might think.


Expertise comes from experience. I scrape food more than 99% of the people I know. So, I consider myself an expert. Here’s a guide on the art of scraping.

Why scrape food?

  • You get to eat every last bit
  • Food isn’t wasted
  • You can eat longer (and no do whatever else you have to)
  • It’s a motivating challenge to get every last bit
  • Bonus: It annoys people

What foods are scrapable?

Semi-solids are the easiest to scrape. The best kind is the cohesive semi-solid. It’s sticky but sticks to itself more than the vessel. These are usually foods that solidify over time. Examples include:

  • Baked cheese. It’s great when cheese falls off the pizza or pasta on to the plate. You can scrape it off of your (or others’) plates.
  • Molten chocolate. It has the added bonus that you can lick it at the end, too.
  • Pasta water (or noodles water). It eventually thickens into something scrapable.
  • Spreads like peanut butter, Nutella, jam, chutney. Especially on the sides of the glass bottles they come in.
  • Others like yogurt, cake batter, dried tomato sauce, mashed potatoes, hardened honey on ice cream, … the list is endless!

Avoid crumbly stuff. These stick to the vessel but become brittle and break when scraped. This includes toast, pizza, biscuits, rice, muffins, pie, quiche, cookies, etc. You could pick large crumbs and lick small crumbs in shallow vessels. But scraping them and pouring into your mouth might be the best overall strategy for this category.

Avoid loose stuff. They’ll fall off from your knife or fork, or melt when scraped. This includes curd, whipped cream, custard, panna cotta, soft jelly, tiramisu, soft boiled eggs, etc. Licking is a better strategy here.

You could combine the crumbly stuff with loose stuff to create a cohesive mix. Add curd to granola. Add whipped cream to biscuit crumbs. Add curd to pizza crumbs (and since I eat Maggi with curd, this makes sense). This makes it a lot more scrapable.

What vessels to pick?

Shape: Flat, smooth vessels are the best (e.g., ceramic or wooden plates or bowls.) Avoid deep vessels like glasses, especially curved ones. They’re hard to get a long scrape against. Definitely avoid vessels with ridges. Disposable plastic containers like below are among the worst. Food gets stuck in the ridges and since there are a dozen ridges on each side, you have to scrape 48 times just for a first pass. (This might be a good challenge, though.)

Material: Hard vessels are better than soft ones. Prefer wood, metal, ceramic, and hard plastic. Avoid thin plastic that bends. Avoid paper (it bends and soaks). Banana leaves tear when scraped.

Avoid non-stick vessels. The coating wears off when scraping.

What to scrape with?

Knives are the best. They are sharp enough to separate the food from the vessel and flat enough that you can pile enough food on top of it.

Forks are OK. Their edges can scrape reasonably well, and their tips can poke into corners. But it’s hard to pile up much food to pick up.

Spoons not ideal. They aren’t sharp enough, and too curved for scraping long slices. But if you want to take your time with it, they’re great.

The sizzling chocolate brownie

My dish arrived. Burning with chocolate. My father just had some brownie, leaving all the molten chocolate to me. On a flat wooden plate. With a knife. For an hour.

Heaven.

Always use value= for dynamic HTML options

Even after 30 years of HTML, I learn new things about it.

This Monday morning, I woke up to a mail from Sundeep saying requests for a Data Engineer - AWS/Azure/GCP in our internal fulfilment portal raised an error.

My guess was one of these:

  1. The “/” in the role is causing a problem. (Developer mistake.)
  2. The role exists in one table but not the other. (Recruitment team mistake.)
  3. The application wasn’t set up / restarted properly. (IT mistake.)

All three were wrong. So I dug deeper.

The role was defined as Data Engineer  - AWS/Azure/GCP (note the 2 spaces before the hyphen). But the form kept sending Data Engineer - AWS/Azure/GCP (spaces were condensed).

I swear there was NOTHING in the code that changes the options. The relevant line just picked up the role and rendered it inside the <select>:

“`html

<option>{{ row['Role'] }}</option>

I used the browser’s developer tools to inspect the `<select>` element. It showed the options with the 2 spaces:

<option>Data Engineer  - AWS/Azure/GCP</option>

But, when I selected it and printed the value, it had only one space.

> console.log(document.querySelector("#role").value
'Data Engineer - AWS/Azure/GCP'

That’s when it hit me. HTML condenses whitespaces.

Till date, I only ever used <option value=""> when specifying a value different from what’s displayed. I never thought of using it to preserve the value.

LESSON: If you’re dynamically generating <option>s, ALWAYS use value= with the same value as the text.

My first LAMBDA in Excel

Ever since Excel introduced the LAMBDA function, I’ve been itching to use it in real life. I got my first chance today.

We track the skill index of our different teams (consulting, analytics, technology, etc.) like this:

TeamSkill IndexApr-23May-23Jun-23Jul-23
Consulting0%0%
Analytics33%33%
Technology72%72%
etc.

The “Skill Index” column should pick the LAST value. If Apr-23 is filled, use that. But if May-23 is also filled, use that.

I needed something like a =LASTVALUE(range) formula. But none exists.

A good alternative is this formula to get the last non-empty cell:

=LOOKUP(2,1/(range<>""),range)

So, I followed the instructions to create a function in the Name Manager (Ctrl+F3)

… and simply fill in =LASTVALUE(H6:S6) and the like in the “Skills Index” cell.

The LOOKUP formula is confusing. My aim is to confuse our team less. But I wonder if they’ll start Google-ing for this LASTVALUE formula no one ever heard of, and get more confused 🤔.

Licking

Last week, I was at IIT Madras for lunch with the faculty.

The dessert was carrot halwa with ice cream. I scraped the last bits with my spoon, but a little ice cream was left over.

I was torn. I CAN’T POSSIBLY waste it. But can I lick it? In public?


I don’t have a problem licking at home. I lick my fingers. Plates. Bowls. Ladles. The cream on milk. The leftover milk in the glass. (If my tongue doesn’t reach that far, I wipe it with my finger and lick the finger.)

That’s why I like ice cream. It’s MEANT to be licked. So are (in my opinion) cereals, savories, oats, honey, … It’s a long list.

Licking is convenient. My fingers stay clean while I type. (Spoons are impersonal. I avoid them.)

Licking is efficient. I can have every last bit of food AND feel good about not wasting it.

Licking makes my dishwashing easier. (But it can be hard to tell if a dish needs washing.)

But most of all, that last lick TASTES SO WONDERFUL!


Before marriage, licking was fine. But my wife worried about my lack of civilized behavior and hygiene. So I’ve had a crash course over the last 20 years.

My current protocol is: don’t lick when people can see you.


So, as I went to drop my plate, I looked around.

Now one was looking at me.

I licked a long lick on the plate.

It was HEAVENLY! Made my day.

Zeigarnik effect vs my procrastination

I make commitments but don’t always deliver on time. In 2022, I ran an experiment to find out why I procrastinate.

In Jan-Feb 2022, I listed the top 2 things I wanted to get done each day and measured how often I completed them.

14 Jan. ❌ Summarise from three research reports
12 Jan. ❌ UIFactory experiment ✅ Decide if I am a (…)
11 Jan. ❌ UIFactory experiment ✅ Agree on publishing in (…)
10 Jan. ❌ Client video. ❌ UIFactory experiment
09 Jan. ❌ UIFactory experiment. ❌ Attrition email as a story
07 Jan. ❌ ZS visual
06 Jan. ❌ Release Gramex Guide. ✅ UWC application
05 Jan. ❌ Publish network cluster post. ❌ Release Gramex guide
04 Jan. ❌ Publish network cluster post. ✅ Release Gramex.
03 Jan. ✅ Publish election TDS video. ❌ Publish Network cluster post.
02 Jan. ❌ Publish election TDS video. ❌ Publish Network cluster post.
01 Jan. ❌ Publish Network cluster post. ✅ Finalize SG school.

I completed 23 / 57 things (40%). That’s one of my TOP priorities.

In Mar-Apr 2022, I started micro-journalling to find out why. Whenever I was working on something, I wrote down whenever I started, stopped, or skipped working, and why.

- Tue 01 Mar. ❌ Create React app with any one Vega chart where attributes control chart signals
  - 09:30am. Skipped. INTERRUPTED. Shobana. Cleaning bedroom
  - 09:50am. Skipped. SCHEDULED. Breakfast
  - 10:10am. Skipped. INTERRUPTED. Naveen. Call
  - 10:50am. Skipped. DISTRACTED. LinkedIn. 3b1b videos
  - 12:30pm. Skipped. SCHEDULED. Calls
  - 01:30pm. Skipped. SCHEDULED. Lunch
  - 02:00pm. Skipped. INTERRUPTED. Shobana. Cleaning, Dhyeya airtel card
  - 02:30pm. Skipped. PROCRASTINATED. Didn't feel like working
- Sat 05 Mar. ❌ Record Jio videos fully. Run productivity log alongside it.
  - 09:45am. Skipped. INTERRUPTED. Appa. Investment, music
  - 11:00am. Skipped. PROCRASTINATED. Only 2 hours to next call. Let's do it later. Plenty of time tomorrow.
  - 01:30pm. Skipped. PROCRASTINATED. Only 30 min to next call. Plenty of time tomorrow.
  - 03:45pm. Skipped. PROCRASTINATED. Half day wasted already. It’s OK to take one day off completely.
- Mon 07 Mar. ✅ Record Jio videos fully. Run productivity log alongside it.
  - 09:37am. Started. ZEIGARNIK. Was thinking about this since morning.
  - 10:00am. Stopped. INTERRUPTED. Naveen. Called
  - 10:25am. Started. ZEIGARNIK. Just continued with momentum.
  - 01:00pm. Stopped. SCHEDULED. Lunch
  - 01:30pm. Started. ZEIGARNIK. Just continued with momentum.
  - 03:15pm. Stopped. COMPLETED.

After 2 months, a few patterns emerged.

Why I skip working
  1. Distraction (50%).
    • Interesting things (22%) were the biggest. Less important things (e.g. programming, browsing/research)
    • Movies (10%) pulled me away
    • Email (8%) was fairly common
    • Organizing things (6%) like my calendar, TODOs, financials, etc.
    • Social media, interestingly, was not on my list
  2. Procrastination (25%). There were 3 kinds:
    • It’s hard, and I’m stuck
    • I don’t feel like doing it
    • I don’t have time — my next task begins sooner than I can finish
  3. Schedule (14%). I’d scheduled something else for then (usually food)
  4. Interrupted (12%). Usually by family or close colleagues
    Why I start working
    1. Zeigarnik effect (68%). I keep thinking about the problem. So even after a break, I just plunge right in
    2. Mindfulness (19%). I got started just by the act of writing the journal
    3. Distraction (9%). Sometimes, distractions work in my favor. A movie gets stuck, or someone pings about the topic, or my mind is processing the problem in the background
    4. Completed (3%). I finished the previous task and the momentum just took me to the next
    Why I stop working
    1. Schedule (47%). I have another meeting/task planned at that time
    2. Interruption (35%). This is mostly by colleagues (22%), family (8%), or hunger/thirst (6%)
    3. Exhaustion (10%). I’m just too tired to go on
    4. Distraction (8%). To do this, I need to do THAT first, and I get sucked into THAT
    What I learned
    • The Zeigarnik effect helps me start. Once I start solving something the momentum carries forward. The next best is to write down why I’m not starting it (micro-journalling).
    • To avoid procrastination, I should eliminate distractions first. Specifically, use a new Virtual Desktop, block movies, and block email & notifications.
    • To avoid schedules interrupting me, I should batch meetings even more tightly, giving me longer or more flexible blocks to work on

    Picking books to read

    I add book recommendations to my GoodReads – To-read list. Then I sort by rating and pick the first one I like to read.

    In 2023, I’m reshaping my environment. Picking books I usually won’t pick. (Read The Unknown Unknown: Bookshops and the Delight of Not Getting What You Wanted if you want to be similarly inspired.)

    So here are 4 approaches I’m adding to my process.

    1. Algorithmic. Sort Kaggle books based on popularity, rating, and age. Pick the top 10 (or 50)
    2. Serendipitous. Go to bookstores and libraries. Pick the most popular books
    3. Award-winning. Pick from the Pulitzer, Booker, Nobel, Hugo, and other award winners
    4. Challenges. Pick from Popsugar, Book Riot, Goodreads, The 52 Book Club, and other challenges

    FYI, here are algorithmic results (for books with 100+ ratings and a 4+ average on Goodreads):

    Top rated books

    Most popular books

    Oldest books

    Books in 2022

    I read 52 books in 2022 (about the same as in 2021 and 2020.) Here’s what I read (best books first).

    Mind-blowing

    1. Man’s Search for Meaning. Viktor Frankl. It’s 75 years old and timeless. Who we are is independent of what’s around us. This book shows us why. This story is a great example. My best book of 2022.
    2. The Paper Menagerie. Ken Liu. I cried all the way from the beach to home. The skies joined me. It’s short. Touching. It healed a wound I can’t speak about. The most touching book of 2022.
    3. The Data Detective. Tim Harford. 10 powerful, down-to-earth rules for how to make sense of data, and avoid being fooled. I plan to incorporate every one of these into my talks. The most useful guide to working with data in 2022.
    4. The Extended Mind. Annie Murphy Paul. Explains how we think not just inside our brains, but in our bodies, in our physical environment, and in the people around us. The most effective guide to transforming my thinking in 2022.

    Life-changing

    1. Yuval Noah Harari’s Sapiens, Homo Deus and 21 Lessons for the 21st Century. Covers the past, present, and future of humanity, weaving the shared beliefs we’ve crafted — God, money, equality, property rights, happiness, and much more.
    2. Four Thousand Weeks. Oliver Burkeman. We live just 4,000 weeks. When you realize that, time management takes a new meaning. This is the most different time management book I’ve read, and I’ve started writing down stories of what I’ve done with my 4,000 weeks — each week.
    3. The Motive. Patrick Lencioni. Why do you want to stay a CEO? That’s the question this book answers, and in a sentence, it’s about doing the most important stuff that no one else will do. Not the stuff you like, or are good at.
    4. Team of Rivals. Doris Kearns Goodwin. The life of Lincoln and his cabinet. It’s extraordinary to see the path 4 eminent politicians took and the day-to-day decisions each made during the American Civil War.
    5. This is Water. David Foster Wallace. A commencement speech about the importance and power of noticing our blindspots, and making a habit of it.
    6. The Unknown Unknown. Mark Forsyth. A short, witty defense of bookshops. But it’s actually about blindspots and the power of randomness.
    7. Messy. Tim Harford. Explains how messiness is good for creativity and efficiency, with dozens of stories that prove the point.

    Interesting

    1. The Conquerer series. Conn Iggulden. The life of Genghis Khan. Factual, but interpolated with imagination. Gripping.
    2. The Subtle Art of Not Giving a F*ck. Mark Manson. A direct nudge to face our fears and choose our pains (not pleasures) actively.
    3. Talking to Strangers. Malcolm Gladwell.
    4. Bad Blood. John Carreyrou. The story of Therenos. It shows how thin the line to cross is.
    5. Land of the Seven Rivers. Sanjeev Sanyal. A history of India.
    6. The Ocean of Churn. Sanjeev Sanyal. A history of the Indian ocean.
    7. On Writing Well. William Zinsser. Teaches you to write with clarity, simplicity, brevity, and humanity.
    8. Superforecasting. Philip Tetlock, Dan Gardner. Techniques to consistently forecast better.
    9. Oathbringer. Brandon Sanderson.
    10. What the Dog Saw. Malcolm Gladwell.
    11. Humble Pi. Matt Parker.
    12. David and Goliath. Malcolm Gladwell.
    13. Next in Line. Jeffrey Archer.
    14. The Bomber Mafia. Malcolm Gladwell.
    15. Emperor series. Conn Iggulden.
    16. Flow. Mihaly Csikszentmihalyi.
    17. When Breath Becomes Air. Paul Kalanithi.
    18. The Lost Metal. Brandon Sanderson
    19. The Assassin’s Blade. Sarah J Maas.
    20. Skyward. Brandon Sanderson. Sunreach, ReDawn, Cytonic, Evershore

    Readable

    1. War of Lanka. Amish Tripathi.
    2. A Court of Thorns and Roses. Sarah J Maas. Part 1, 2 and 3.
    3. Asterix and the Magic Carpet.
    4. Scott Pilgrim’s Precious Little Life. Bryan Lee O’Malley.
    5. Scott Pilgrim vs The World. Bryan Lee O’Malley.
    6. Daughter of the Deep. Rick Riordan.

    How I read books

    1. Select. I add book recommendations to my GoodReads – To-read list. Then I sort by rating and pick the first one I like to read.
    2. Listen. I listen to non-fiction audiobooks during walks.
    3. Read: I read fiction as ePUBs on my laptop or phone.
    4. Stop: I stop reading books that are boring, with no guilt. I’ve better things to do.