Author Archives: dilawarsr

How good are LLM agents? Depends on whom you ask!

Depending on whom you ask, you get very different answers. I’ve been noticing a pattern.

If you ask a generalist who is B+/A- on any job you throw at them, they are likely to find LLMs very useful.

If you ask a specialist who has spent a lot of time doing a few things and has deep expertise in them, they are more likely to call LLMs garbage.

I think both of them are right.

My own experience with LLMs is that they are very good at doing “average”. Being a generalist, I only know a few things very well (learnt during my Ph.D. and startup), and I can see LLM sloppiness in those areas. But for most other things, I’ve no way to evaluate LLM output—a plausible answer looks as good as a correct one.

I totally understand when Zig maintainers or database developers ban the use of LLMs. I also understand when a good application developer, who understands some part of her system very well, relies heavily on LLMs for other important jobs like adding a demo site, integration, or a front-end in a language she doesn’t know.

What about enterprise and large organizations? If their products are technically “average” like a social media client, then I see some advantage of using coding agents (though I’m not sure if long-term costs are worth it). If their product has critical components that require very specialized knowledge — such as compilers, database engines, or encryption algorithms — I’d be running away from them if I get to know they are trading their hard-earned tribal knowledge for short-term, LLM-induced gains.

Async Rust: An example of future cancellation

Read the following code and guess the output.

It has two concurrent tasks. The first task sets a cancellation token after 150ms. The second task accepts a variable initialized to 0, increments it twice with 100ms sleeps in between, and finally resets it to 0.

Then we have a tokio::select! that returns the first branch that completes, and cancels the second branch.

use std::sync::{Arc, Mutex};
use tokio_util::sync::CancellationToken;
#[tokio::main]
async fn main() {
let cancellation_token = CancellationToken::new();
let token = cancellation_token.clone();
let cancelled = tokio::spawn(async move {
// X1
tokio::time::sleep(tokio::time::Duration::from_millis(150)).await;
token.cancel();
});
let a = Arc::new(Mutex::new(0));
tokio::select! {
_ = cancelled => {
println!("cancellation token is set.");
}
_ = long_task(a.clone()) => {
}
};
println!("a ={}", a.lock().unwrap());
}
async fn long_task(state: Arc<Mutex<i32>>) {
println!("long task started...");
{
let mut lock = state.lock().unwrap();
*lock += 1;
}
// Y1
tokio::time::sleep(tokio::time::Duration::from_millis(100)).await;
{
let mut lock = state.lock().unwrap();
*lock += 1;
}
// Y2
tokio::time::sleep(tokio::time::Duration::from_millis(100)).await;
{
// clean up (reset to 0)
let mut lock = state.lock().unwrap();
*lock = 0;
}
println!("long_task has ended.");
}

If you guessed an answer other than 2, you need to read about cancellation safety. The Tokio documentation also talks about it extensively.

Why is the output 2?

Because at 150ms, the spawned task completes, causing tokio::select! to select that branch and immediately drop the long_task future before it can reach the cleanup step. Note that long_task is dropped not because it checks the CancellationToken, but because tokio::select! automatically drops all non-winning futures.

This behavior can be dangerous: what if the remaining code was cleaning up a resource (like running a database cleanup query or releasing a lock) rather than resetting a variable? You could leave your system in a broken state.

Execution Sequence

  • 0 ms: long_task starts, sets a = 1, and yields at Y1 (sleep 100ms).
  • 100 ms: Y1 finishes. long_task sets a = 2 and yields at Y2 (sleep 100ms).
  • 150 ms: X1 finishes. The cancelled task completes, and its JoinHandle resolves.
  • 150 ms: tokio::select! receives the completed branch and drops long_task while it is sleeping at Y2. The final cleanup block is never executed, leaving a = 2.

Weekly Notes 2026/29

This week, Digit Insurance pulled a “scam” in me. It almost succeeded! They sent the following WhatsApp message.

I bought this car from Spinny almost a year ago. Under the impression that Digit is my car insurer, I went ahead and renewed the policy pending KYC and pre-inspection video. KYC was easy to do using PAN but I could not login in their app (that’s a different story). Frustrated, I cancelled the policy, refund pending.

So where is the scam? First, after wasting an hour on their app, when I double checked, my insurance is not expiring on Aug 3, not in next 5 days as they mentioned. And the insurer is United Insurance company, not Digit! Should’ve known better since they used the fear “fine of 2000” etc in the message to nudge me click!

