Here’s a scenario that plays out in classrooms every day. A visually impaired student finishes a written exam — on paper, in Braille, the way they’ve been taught. The teacher collects it. And then… stares at it. Because the teacher can’t read Braille. 
 This isn’t some edge case. Most teachers of visually impaired students cannot read Braille. They need a way to…
I was building a RAG pipeline to classify AI systems under the EU AI Act — feed in a plain-English description of your AI system, get back the risk tier, the relevant articles, and a compliance checklist with citations. Classification was working perfectly. All 8 test scenarios nailed the correct risk tier. 
 But the confidence scores were stuck at 36% . 
 The problem wasn’t the LLM.…
Remember the days of boolean search operators? The frustrating experience of trying to find that one document by guessing the exact keywords it might contain? For decades, our ability to search through documents has been limited by keyword matching—a primitive approach that fails to capture the richness of human language and intent. 
 Traditional search technology has evolved through several…
Have you ever been stuck in a bank line where everyone needs to visit the same teller? Frustrating, right? Now imagine a bank where every customer could magically make their transaction without waiting for others to finish. Sounds like a dream? Well, that’s exactly what lock-free and wait-free programming aims to achieve in the world of concurrent computing! 
 The Concurrent Programming…
Model Context Protocol (MCP) is rapidly transforming how we interact with computers by enabling natural language instructions to handle complex tasks. As we stand at the beginning of this revolution, we’re witnessing fast-paced development in MCP tools and components. 
 While a detailed introduction to MCP was covered in our previous post, here’s a quick refresher: MCP servers…
Imagine having a brilliant personal assistant who’s incredibly smart but can only communicate through a mailbox - they can receive your letters and write back, but can’t directly interact with your computer, check your calendar, or access your files. That’s essentially the situation with today’s Large Language Models (LLMs) like Claude or GPT-4. Sure, they’re…
Ever tried moving your entire apartment through a drinking straw? That’s basically what building ETL (Extract, Transform, Load) systems feels like sometimes. You’ve got terabytes of data that need to go from Point A to Point B, transform from one shape to another along the way, and arrive without losing a single byte. Oh, and it needs to happen yesterday. 
 As a backend engineer…
