Sai Umesh
Sai Umesh

I’m Sai Umesh, a software engineer based in India. Working as a DevOps engineer.

Recently Published

View All
8 min read

In the last post, we built a Retrieval-Augmented Generation (RAG) system using Ollama, OpenWebUI, AI models, and vector databases. We focused on how to fetch relevant context for a query and get a meaningful response using this pipeline.

5 min read

It’s been a few months since I started working on Retrieval-Augmented Generation (RAG) systems, and it’s been one of the most rewarding learning curves in recent memory. I’ve spent that time experimenting, breaking things, and figuring out what it really takes to build a RAG pipeline that’s reliable, scalable, and production-worthy.

11 min read

When I first started exploring AI, I kept seeing words like RAG, embeddings, and vector databases. Everyone seemed to throw these terms around as if everyone magically understood them. The tutorials I found would show a simple code snippet, maybe a quick chatbot demo, and call it a day.

17 min read

TypeScript is one of my favorite programming languages. It gave JavaScript developers a way to write statically typed code with compile time type checking which is both its best and, sometimes, not so great feature. But wouldn’t it be awesome if we could have types that are not only checked at compile time but also at runtime? Enter Zod. I also recommend this awesome extension for VSCode for TypeScript pretty-ts-errors

9 min read

In this article, I’ll walk you through some of the coolest TypeScript features like conditional types, generic functions, and how to extract keys from arrays and enums. These techniques can really level up your code by making it more flexible and safer to use. You’ll see how TypeScript has your back with catching errors and adapting function inputs based on what you pass in. We’ll break it down with simple, practical examples, showing you how to avoid those pesky mistakes and write cleaner, more reliable code!