I now understand that they advertise heavily in IPL and a famous cricketer is their scammer-in-chief or brand ambassador or whatever. Enjoy your cut, motherfucker!

I was “saved” by AI slop (refund is still not in my bank though). Their app didn’t let me login for inspection because my phone number starts with 91 and it confused it with ISD code (+91 part) and complained that mobile number is not complete but also won’t let me type more than 10 digits 🥁️🤣️. I had similar experience with these websites/apps when I was purchasing life-insurance. I ended up buying from LIC because their PHP website still works. Perhaps I should start using the govt. entities, they don’t seem to change their color-scheme and look & feel every other week and they sites seems to work better than most fancy looking websites I’ve lately used.

  • I had some recognition at work by my peers 🥹️. Its nice to be appreciated by your peers you appreciate. There is nothing more to the “career” IMO.
  • At work, there is a hard limit on AI tokens. I burned my limited monthly quota in a week or two and then went through withdrawal symptoms 🥹️. I’ve started writing some code by hand now. Most of the time, I do not ping anyone when I have a doubt about code-base. LLM works great because a lot of people invested time and effort in writing docs and great MR reviews.
  • The expectations from AI is a bit more saner these days but I don’t think the AI psychosis is going away anytime soon. We had an internal hackathon where AI was the judge! So did Kaggle last week.
    • I am yet to see AI increasing revenue per head or keeping folks focused enough to finish it off. There are some productivity gains here and there. More people are now talking about it.
  • I learnt about this ecological event in Mizoram last week. Every few decades mass blooming in their forests causes a rodent boom, and devastation to crops.
  • I filed my ITR for this year. I think finally I know the process. I created a Notion template to use next year. I also filed my GST returns. The GST website is not bad, it is not as good as ITR website though.

Weekly Notes 2026/28

  • I learnt the Boko Haram has been using AI and killing themselves.
    > We saw in a movie how motorcycles can jump over bridges. We used AI to learn how to do this. We gave it information, like what motorcycles we use and the distance we need to jump and so on and it gave us steps on what we have to do. We practiced a lot and kept asking questions. We dug holes and filled them with broken glass and fire to practice. 18 of us died in the process. Eight of us managed to do it. The next time we attacked, we could jump.
  • I watched a few videos of Casey Muratori talking. Nice guy.
  • This season for Rick & Morty is excellent. I enjoyed the episode 9, Mortgully, thoroughly 👍️.
  • I don’t follow football much. I read the Donald Trump got Fifa to reverse a red card! Then learning that USA lost to Belgium was pretty nice. Donald Trump has lowered the bar so much as even lowest among the lowest don’t compare to him when it comes to pettiness.
  • This week was busy at work. I am participating in an internal competetion.

Weekly Notes 2026/27

  • The popular version of the Dunning-Kruger effect says that stupid people overestimate their capabilities. This is true, but the effect is much more general than that. It says if your expertise level is different from the average, then you judge the “average competency” differently. So if you have above-average expertise, you might overestimate what the average competency is. Folks who had above-average education tended to overestimate what average education looks like (and vice versa), and so on.
  • Embassy is a great project. I am porting a blocking C firmware to non-blocking firmware using Rust, and it is a joy to write in. I hope things are still as good as now when I need to take a not-so-happy path. The other option was using ROS or FreeRTOS, but I am not very excited about writing in C or C++ or even Python.
  • Things are getting interesting at work. The AI pricing is increasing, token usage is being curbed, and folks are demanding their dosage back.
  • All sync communication like Slack must be banned around serious work unless they are moderated by grumpy old people who get heart attacks every time someone shoots 10 notifications when one would have done :-). Go back to emails, please! Put effort into writing and reading. And no, I don’t mean write in Victorian English or have perfect grammar.
  • I had to go see the mechanic about my Tata Nano. It’s been 8 months since the car went to his garage. Man, he can lie with a straight face! I may have to explore legal options from next month onwards.
  • The monsoon has arrived in Bengaluru, but rains are still deficient. Lantana plants in my neighborhood are doing great, sadly for local flora.
  • Yesterday, I had a chat with my neighbor. He is a retired bus driver from KSTRC. Nice guy and very helpful. Old people love to talk about plot price, house price, cars, and other stuff. He has experienced an automatic car in Bengaluru traffic and is now planning to sell his manual.
  • Today, I filed my ITR and GST returns. I am getting a bit used to them now. Both government portals are actually fine. The ITR portal is pretty good, and the GST portal works after some practice. This year, I had to file ITR2 (due to some stock selling/buying). It was easy to get the details from the CSDL repository and add them to the form. It takes a while to learn the acronyms and abbreviations. Last year notes in Notion helped.
    • I thought of hiring a CA but I didn’t see much value. They save the hassle of knowing how to file ITR, which I was keen on learning anyway. And to file ITR by CA, I need to collect all data and share it with them, which would take the same amount of time. So what’s the point? Perhaps they know something that Reddit/Gemini doesn’t about saving taxes?

