Blog Posts

Thoughts on software development, architecture, and technology

LangGraph patterns and conventions for building agentic systems

Patterns and conventions I picked up building agent systems with LangGraph, covering pure transformations, state management, and common anti-patterns to avoid.

12 minutes read

Reducing path drift in agentic systems with dynamic Few-shot injection

A practical feedback loop that turns validated agent runs into dynamic, query-relevant few-shot examples to make agentic workflows more predictable.

10 minutes read

Understanding Google's A2A Protocol: Beyond Traditional HTTP

Explore how Google's Agent-to-Agent protocol revolutionizes AI communication with task-based models, rich events, and persistent connections—solving HTTP's limitations for complex AI interactions.

8 minutes read

Understanding Autogen's Distributed agent runtime implementation.

A deep dive into the GRPC-based architecture that powers seamless agent coordination and communication in Autogen.

14 minutes read

OpenAI's Realtime API - Intro and Key Learnings

Worked on a personal digital assistant using the Realtime API from Azure OpenAI. Here are some key learnings and insights from the experience.

12 minutes read

View your Google timeline information on the Web in 2025

Learn how to view your Google Maps timeline and places information on the web.

4 minutes read

Auto function calling with GPT models using Semantic Kernel

Writeup on a sample application that demonstrates how to automatically call functions using GPT models and Semantic Kernel. This notebook

10 minutes read

Quota management for DallE API using APIM

This article explores how enterprises can use Azure API Management to implement usage limits and quotas for the DALL-E API, ensuring cost-effective and controlled access to OpenAI's image generation capabilities.

8 minutes read

ONDC - India's Digital Commerce Revolution

Drawing upon insights from a recent presentation, I examine ONDC's potential to bridge the digital divide, its network-centric model, and the collaborative push towards a more inclusive digital marketplace.

15 minutes read

Autogen - Make your agents to collaborate

Autogen Framework simplifies the construction of complex applications by enabling customizable conversational agents that operate smoothly together to carry out tasks efficiently.

7 minutes read

Langchain for LLM application development

This is a personal notes from the course Langchain for LLM application development. This one of the short courses offered by the Deeplearning.ai. Used Azure OpenAI for the workbooks, instead of OpenAI.

5 minutes read

Multi architecture builds of Docker images

It is possible to build a docker image for multiple architectures using the same Dockerfile. In this article, will be explaining why you need to do this, how to do it and where to use it.

4 minutes read

Huge docker raw file on mac

Docker desktop on Mac creates a huge file (`docker.raw`) in it's data folder. I spent some time in unravelling the mystery, so documenting for future me.

3 minutes read

My productivity hacks - gitconfig

Summarizing some of the configuration that i like and follow in managing my git repositories.

5 minutes read

Reflections on building an Enterprise POS

I was part of a team that built and rolled out POS machines to around 1000 stores. Sharing some of my key take aways from that engagement.

7 minutes read

Experiences with Strangler fig approach using Change Data Capture

Summarizing my experiences in one of my re-platforming project. Keeping the monolith application in tact, we had to slice out a new service and keep the data in sync.

10 minutes read

What I did to become AWS certified 😎

My experiences and learnings when i worked on to get my AWS certification. I recently passed the AWS SAA certification. Penned down my learnings and experiences along the way

4 minutes read

Micro-services Patterns. Saga - to music or to dance?

Saga pattern is useful to trace a distributed transaction across various micro-services. This post summarizes the 2 patterns of saga and explains a event storming for a sample use-case

4 minutes read

Slicing Microservices

Some ideas to go about in designing micro-services. How to slice them and some general conventions

5 minutes read

Scaling Applications Using Micro-Frontends

When starting a project with Micro-Frontends, here are some typical problem that require solving and some possible solutions.

10 minutes read

ACE with React

Atlassian connect express comes by default with handlebars, this post describes how to make it work with a SPA.

4 minutes read

Centralized error handling in Express applications.

Handling exceptions in an express application, responding back with standard error response.

4 minutes read

Logging in Golang projects

A log abstraction in go-lang projects, that can then be used to log common information. This also hides the log library inclusion, making it easier to swap out the library for a different one.

5 minutes read

Add Redux custom middleware dynamically

Redux provides options to add behaviour through middlewares. Here is an example of dynamically adding middleware to the store.

5 minutes read

Start nginx when upstream is unavailable

nginx will not start if one of the defined upstreams is not available. Here is a workaround to get through with those situations.

4 minutes read

Dealing with SOAP in clojure

Dealing with SOAP in clojure is not very straight-forward due to the lack of framework support. This post explains how to perform SOAP call using basic Java libraries.

4 minutes read

Asynchronous calls in React component

React documentation suggests to use componentDidMount for async calls. Here is the explanation of why you shouldn't do in constructor or in componentWillMount.

2 minutes read

Flyway migrations in lein clojure

Integrating flyway migrations to compojure apps. Flyway is a popular Java based database migration tool. This post describes about integrating flyway seamlessly with lein compojure ring stack in clojure.

3 minutes read

Card slider using CSS Keyframes

Slider animation using css keyframes

2 minutes read

Storing a function in the Redux store

Redux state can be very useful to share data across the application. This post is about storing a function inside the redux store.

2 minutes read

Mock toLocaleString in Jest

Found an issue while testing toLocaleString and other related JS prototype function. Described here is the way to mock them.

2 minutes read

Spring security session timeouts

Setup session timeouts in spring security. This will explain how to setup the idle timeout and also the max timeout for separate sessions.

2 minutes read

Angular resource and http interceptor

