On evaluating LLMs (WIP)

If you’ve worked with LLMs for even a short while, by now you’re aware of a few things - LLMs are extremely powerful in generating text and fetching information about a vast variety of topics LLMs can perform computations and help you analyse data if armed with the right tools LLMs are not yet completely 100% reliable. This last point is where the building that you’re painstakingly constructing can crumble like a deck of cards very rapidly. And this is where LLM evaluations come in. ...

February 27, 2026 · 1 min · Abhiram R

Vibecoding a status dashboard

I work in the engineering division of a supply chain company and our development process, as most companies do, involves the setting up of our SaaS platform locally. This means that there are a lot of dependent services that need to be run first that support the overall execution of the platform. For e.g. - Our platform’s stack requires SQL Server, Solr, Redis, Postgres, RabbitMQ, MongoDB as core services to be running first. Once these are all running and available, a service called WebAPI can be run that makes use of some of the above to run as well. Following this, there are a few more microservices that need to run, but that need not be part of this article since the underlying concept will already come through with the above being demonstrated. ...

May 8, 2025 · 4 min · Abhiram R

Napkin Math-ing Reddit

I’ve done some Napkin Math - an essential part of system design - in my different jobs in the last decade but it’s been ad-hoc or purpose driven at that moment and I’ve not thought about it much . Today, I came across a tweet from One2N and a rabbit hole of a blog by Simon Eskildsen after that and it made me want to consciously think about it for a few use cases if only to improve my engineering decisions. I’m sure I will get a lot of things wrong, but over time I hope to tune it to be right. ...

April 7, 2025 · 5 min · Abhiram R

How to make 3B1B videos using Claude and Manim

3 Blue 1 Brown is an amazing Youtube resource to learn Math and Physics concepts from! Manim is an opensource package created by them to help generate the animations they use to teach these concepts. In this article, I will create a similar video with the help of Claude and Manim! First, install miktex Then, in powershell, install ffmpeg : run choco install ffmpeg Create a new virtual environment and install manim and manimgl - uv pip install manim manimgl Use Claude to generate a manim program for a formula or something you want to demonstrate - E.g. : My Claude Example Create a program that you got out of claude - Manim Program for x-squared Execute it - manim -pql xsquared.py ExplainXSquared This results in this beautiful 3 Blue 1 Brown like video! - https://www.youtube.com/watch?v=5Ql_vAj0ZVs ...

March 15, 2025 · 1 min · Abhiram R

Streaming Real-Time AI Inference Results into MongoDB

I’m going to be presenting a talk at a Mongo DB User group meetup later today and I thought I’d write about it so that it would - serve as reading material for folks wanting to go through the content of my talk later let everyone else know what this is all about. Let me pre-emptively say, I don’t know why I chose this to be the “TITLE” of the talk. It is extremely dry. But the topic is actually a lot of fun! ...

February 28, 2025 · 6 min · Abhiram R

Neetcode For Fun - 1

Solving https://neetcode.io/problems/is-anagram . Started at 1:29 AM. Let’s think about this for a minute. A word ‘w1’ is an anagram of a word ‘w2’ if all the characters in w1 belong in w2. Duplicates included. So the simplest solution would be to go through every letter in w1 and then check if it is there in w2. That’s a O(n^2) complexity because to check against the second string, each letter would have to be compared against. Let’s code it up : ...

February 19, 2025 · 3 min · Abhiram R

Alias Creation in Windows Using Python

One thing I’ve missed in Windows post my switch from Linux is the ability to create aliases for commands. In Linux, you can create an alias for a command by adding the following line to your .bashrc or .bash_profile file - alias ll='ls -l' This would allow you to use ll instead of ls -l in your terminal. In Windows, you can create a similar alias by creating a batch file and adding it to your PATH environment variable. ...

February 17, 2025 · 2 min · Abhiram R

Focus mode - A "kutty" chrome extension

By now you’ve seen a lot of stuff being built using ChatGPT. A lot, Jerry. A LOT. I’ve built a few apps and extensions as well, but this is the first I’m writing about. Over the last 3-4 years, “building” software on any scale has seen quite a radical shift. Here’s an image to scale - So when I first tried to build a Chrome extension for a company hackathon in 2022, I took around 12 hours, pulling an all-nighter. I looked up documentation, Stack Overflow answers, sample blogs and trudged through the whole process - The way god intended it. And finally completed…something. The end result was something that did the job I wanted but it looked absolutely horrendous and I had to hand-wave over the UX because I had no time before the presentation. ...

January 29, 2025 · 4 min · Abhiram R

Azure Devops TIL

TIL about the importance of buildContext in Azure Devops Pipelines for a Docker@2 task. 😵 Kept breaking my head trying to copy files over to an image and it kept saying they weren’t found. Tried a hundred combinations of paths and folder structures. Finally after some github-repo-hunting and documentation reading (No, LLMs didn’t help) , turned out I was building a dockerfile two levels deeper from my root path and the context was set by default as the path where the Dockerfile was present. ...

January 22, 2025 · 1 min · Abhiram R

I want to learn Python -2