Weekly Notes 2026/26

  • I got my 3D printer back from my cousin. He stopped using it for a few years. He sent it back to me when he had to move. I’ve been printing a lot of useless stuff, like the one below.
  • I have been reading “Medieval India 1” (edited by Irfan Habib). I found a few papers in it quite interesting — especially on social mobility and travelers accounts of Hindu religious practices at many famous places; many of them don’t exist anymore. Perhaps I will write a review later. Mr. Habib has an excellent, readable body of work on Indian history. Indian history was a very emotional subject when I was in college. Mere mention of a historian was likely to invite accusations of partisanship. I’ve mostly read what people would call “leftist” historians. Mr. Habib, D. D. Kosambhi, etc., were/are my favorites. Though I don’t touch Romilla Thapar anymore. I don’t like her as a person anymore after her stint at EPW.
  • The economy and the reality are catching up with the AI usage at work. Costs have been rising, and token-maxxing by a few is burning through the monthly budgets in a week. Given its effect on memory prices, I am a bit glad that I bought a Linux machine a few years back, though I didn’t need any. It is quite a weird situation; the promise of AI is replacing labor and jobs, then who’s going to buy it, and what is its point other than being a tool of economic destruction?
  • Congrats to Ireland and New Zealand for their wins over India and England. I didn’t watch any of those matches.
  • The government pulled a statistical sleight of hand to show the rural wage has increased by 13%! This data will go into official statistics soon.
  • My favorite podcast, In Our Time, continues after its host retired from the show :-). I’ve listened to a few new episodes. It will take some time to get used to the absence of Mr. Melvyn Bragg. Content produced by the BBC is still one of the best in the world, but this podcast had been out of this world.
  • Work was very slow this week. I also took a few technical interviews for a client who has been using AI to screen resumes. I am not a fan of using AI in the interview process, but it is what it is. Earlier, I didn’t like structured interviews, but now I prefer them since comparison across becomes a bit easier. I don’t have anything against unstructured interviews if you practice beforehand and make sure it doesn’t derail candidates. Now I wish the candidate also practiced interviews, especially how they answer the questions; please get to the point as soon as possible.
  • Something is perhaps churning in the PHP community: RFC for geneic was rejected! And I saw a talk about the RFC process. I think it is usually a VERY GOOD idea to make the lives of programmers easier.

Weekly Notes 2026/25

  • 📚️I ordered a few of Prof. Andre Beteille books. He dies a few months back. He is perhaps the only sociologist that I could read. MN Srinivas’s “A remembered village” was also a great read.
    • I also bought a few books on software engineering in general, especially on refactoring, design patterns, and architecture. Books on software engineering becomes outdated pretty soon. I prefer blog posts or papers.
  • 🥭️ The peak mango season in Bengaluru is over!
  • 🏏️I think I’ve lost all interest in cricket. I can no longer watch a full game, even watching highlights takes some effort. While the heart misses the test matches but I don’t have that much of time or attention. Then the T20, the “pornography of cricket”, fun as it is, has already killed neural circuitry that appreciated delayed-gratification required for test cricket. Good riddance, perhaps!
  • 🤖️I learnt that Hyundai bought Boston Dynamics a few years back (80% stake) and now finished the deal by buying the remaining stakes. Automotive industry is betting on “physical AI”. Toyota, where I currently work, also have significant focus on physical AI.
  • 🛵️ It was a WFO week at work. I think I should once a week to office just to ensure that bike is in good shape. My office bag content remain relevant to seasons. I got caught in rain and I didn’t have my rain jacket in my bag.
  • This year is going to be most tumultuous as far as “coding” is concerned. Either we’ll figure it out how to use AI properly. Or I’d have gone through the stage of griefs and reached acceptance by then. I’ve been thinking about AI or pushing back on it till December this year.

