About
Backend Engineer passionate about building production-grade systems. Currently working on scalable microservices and building Learnify, a learning tool that turns any document or lecture video into an interactive, hallucination-free study companion. I specialise in backend development with Java and Spring Boot, cloud-native deployments, and AI-powered application development.
Contributions
Skills
Check out my latest work
I've worked on a wide range of projects, from scalable Spring Boot backend systems to GenAI-powered applications and full-stack platforms.
Learnify
A study assistant that turns any PDF or lecture video into an interactive tutor. Chat with your documents and auto-generate MCQ quizzes through a two-stage RAG pipeline: pgvector similarity search, then cross-encoder reranking, so every answer stays accurate and grounded at ~3 sec latency. Built as an async microservice system (API gateway, video and RAG workers on RabbitMQ) with Groq Whisper transcription in 99 languages, plus Google OAuth2 login with rotating JWT tokens.
DevHive
A real-time collaborative development workspace with a built-in code editor, video calling, and synchronized whiteboards. Sync Monaco Editor and whiteboard interactions across multiple users via WebSockets, while WebRTC enables peer-to-peer video collaboration and Redis Pub/Sub keeps changes fast and consistent across instances.
BookMyStay
Hotel booking backend with dynamic pricing via Decorator Pattern, cron-based inventory updates, JWT authentication, role-based authorization, Stripe payments, API rate limiting with Bucket4j, Flyway migrations, and monitoring via Spring Boot Actuator.
Thoughts, notes, and articles
I occasionally write about the things I'm building, the problems I run into, and what I'm learning along the way.
Why Your RAG Pipeline Doesn’t Give Grounded Answers (and How to Fix It)
Before you blame the LLM, look at the retrieval step before it. Your pipeline hands the model the top k chunks, but the most relevant chunk is not always inside those top k. Sometimes the real answer sits at rank 7 while you only pass 4. Sometimes a chunk that just talks about the topic beats the chunk that actually contains the answer. If the right chunk never reaches the LLM, no prompt can save you.In this blog, we will see how retrieval actually works, why it misses, and how to optimize it with re-ranking.RAGLLMSemantic SearchGenerative AIPeeking Behind the Video Call: A WebRTC Deep Dive
Ever wondered how a video call reaches the other person in real time? It’s not going through a server like a website does — it’s closer to a direct connection. But two devices behind two different routers finding each other and connecting directly is not that simple. In this blog, I break down how that whole thing works — client-server vs P2P, why NAT makes P2P hard, and how STUN, TURN, ICE, and WebRTC solve it.WebRTCReal Time Communication