I’ve installed Python. Now what? If you can open CMD and when you execute python --version, you see Python 3.13.1 , it means your installation is successful. There are a Lot of syntaxes and operations to cover in Python and in programming in general. But I will consider some common operations in the real world and we will see what the programming construct for it is and what the corresponding Python commands are for it. ...

January 14, 2025 · 3 min · Abhiram R

I want to learn Python

This is one of the most common questions I get asked by people who are just starting out with Python. If you have no prior programming experience, how Do you start? Valid question. Let’s take it step by step. Most guides start with understanding the syntax of Python, the basic data types, control structures etc. Which is all well and good but I think the first thing you should do is to install Python on your system. ...

January 11, 2025 · 1 min · Abhiram R

import re

I was writing some tests for work today and I accidentally ended up using the re.match() function instead of re.search() function and I thought I’d write that as today’s mini-TIL. In a nutshell, re.match() checks for a match only at the beginning of the string, whereas re.search() checks for a match anywhere in the string. Here’s a quick example to illustrate the difference: import re string = "Was it a car or a cat I saw?" string2 = "Severus was impressed at Harry's Occlumency skills but he did not show it." # re.match() will return None print(re.match("cat", string)) # re.search() will return a match object print(re.search("cat", string)) # re.match() will return a match object print(re.match("Severus", string2)) # re.search() will return a match object print(re.search("Severus", string2)) Output - ...

January 11, 2025 · 2 min · Abhiram R

FrozenLists

I happened to see this package - FrozenList - get installed when i was installing a set of requirements for an environment for work. I’ve not yet dived deep into which package frozenlist was a dependency for. But I still wanted to see what it was and Googled it. Turns out it’s a package created to create a new data structure which is, well, a list that can be frozen. ...

January 7, 2025 · 2 min · Abhiram R

I want to run LLM Models locally. What do I do?

One of the most sought after things to learn right now is about how to set up your own local LLM server and how to use LLM models locally. With the arrival of some things like Ollama and LM Studio etc, it has become very easy. Ollama is an orchestrator that lets you serve up models locally, models like Llama 3.1, Qwen-2.5, Phi, whatever models you have on HuggingFace. These are available to be served up and many more. ...

January 3, 2025 · 3 min · Abhiram R

The Apache Airflow piece

Yesterday I learnt how to get Google News articles using Python - [[Read GoogleNews using Python]] The next piece I need for my planned workflow is running Airflow - locally - at first. Airflow is a platform for scheduling and executing workflows. To give an example, suppose I run a restaurant. If it’s not doing very well, you don’t really need a workflow, so one way to reduce work is to be unsuccessful 😀👀 But if I run it successfully and get a lot of orders on a daily basis, I would like to have a mechanism to process everything. Let’s say I have the following steps to be done - ...

November 23, 2024 · 2 min · Abhiram R

GoogleNews using Python

This article is part of something I’m building up to I wanted to find a way in which I can get news off of Google News programatically and something that doesn’t need to me be authenticated for it. I wondered if I should build a scraper for it, but thankfully, there’s a Python package already that does it - GoogleNews on Pypi I installed it in a new uv virtual environment using pip install googlenews and it was pretty easy to use . ...

November 22, 2024 · 2 min · Abhiram R

List comprehension tuples and obj equals

2 Quick TILs today - You cannot use a tuple in a list comprehension without params - The correct syntax is [(i,j) for i in a for j in b The usage of obj= within a formatted string during printing results in both the object’s name as well its value separated by an “=” being printed - In the imge below, a is a list as used earlier. Therefore - ...

November 21, 2024 · 1 min · Abhiram R

Timeline charts

I’m not feeling all too well but I didn’t want to break my streak of writing. So today I’m writing about a non-Python related topic - Timeline Charts. I was doing a profiling activity for work and I was scratching my head for a way to represent the info so as to explain it easily. Then I got to thinking, how does Google build all those charts to track page loads and API runtimes in Developer tools? ...

November 20, 2024 · 2 min · Abhiram R

Dataclasses

19th Nov 2024 I was trying to write an article on Dataclasses1 and I looked up an example on the official website2 Easy enough on the face of it, but it led me into quite a rabbit hole. A dataclass allows for the creation of “special methods” for a class when the annotation @dataclass is sighted. So if I have a class “Superhero” with the annotation : @dataclass class Superhero: """ A class of superheroes and properties about their appearance in Marvel movies """ name: str superpower: str appearances: int = 0 def beckon(self): print(f"{self.name} with the super power - {self.superpower} has appeared in Marvel movies {self.appearances} times") superhero = Superhero("Aquaman","Underwater breathing",2) superhero.beckon() It effectively means that : ...

November 19, 2024 · 3 min · Abhiram R

Class Methods

I was today years old when I learnt about how to use the classmethod decorator in Python. I’ve always thought of a class method as a method in a class - just intuitively. But there’s actually a decorator called “@classmethod”. Imagine you have a class C. A class method in this class would be defined as - class C: @classmethod def cl_method(cls): print(f"I'm in the class method {cls=}") The distinctive marks of a class method are : ...

November 17, 2024 · 3 min · Abhiram R