Weekly Notes 2026/24

  • Couple of bad news from the village: an old widow died after shock of bank proceedings against her 5 lacks loan sent her to a comma. She was milking her cows when she fell back. It is typical for banks to announce these things loudly in public because public shaming seems to work on villagers. The rural economy has been under duress for a long time and Iran war made things worse. There are long lines for diesel, petrol and LPGs, and prices of fertilizers are up. Despite what your media and govt telling you (or keeping mum), things have not been positive for a long while.
  • It was heartening to see PARI is publishing many more news stories. I’ve setup a monthly subscription. Currently, I only subscribe to two news portals, PARI & Caravan. I’ve cancelled most others: frontline, Indian Express, and even EPW after Thakurta fiasco and trustees using Prof. Beteille name on the letter while he was ailing in the hospital. It was vile! Vote with your money, it works!
  • I tried to read “Inversion of Control layer” but couldn’t find motivation after a few paragraph. I am pretty sure it has some value in it but the motivational example is way too “enterprisey” to pay attention to.
  • Why Japanese Companies Do So Many Different Things” was an interesting read.
  • I think I am now suffering from AI fatigue and communication slop it causes. The social rules around using/producing AI content are in flux. I feel irritated when someone sends AI generated content my way but occasionally do the same myself. One solution to this is maybe to slow down and take time to do things the old way but not using AI now feels like “not using your super-powers”. Interesting times I am living in.
  • Its been over 6 months that my Tata Nano XTA is still in garage. The mechanic has been telling me this week or next week for last three months!
  • I wished I watched the Bangladesh and Australia second ODI match. Bangladesh played excellent cricket.
    • It is becoming very very hard to watch cricket when India is playing — the advertisements are so cringe on Hotstar. And commentary has become really meh — commentator are also parroting ads! I don’t know how long they are going to milk nationalism.
    • Perhaps I need to find a more sports-friendly streamer who is less interested in shoving ads down my throat. I watched few hours of NZ and ENG test match on Sony LIV which otherwise has terrible content; and SL and ENG T20 match (Women World Cup). Commentary was good. I get to learn a few things and tidbits about cricket and cricketers. And ads were just ads. Or maybe I am just getting old.
  • Age has stopped becoming “just a number” now, more and more it feels like a timer!
  • So have you heard that someone has 1 trillion dollars now? A few decades ago, I read a historian talking about how after world war II, super riches have become things of a past! 🙄️
  • Following is a really good talk — a bit long. Ask AI to summarize if you are interested in content, and then enjoy the details.

Weekly Notes 2026/23

  • 🏃️In last 5 months, I’ve ran over 320km, 680 more km to go in next 7 months. Pretty doable since running in winter is easier. It’s harder to run >4km without a good company.
  • These days I come across more and more apps broken in subtle ways. After the last update, my Android phone becomes unusable within a day unless I reboot it once a day. Android has started behaving now a bit like Windows! I feel anxious about updating anything (including Linux kernel).
    • Most annoying is when bluetooth and phone apps stops working in weird ways. I hear caller tune but no icon to pick the phone. If I switch off the bluetooth, I won’t switch on again unless I reboot the phone. Google playstore complains that I am not logged-in and BHIM stops working since googple play service complains that I am not logged in! 😪️
    • Web-apps are also broken in equally silly ways. One of my client uses a new and upcoming HR web-app which I always found annoying. These days, I loaded a few mega bytes of data on landing page, and that keeps changing its background images. Their login flow is mysterious once you are off the happy path. I just want to upload invoices. I’ve given up on it just send invoice over email.
  • I downloaded GST application for Linux to sign my filings. I wasn’t expecting it to work since it is a govt. app and it didn’t disappoint. It didn’t work.
    • It is a java application that requires Sun Java and doesn’t work with openjdk. I downloaded the Oracle java and ran it but again no dice. I asked Claude if it can help mitigate the sloppiness of my country men/women and it did a good job.
    • Apparently the developers (eMudhra) shipped Windows related files inside a Linux app. I don’t think anyone opened it on a fresh Linux machine before shipping. Claude was able to patch the app. Patch is available here https://github.com/dilawar/GSTSigner-linux . We Indians have a well-deserved reputation of being sloppy and lazy at everything we do.

