Tuesday
December 30
Reading diary
Notes from 2025. 137 entries.
Tuesday
December 30
Monday
December 29
Sunday
December 28
Saturday
December 27
Friday
December 26
Thursday
December 25
An agent evaluates its own output and uses that feedback to refine its response iteratively. This pattern is also known as Evaluator-Optimizer and uses a self-correction loop
Tuesday
December 23
Monday
December 22
Short-term Memory (Redis): Like working memory, it holds the current conversation context. Fast access, automatic expiration Long-term Memory (Vector Store): Persistent knowledge that grows over time. Important patterns and learnings are embedded and searchable
Friday
December 19
Thursday
December 11
Tuesday
December 9
Monday
December 8
Sunday
December 7
git rebase --onto by Dinesh PandiyanSaturday
December 6
Friday
December 5
The task is genuinely complete, or
The token budget is exhausted
Thursday
December 4
Wednesday
December 3
Copying large objects like lists, dictionaries, or arrays can be costly in both time and memory. Each copy creates a new object in memory, which can lead to significant overhead, especially when working with large datasets or within tight loops.
For numerical computations, Python’s math module provides functions that are implemented in C, offering better performance and precision than equivalent operations written in pure Python.
While Python’s exception handling is powerful and clean for managing unexpected behavior, it’s not designed for high-frequency use inside performance-critical loops. Raising and catching exceptions involves stack unwinding and context switching, which are relatively expensive operations
When working with sorted lists, using linear search or manual insertion logic can be inefficient – especially as the list grows. Python’s bisect module provides fast, efficient tools for maintaining sorted order using binary search.
Calling the same function multiple times inside a loop – especially if the function is expensive or produces the same result each time – can lead to unnecessary overhead. Even relatively fast functions can accumulate significant cost when called repeatedly in large loops.
Tuesday
December 2
Monday
December 1
Sunday
November 30
Monday
November 24
Sunday
November 23
Saturday
November 22
Friday
November 21
Wednesday
November 19
Tuesday
November 18
Monday
November 17
Sunday
November 16
Friday
November 14
Sunday
November 9
Friday
October 31
Tuesday
October 28
Monday
October 27
Thursday
October 23
Wednesday
October 22
Tuesday
October 21
Monday
October 20
Sunday
October 19
Monday
October 13
Sunday
October 12
Saturday
October 11
Wednesday
October 8
Tuesday
October 7
Sunday
October 5
Thursday
October 2
Wednesday
October 1
Tuesday
September 30
Sunday
September 28
Sunday
September 21
Saturday
September 20
Friday
September 19
Thursday
September 18
Wednesday
September 17
Tuesday
September 16
Monday
September 15
Uses O(n) operations to add new metadata to an existing table - where it should have used O(1) or O(log(n)) Cannot handle cross table commits Relies on file formats that are bloated and ineffective Tries to be a “file only” format, but still needs a database to operate Does not handle fragmentation and metadata bloat and remains silent about the real complexities of that problem Does not handle row level security or security at all for that matter Fundamentally does not scale - because it uses a bad, optimistic concurrency model Is entirely unfit for trickle feeding of data - a hallmark feature of large Data Lakes Moves an extraordinary amount of complexity (and trust) to the client talking to it Makes proper caching and query planning (the hallmarks of good analytics) very difficult, if not impossible Has all the hallmarks of something being designed by committee, completely lacking elegance
Saturday
September 13
Friday
September 12
Thursday
September 11
Sunday
August 31
Monday
August 18
Friday
July 25
Wednesday
July 23
Tuesday
July 15
Monday
July 14
Sunday
July 13
Saturday
July 12
Friday
July 11
Thursday
July 10
Tuesday
July 8
Sunday
July 6
Friday
July 4
Tuesday
July 1
Saturday
June 28
Friday
June 27
Wednesday
June 25
Friday
June 20
Wednesday
June 18
Monday
June 16
Saturday
June 14
Wednesday
June 4
Thursday
May 29
Tuesday
May 27
Sunday
May 25
Saturday
May 24
Friday
May 23
Thursday
May 22
Wednesday
May 21
Wednesday
May 14
Friday
May 9
Thursday
May 8
Wednesday
May 7
Tuesday
May 6
Sunday
May 4
Saturday
April 19
Wednesday
April 16
Sunday
April 13
Saturday
April 12
Thursday
April 10
Wednesday
April 9
Tuesday
April 8
Start with high human involvement: In the early stages, have domain experts evaluate a significant percentage of outputs. Study alignment patterns: Rather than automating evaluation, focus on understanding where automated evaluations align with human judgment and where they diverge. This helps you identify which types of cases need more careful human attention. Use strategic sampling: Rather than evaluating every output, use statistical techniques to sample outputs that provide the most information, particularly focusing on areas where alignment is weakest. Maintain regular calibration: Even as you scale, continue to compare automated evaluations against human judgment regularly, using these comparisons to refine your understanding of when to trust automated evaluations.
Monday
April 7
Your manager isn’t a mind reader.
You can’t expect guidance if you don’t come with a direction.
Your growth is a shared effort, but it starts with you.
Sunday
April 6
Thursday
April 3
Rubber duck debugging like a pro: I can often solve my problem by drafting a forum post without posting it. The effort required to articulate the salient details of the system and the problem, without looking dumb, is higher than the effort I have usually put in at the point I decide I need help. Corollary: making a forum post without sounding like I haven’t done my homework also tends to put me over my time/energy budget for solving a seemingly-trivial problem.
Behold the trail of crumbs: I find that writing and diagramming, while helpful for many troubleshooting projects, are essential for multi-session troubleshooting projects. I overestimate how much I will remember about the context, as well as how soon I will get around to continuing the project. A troubleshooting notes file, no matter how obvious or incomplete the information in it seems at the time I write it, leaves a trail of crumbs that I can follow next time. (I have often repeated, verbatim, an entire troubleshooting process, found the problem — and then remembered I troubleshot the exact system, and arrived at the same conclusion, years ago; but there was some hiccup, and I failed to order or install the new part.)
Sunday
March 30
Wednesday
March 26
Monday
March 24
Sunday
March 23
Hardware support for low precision data types Design for asynchronous transfers from day 1 Dedicated hardware for tensor aware memory transfers Replace your cache hierarchy with an outsized scratchpad for AI inference For a single accelerator, turn the memory bandwidth up to 11 Design for scale-out from day 1 Dedicated communication hardware should complement compute hardware
Saturday
March 22
Wednesday
March 19
Sunday
March 16
Saturday
March 15
Sunday
March 9
Hash partitioning (based on column values) Even partitioning (by files or row counts) Random shuffle partitioning
Tuesday
March 4
Monday
March 3
Monday
February 24
Sunday
February 23
Examples of this pitfall:
Use an agentic framework when direct API calls work. Agonize over what vector database to use when a simple term-based retrieval solution (that doesn’t require a vectordb) works. Insist on finetuning when prompting works. Use semantic caching.
To automatically evaluate AI applications, many teams opt for the AI-as-a-judge (also called LLM-as-a-judge) approach — using AI models to evaluate AI outputs. A common pitfall is forgoing human evaluation to rely entirely on AI judges.
Saturday
February 22
Sunday
February 16
Saturday
February 15
Friday
February 14
Sunday
February 9
Saturday
February 8
Friday
February 7
Monday
January 27
Saturday
January 25
Saturday
January 18
Sunday
January 12
Saturday
January 11
Thursday
January 9
Wednesday
January 8
Tuesday
January 7
Monday
January 6
Sunday
January 5
Saturday
January 4
Friday
January 3
Thursday
January 2
Wednesday
January 1