You know that uneasy feeling when your car makes a noise it’s definitely not supposed to make? That moment when you turn down the radio, tilt your head, and think, “Maybe if I ignore it, it’ll go away”? Well, your legacy system is making those noises right now, and trust me – it won’t go away by itself. 
 I’ve spent the last 15 years listening to legacy…

 Picture this: You’re standing in line at your favorite coffee shop. You order a complex drink (let’s call it the “Distributed Mocha Supreme”), and the barista starts a carefully choreographed dance between the espresso machine, milk steamer, and various syrup stations. Everything’s going great until—oops!—they’re out of whipped cream. Now what? Do they…

 Remember when you first dipped your toes into the world of concurrent programming? If you’re like me, it probably felt like trying to juggle while riding a unicycle. But here’s the thing: in today’s tech landscape, mastering concurrency isn’t just a cool party trick—it’s becoming as essential as knowing how to loop. 
 Enter Go (or Golang, if you’re…
Picture this: You’re a sales manager trying to stay on top of your team’s performance. Instead of navigating through complex menus and dashboards, you simply turn to your computer and say, “Get me the list of all new leads for the last month.” Instantly, your screen displays a neatly organized list of every new lead your team has generated, complete with contact…
Demis Hassabis is a name you might not have heard before, but trust me, you will. This guy is the real deal when it comes to artificial intelligence (AI). He’s the mastermind behind DeepMind, a company that’s been making waves in the AI world for years now. And recently, he gave a talk that blew my mind. 
 
 
 

 Now, I’ve been around the block a few times…
LLMs are like enormous digital brains that have read a vast amount of text from the internet—books, articles, websites, and more. By doing so, they learn how to predict what word comes next in a sentence, which in turn helps them write essays, summarize texts, and even create poetry. However, despite their impressiveness in handling language, these models often struggled with tasks that required…
In another post, Simple Query Parser we had built a simple query parser using Participle - a parser builder for go lang.
 Parsing expression grammar (PEG) is a type of grammar. The advantage of PEG is that it doesn’t tolerate ambiguous grammar definitions and so is better in error reporting. 
 The go language port of PEG is pigeon 
The popular Javascript port of PEG is pegjs . A…
Why will someone need a Javascript Parser, written natively in Go? Isn’t it a crazy, Architecture Astronauts solution that is looking for a problem? Not necessarily. 
 There was a time when applications allowed some kind of scripting to extend them and to make them fit into any workflow. For example VBScript for Microsoft office products. However, very few Web applications have the…
Mini languages are great. Makes it easy to express what you want in a concise manner. Sometimes a complex UI can be replaced with a mini-language. Some time back, google used to support a simple language in the search queries. For example: “some phrase” +required -not_required . Alas! they stopped it and Google search is less cool ever since. I would count regular expressions also as a…
It is a common requirement to load a nested Javascript class from a JSON file. Sometimes you want to send the JSON across a network and load it back to a Javascript class. 
 For better clarity, let us understand the difference between a Javascript class instance and an Object. Take this class for example: 
 This is a class that draws a rectangle on the canvas 
 class Rectangle { 
…
This is the second part of the series on setting up a cluster using Terraform and Ansible. In the first part , we had set up the bare cluster Virtual Machines.
The set up included a virtual private network, a bastion server, and a separately configurable cluster of nodes. 
 The nodes are ready but not software or configuration is done so far. In the next step, we will provision all the…
Infrastructure as code has a great benefit - you can make a cluster available in a few minutes. Then, switch the configuration with a few updates to the configuration. If you ever had long hours staring at blinking LEDs while it installed from a stack of CDs, you will know what a relief this is. 
 Terraform makes it possible to declaratively create the cloud infrastructure, supports all major…
Goroutines can run tasks concurrently. However, for most practical scenarios, you have to keep track of the status of those tasks. In case the process exited, killed, or power cycled, a mechanism should restart the unfinished tasks.
For example, imagine you moved order status emailing to a goroutine. If the process was terminated or restarted we have no way to keep track of the tasks that were…
BadgerDB is an embeddable key-value store written in Go. It is a persistent store. 
 In this article, we build a wrapper around badgerDB. The purpose of this wrapper is to make it simple to save simple values to the DB in “virtual tables”. The concept is an adaptation from the Sett project. Much of the code -especially the unit tests - are changed though. 
 Usage 
 import (…
Hugo is a fast static website builder written in Go language. The advantage of static sites is that the site can be hosted easily since it does not require any server-side scripting like PHP, Ruby, or a database like MySql.
Static sites are very fast since there is very little server-side processing involved. Most importantly, there are several platforms where you can host your website for…
Prasanth Janardhanan 
 15+ years of hands-on software product development experience. Certified Professional Scrum Product Owner. Hands-on full stack coding experience - Go (golang), Typescript, React. Experience working with customers gathering user stories, planning product roadmaps, and delivering value following agile methods. 
 Work Experience 
 Simfatic Solutions 
…
I’m Prasanth Janardhanan — AI Developer, LLM Systems Architect, and ML Researcher with 15+ years of engineering experience. I specialise in production LLM systems, agentic RAG pipelines, and AI agent infrastructure. 
 Projects 
 gomcpgo — An open-source Go framework for building MCP (Model Context Protocol) servers. MCP is now a Linux Foundation standard under the Agentic AI…
EU AI Act Compliance Navigator 
 An agentic RAG system that helps developers and product teams determine the regulatory status of their AI system under the EU AI Act. Given a plain-English description of an AI system, it classifies the risk tier (Prohibited / High-Risk / Limited-Risk / Minimal-Risk), identifies the specific Articles and Annexes that apply, and generates a prioritized,…