Weekly Notes 2026/22

  • My neighborhood saw rain this week, decent amount. Mosquitos are back! Surprisingly there was no power-cut after first bout of strong winds. In last couple of years, they replaced naked aluminum wires with a bundle of insulated coated wires. Perhaps that helped.
  • I learnt a bit about “mock testing“. I thought it knew about it. The way it interacts with Rust’s trait was new to me. This weekend, I am going to collect materials on it.
  • Govt agencies are rarely known to be a place for efficiency and accountability but recent news of CBSE botching up student’s mark-sheet is a new low. I read that a “journalist” called the student who brought up the issue Pakistani and cockroaches! Why rush towards a new system just a few weeks before an event is beyond me?
  • I’ve never been a fan or admirer of any living politician. I find them necessary evil to be tolerated as long as we can potentially replace them next election cycle. I feel a bit sad when I meet someone who is. The job of citizens is to keep its government on it’s toes rather than touching its feet! Perhaps that is the issue: some folks want to be a subject rather than a citizen? A politician influencing ECI so brazenly is like watching a cricket team installing their own umpires in a match! What is left to celebrate after victory then?
  • Some psychologists claim that old people who are bhakt now were chamchas before. Why do they start worshiping Mr. Modi after so rudely disillusioned by Ms. Gandhi is beyond me. It would make a good Ph.D. thesis.
  • Powerful leaders, more often than not and surely in our country, cause more harm than good to the foundation of nation. What Ms. Gandhi did to civil services and press is not different than what the current government is doing to judiciary and press. These have long lasting effects that rarely gets corrected on its own. For a weaker judiciary and a spineless press and police are more useful for any politician doesn’t matter which party they belong to.
    • We have few examples in Europe to compare. In US, a cult of personality seems to be winning over a “check-and-balance” style of governance.
    • Reminds me of Gandhiji who deeply distrusted political parties in general and two parties system of US in particular. He thought that a two party system will eventually turn citizens against citizens. Despite finding Gandhiji politically naive, he sure has a point if you think beyond a few decades.
  • We sure have a thing for “powerful leaders”. Sadly even among people who should know better. Perhaps the educated class in this country is subconsciously aware of worthlessness of their education and degrees. I’ve seen them lining up behind Anna Hazare and Mr. Modi as if they couldn’t think of better ideas.
  • Even when your leaders are “good” and not interested in lining up his pockets or keep himself in the limelight, they can’t think beyond next election! Some leaders might enjoy nothing more than contesting elections because it gives them a high they can’t get by solving problems that may take more than a election cycle. The timescale of 5 years is too short in life of a nation to lay the foundation of semiconductor fabrication, improve primary education and health system and to improve universities. Might institutes that don’t have to think about their existence every five years help? I hope this to be largely the case but we also have institutes like DRDOs!
  • In may countries, political parties are also “institutes” for they easily outlive their current leaders. And these parties can think beyond election cycles though I find this to be rarer and rarer. In our style of society, we have factions rather than parties because they grow and wither with their ring-leaders.
  • Sure, one can ditch democracy and look for autocrats for they don’t seek votes. It might work in some cases for a few decades but when it doesn’t work, and it eventually win not, it is going to hurt really bad.

Weekly Notes 2026/21

  • Some rain this week on Tuesday. Cloudy week. Not bad. Running after the rain when there are no dust particles in the air is already pleasant.
  • People are still very confused about AI. What should it be used for and how much? What are its real benefits?
    • I wish there is little less AI content on my feed. LinkedIn is bad again but in a different way. HN and lobste.rs also have way too much AI on front-page. Some reddit communities are doing well but someone will mention AI somehow on every tech thread!
  • I’ve got GSTIN this year since I am mostly working as contract/freelance roles.
  • My phone has been misbehaving in mysterious ways for a few weeks now. Pressing call icon doesn’t work unless I restart!! GMail app is crashing when I try to open right panel, MS Team doesn’t sync calendar with system calendar anymore. Google Play complains that I am not logged-in but shows my google profile picture anyway and also refuse to show me “Log In” button because I am logged in. BHIM refuses to open unless I login to google play service but google won’t let me because I am also logged in and not-logged in at same time! A bit like Schrodinger cat. I am almost sure that these small small bugs are due to AI slop and compounding now. I hope this all ends badly soon enough so we can move on.
  • Skill rot due to AI use is real (at least for me). I am finding it very hard to write code manually now. The struggle to type by hand is mostly psychological. Like trying to wash dish by hands when you’ve gotten used to dishwasher and it working well, or driving manual after driving automatic. These analogies are from people on podcasts, and somewhat true. AI is mostly convenience driven programming.
  • This week I didn’t read anything carefully.