This post describe about the use of angular resource library along with http interceptor.

3 minutes read

Post browser logs to server in an Angular app

This post describes about posting all the browser errors in an angular application to an endpoint. This will be helpful to analyse or debug issues.

2 minutes read

Expanding Amazon EBS Volume in a EC2 instance.

Even after increasing the size of the EBS volume in the AWS console, the actual size of the EBS wasn't increased. Have to follow the following steps to grow the EBS size.

2 minutes read

Set deployed Git revision using Capistrano 3

While deploying Rails application using Capistrano 3, recording the current deployed git revision to be used by Rails applicaiton.

2 minutes read

UrlGenerationError after upgrading to Rails 4.2

On a REST model new action, form_for tag breaks and raises UrlGenerationError after upgrading to Rails 4.2

2 minutes read

Integrating CKEditor with Rails asset pipeline.

Integrating CKEditor plugin into rails asset pipeline.

3 minutes read

Deploying Jekyll site for Github pages through rake script

Deploying jekyll blog or site for Github pages using rake script.

3 minutes read

Integrating Netflix Hystrix to a Spring Application

Hystrix is a latency and fault-tolerance library from Netflix. This post describes how to integrate it with Spring Aspects to make the implementation simpler.

3 minutes read

Testing APIary using Dredd.

Test API blueprint mardown files by simply hosting them on GitHub and setting up a pipeline in Travis CI.

2 minutes read

Making HTTPS call using Apache HttpClient.

Perform Https calls from server using Apache HttpClient library.

3 minutes read

Gradle, Spring MVC App.

A skeleton sample app demostrating gradle set up with Spring MVC along with basic logging and deployment in tomcat environment.

3 minutes read

Cross Site HTTP(S) Requests - CORS Issue

Some tried out solutions for the cross site request issue. Should be a good place to look out for which solution to be used under a circumstance.

3 minutes read

Re running testNG failed times n times.

Steps to set up re-runn of testNG failed tests for n number of times, using ant task.

3 minutes read

Wiring Jasmine 2.0 with Phantom JS

This post describes the steps that are necessary for to wire Jasmine 2.0 test suites with phantomJS.

3 minutes read

UTC time in Android device. With NTP server sync.

Using NTP time in the anroid application. This involves calling the SNTP server and also converting the time to UTC format.

4 minutes read

What's new in Apple Passbook iOS7

New features in passbook application in the iOS7.

3 minutes read

Setting up Cucumber-jvm

Setting up cucumber BDD framework in your Java project.

3 minutes read

Link your Sublime Text 2 instances with Dropbox

Sublime text has a key mapping file where it stores all the shortcut. Here is a way to share your preferences and key maps across two machines using a dropbox account.

3 minutes read

Scribblings on Socket.io

When i tried out socket.io for the first time, it was quite an interesting learning of few new paradigms and techniques.

3 minutes read

Hamcrest conflict in jUnit.

Hamcrest matchers are used in jUnit for assertions. There is a weird problem with the version conflict between Hamcrest and jUnit. The solution is been discussed here.

2 minutes read

Handle MaxUpload SizeExceededException in Spring

Handling MaxUploadExceedException in Ajax call with Spring controllers. This exception occurs when the file size greate than what is expected is been uploaded by the user.

2 minutes read

Make your NTFS drive writable under Mac Lion

Make your NTFS drive writabe under mac lion.

3 minutes read

Slot machine effect using jQuery

A cool widget that looks like a slot machine. Small piece of code and a nice trick to animate the numbers to achieve a slot machine effect.

2 minutes read

Writing Custom Tags for JSTLs

Writing a custom JSTL tag and integrating with the application. A sample code to do the same.

2 minutes read

Reloading an activity in Android

Refreshing or reloading activity in Android application. This might be important in the case of refreshing data in the activity.

2 minutes read

Configuring Context name for an application

Setting up a different context name than the WAR name for the Java application deployed in Tomcat server.

2 minutes read

Primary-key @OneToOne mapping in Hibernate

Joining two tables using Primary keys in Hibernate.

2 minutes read

Age Of Empires (AOE) Fix in Windows 7

Age of Empires (a popular strategy game) has got some problems with color rendering while played in Window 7. A quick harmless solution for that is here.

1 minute read

Add EditText(s) dynamically and retrieve values - Android

Adding multiple edit text boxes to the android application dynamically through code and controlling them.

4 minutes read

Test your Controller's ModelAttribute methods.

Injecting a ModelAttribute to the controller's method in Unit tests using Spring and jUnit.

2 minutes read

Hadoop Version in AWS Map Reduce

Performing Map Reduce operation using Amazon AWS interface.

2 minutes read

SAX parser characters() method.

Implementing `characters()` method for SAX parsing huge files. With a sample code in Java

3 minutes read

FTP Client (Ubuntu)

Download multiple files from authenticated FTP server in Ubuntu.

2 minutes read

Stop halting at Assertions

Generally assertions cause the test to halt. But sometimes we need to continue further and evaluate all the asserts and expect a comprehensive report of all the asserts.

2 minutes read

Printing multiple divs in a page.

When an user tries to print a HTML page, allow multiple divs from the page to appear in the print and not the entire page. Not using media CSS query

2 minutes read

Install Inconsolata.ttf in Ubuntu(Jaunty).

Inconsolata is dev friendly font used by devs for their code. This post is about installing Inconsolata tru type in Ubuntu - Jaunty.

3 minutes read

Test SMTP server

How can you set up an SMTP server in your local environment for testing purpose.

1 minute read

First Post

An introductory post to start off my blog.

1 minute read