Weekly Notes 2026/20

  • No rain this week either! And the raw mangoes that I plucked last week are still sitting pretty in basket.
  • [jj](https://steveklabnik.github.io/jujutsu-tutorial/) promises to be a simpler git. I played with it this week but I still don’t get it. I like what they are selling though!
  • At work, I got my first MR merged into the codebase! Totally hand-written code, AI was used for on-boarding and rubber-ducking.
  • I vibe-coded a moderate complexity project — a PCB router like freerouter. I doesn’t work. The UI is excellent and it looks like that it almost work but it doesn’t. Now every prompt is like shouting into the void, things changes but were not fixed at all.
  • The successful vibe-coded projects and web-pages are working fine and looks OK as long as you don’t read the code carefully! I usually don’t notice big issues when skimming but as I soon as I try to understand the code, …!
  • I am going to write write most of the code by hand since it is quite possible at my new job where the codebase is managed by folks that are older and more conservative than me. Each MR goes through 5 to 6 reviews and it is expected that I understand every bit of it. So far, I am not convinced that I can “understand” a AI written code by reading it faster than writing it myself.
  • I love that I can treat AI an average senior developer who is always available to answer anything about the codebase and never judge you. Moreover, you are not scared of asking the dumbest possible question. It can also be used to learn patterns in the code-vase without mastering git grep and other search tools. And get a decent review of your MR.
  • Another good use case: it can copy-edit your first ‘vomit’ draft. Please write you own text. Then ask AI to copy-edit your brain vomit. DO NOT violate the first principle of writing — spend more time writing a text than others are expected to spend reading it. AI can also be used to rewrite your text for different type of users, e.g., add a “KT” focused post for fellow maintainers that highlight “how the code-base story is changing with this MR” (don’t use this exact phrasing in your AGENTS.md).

Reading list

Weekly Notes 2026/19

  • No rain this week either!
  • At work, my week was spent learning codebase and getting access. I finally have required access. I am dealing with a very large Rust codebase which is going through architectural refactor. Interesting times ahead.
    • After working with claude for a month, copilot feels like a little under-performer. Good thing is that I can avoid using AI agent at job if I want to. copilot could not even do a rebase with main!
  • I’ve been learning a bit about investments e.g. PPF, SSY and other fixed rate schemes. HDFC bank keep updating its app. New iteration has more pixel porn, and more stupid notifications over functionality and it requires too much resource. Fortunately, I’ve to use it occasionally. BHIM upi app is also slow and mild mannered as late Mr. Atal Bihari Bajpayee.
  • I plucked a few raw mangoes from the tree outside. Perhaps make some pickle?!

Reading list

  • Why Async Rust is a great post on, well, “why async rust”. It covers a bit of history as well, and talks about the design choices.
  • Zero-cost futures in Rust — why golang like “green threads” were not chosen for Rust. Some interesting bits from the post.
    Things really start getting interesting with futures when you combine them. There are endless ways of doing so, e.g.:
    • Sequential composition: f.and_then(|val| some_new_future(val)). Gives you a future that executes the future f, takes the val it produces to build another future some_new_future(val), and then executes that future.
    • Mapping: f.map(|val| some_new_value(val)). Gives you a future that executes the future f and yields the result of some_new_value(val).
    • Joining: f.join(g). Gives you a future that executes the futures f and g in parallel, and completes when both of them are complete, returning both of their values.
    • Selecting: f.select(g). Gives you a future that executes the futures f and g in parallel, and completes when one of them is complete, returning its value and the other future. (Want to add a timeout to any future? Just do a select of that future and a timeout future!)

Weekly Notes 2026/18

  • Two mild shower this week! Enough to clean my car and trees but not enough to clean roads. Still waiting for a proper rain.
  • I’ve to tweak my working setup quite a bit this week. I am working from home at my current role. I don’t/can’t use work laptop for personal stuff. I bought a KVM switch to share the keyboard, a few peripheral devices and screen with both work and home computer. It worked almost flawlessly. On macos, you may have to ensure that KVM is powered either via one of peripheral or via dedicated usb-c cable!
  • I also got a basic Yubi key (finally). I’ve using bitwarden and Zoho Vault my password manager. I prefer Zoho Vault since I can easily afford its paid plan. Zoho Vault doesn’t do well with Firefox profiles. This key is working fine except for GitHub which is refusing to save passkey to this key! Not sure why!
  • I’ve been thinking what side project to do this month. The AI has taken all the fun out of writing code. I hope this is temporary else I am in for a tough time. There hardly any other thing that I enjoy more than writing code with my clothes on. Well, hiking, cycling and cooking are fun but I can’t do them whole day!
  • I’ve been feeling a little low on energy for past few moths. Finally talked to a doctor. Lets see what comes out of my blood tests.
  • The income tax portal still not open for filing ITR. It says it will open “soon” but doesn’t specify dates! Some Reddit post claims that it will open by June 1, 2026! Though I find income tax dept websites and UPI infrastructure to be world class, they can be a little better at communicating changes.

Reading list

Visualization of ‘futurelock’

Async rust has a few parts that doesn’t feel ‘rusty’ at all. Rust is pretty good at “forcing” local reasoning but async cancellation (drop of Future etc.) leads to non-local reasoning which leads to hard to follow sequence of events that leads to subtle bugs. I recently learnt about futurelock from this excellent blog post.

The RFD (Request For Discussion) from Oxide that describe futurelock (https://rfd.shared.oxide.computer/rfd/0609) is easy to read by an intermediate Rust programmer. Reading this RFD made me a little bit nervous about async which I though I knew decently well.

I created this diagram that summarizes the sequence of events in the RFD that eventually leads to the deadlock/futurelock. You can refer to this diagram when re-reading the RFD. It helps a lot.

I also dug a little deeper into the mechanism of Mutex waking up the relevant tasks when it is unlocked. In the past, I’ve written state machines with callbacks and I think about async in state-machine terms. Future and Waker works together to implment state-machine with callback.

Here is another diagram which shows how Waker is used to implement callback like mechanism for the example in the RFD.

Weekly Notes 2026/17

  • I spent this week on-boarding at Toyota Connected India (TCIN) Bangalore office. At TCIN, you are expected to spend 5 days a month in office, either in one go or spread across entire month e.g. 1 day a week. My team prefer to gather in Bangalore office for a week and this was the week. So I went to office all 5 days to spend face-time with each of them even when most on-boarding call was from Chennai office.
  • The on-boarding week is relaxed but packed: meetings with HR, Admin, Finance, Legal etc. Each of them spent approximately an hour with me. Also at least one meeting per day with my team-mates on KT and codebase. I also get to see the hardware that runs Toyota dashboard.
    • TCIN office also has lunch inside the office and that solves a lot of problems for me. I can leave early to avoid traffic without having breakfast and have a light breakfast in office.
    • My experience at TCIN is pleasantly different than my last on-boarding at Veeam where I was mostly on my own to figure things out! I didn’t even know I had an HR at Veeam, he didn’t meet!
  • Ookie switched to a new school this week which has better activities and communication patterns.
  • Rains are still absent and temperature is soaring in Bengaluru. I hope mangoes will be sweater! Every year, in this month, I read about Bengaluru climate and weather and then forget all about it later. What causes rains in April? Returning Monsoon timelines?

Weekly Notes 2026/16

  • Very dry week. No sign of rain. The temperature is high and there is no forecast of rain either. I am hoping for next week to be bit cooler.
  • I gave a talk at a student club at APU.
  • I am joining Toyota Connected India next week. Pretty excited about writing Rust in safety critical systems.
  • I am getting a better grip on AI tools. I am still conflicted if I should continue to use them or go back to good old ways. Lets wait for a few more weeks.

Reading List

Talk at a student club at APU: “You need to give up some convenience to be safer online”

Last Wednesday, April 15, 2026, I gave an informal talk at Azim Premji University (Bengaluru) on online safety to a bunch of undergraduate students from liberal arts, humanities and social science departments (Computing Club).

Its been over 4 years since I’ve given any talk. I was terribly out of shape and practice. I made too many slides for a 45 minutes talk and took more than 60 minutes to finish it!

It wasn’t bad but could have been much better had I practiced it for a day or two. Or I should have kept the content dense and focused more on keeping it interactive which is always a good idea with younger audience.

The audience were undergrads so they acted in usual and expected ways. A few were interested or at least sitting and listening politely. Some were there for reasons unknowns and doing their own things. A few were napping as well :-).

It took me 2 hours to travel to the university via cab. I get to meet my classmate from doctoral days :-).

I used Claude to make images using tikz and copy edit the slides.