Backend

APIs, microservices, databases, queues and server-side architecture.

888 stories

How Apache YuniKorn Taught Our Kubernetes Cluster to Play Tetris
Slice

A story about Spark, scheduling, and a cloud bill that refused to make sense. Chapter 1: A Fresh Start on Kubernetes Every migration story starts with optimism, and ours was no different. We had just moved our Spark workloads from EMR to Kubernetes (EKS). On paper, it was…

slice-engineering.medium.com
Compass: an AI navigation agent for everyone
Groww

You already have the data. Compass is how everyone asks it. You already know the question. What was DAU today? What’s the order’s success rate over the last few months? How many new users did X and Y, and are they sitting at the stage of doing Z? This escalation just landed.…

Search That Gets You: Inside Instamart’s LLM-Powered Search
Swiggy

How large language models help shoppers find what they mean, not just what they type. Author: Aarav Nigam Introduction Every search box eventually hits a wall where traditional search stops being useful. Searching tide powder 100g on Instamart works seamlessly. Exact keywords…

Nobody Knows What's in the Wire: How Groww Moves Money Between India and Wall Street
Groww

How Groww tracks cross-border payments between India and the US, ensuring every dollar is accounted for. Author: Aditi Gour Introduction Every business day, SWIFT wires cross between India and the US, and each one carries many people's money in a single lump. Deposits travel out…

How We Deploy Reliably at Razorpay
Razorpay

Most production incidents do not begin with a server dying. They begin with a deployment: dozens a day, across hundreds of services, each the moment risk enters the system. We run payments infrastructure at Razorpay. When a payments system degrades, transactions fail: merchants…

The Kafka Optimization That Saved Us $350K a Year
JioHotstar

The JioHotstar platform receives in excess of 40TB data every day. At 2.1 million messages per second. At this scale, every superflous byte is costly, like real money costly. In this blog, we cover strategies that helped us optimise our ingest workflow which ultimately saved…

Inside Razorpay’s RTO Model: The Engineering Behind its ML Lifecycle
Razorpay

Contributor: Abhik Debnath In this article, we use Razorpay’s Return to Origin (RTO) risk model to explain the ML lifecycle: how we build a reproducible release, deploy it into checkout, monitor its behaviour, and use later outcomes to evaluate whether it needs retraining. We…

Cost-Optimized Kafka Architecture on GCP Storage Pools
Groww

This article explains how multiple Kafka clusters went on a storage diet when we moved from a traditional fixed-cost disk architecture to a Storage Pool model. We will follow Kafka from its recovery and performance requirements through Strimzi KafkaNodePools, zonal placement,…

Kafka Inconsistencies and the Silent Failures Behind Real-Time Decision Platforms
Walmart Global Tech

A field guide to the duplicate events, stale state, rebalances, and deployment traps that quietly distort real-time decisions — told through one decision that should have fired and didn’t. Note: This piece assumes working familiarity with Kafka and event-streaming fundamentals —…

Migrating Swiggy Partner App’s Deep Link Engine at Scale
Swiggy

The OS decides whether your app may open a URL — before any of your code runs. We swapped the SDK underneath that, without republishing the links we already owned.A partner taps a link in an SMS, a push, a share sheet — and lands on the exact screen they needed. We changed the…

From Tool-Hopping to Talking: Reimagining Datacenter Observability with NETRA
PhonePe

It’s 3:00 AM. The glare of a monitor cuts through a pitch-black room as a critical alert pierces your sleep. Seconds later, you’re locked in a familiar, exhausting ritual: eight browser tabs open, bouncing frantically from Grafana metrics to Loki log streams, then over to Jira…

Compass: an AI navigation agent for everyone
Groww

You already have the data. Compass is how everyone asks it. You already know the question. What was DAU today? What’s the order's success rate over the last few months. How many new users did X and Y, and are they sitting at the stage of doing Z? This escalation just landed.…

One Autovacuum Away: Partitioning slice’s Billion-Row Transaction Tables Without Downtime
Slice

Preface One evening Postgres ran a routine ANALYZE on one of our tables. Within minutes, one of our payment products was degraded. Nothing had been deployed. No migration, no config change, and traffic was normal. Yet the database writer was saturated, latency on the transaction…

slice-engineering.medium.com
Scaling ML Model Inference through architectural separation
CRED

The model is only one part of the inference pipeline. At scale, the work happening around it, from routing requests to coordinating downstream dependencies, can have a much bigger impact on latency and efficiency. We addressed this by separating model execution from request…

engineering.cred.club
From Experimentation to Scale: PhonePe’s AI Journey in HR
PhonePe

At PhonePe, our strategy for AI in HR was never about deploying a single, generic solution. Instead, we set out to build a fit for purpose ecosystem prioritizing speed, flexibility, and accuracy embedded directly into daily workflows. AI Readiness began before AI. We have been…

Zoomable RecyclerView: Enabling Pinch-to-Zoom and Panning in Android RecyclerViews
PhonePe

Introduction Android’s native RecyclerView is exceptionally efficient at handling large datasets through item recycling, but it lacks native support for spatial interactions like pinch-to-zoom and canvas-level panning. For complex layouts—such as interactive retail grids or…

Five Years of Kafka at Razorpay’s UPI Switch
Razorpay

Preface The UPI Switch at Razorpay has evolved significantly in the five years since we started building it. The Switch is the platform that enables real-time payment processing with NPCI. When the team began, it was little more than an idea. Today it powers more than 70% of…

The Meesho Mantras, Explained: The Operating Principles Behind How We Work
Meesho

What are the Meesho Mantras, why do they exist, and how do they actually shape decisions? The complete explanation - one mantra at a time. Ask anyone who has worked at a fast-growing company the same question, and you'll get some version of the same answer: the hardest part was…

The Right Pixels: Optimising Images at Meesho’s Scale
Meesho

Client-side engineering lessons from optimizing billions of image loads every day in Meesho’s Android app. Within the Meesho app, images serve as the product surface itself rather than mere ornamentation. Users judge fabric, finish, colour, fit and detail through pixels, while…

The 350 KB Hidden in Our XML Layouts
Meesho

Solving an AAPT2 Auto-Versioning Mystery The discovery APK size is a core performance metric for us. We track it continuously, investigate regressions, and regularly inspect what is actually shipped, not only what exists in source control. That habit led us to an unusual…

Lens: Give Your Entire Team X-Ray Vision Into Your Android App
PhonePe

Lens lets your team see what is happening inside a running mobile app—from a normal web browser. You Know This Bug, Right? It is Friday afternoon. QA tells you that the profile screen is blank after login. You open the same app, follow the same steps, and everything works. The…

Holding Revamp Went Live. Then Reality Check Hit Hard
Groww

Introduction In the previous article, we shared how we redesigned Holdings retrieval to eliminate unnecessary work. The architecture looked solid, and the rollout was ready. Then we deployed it. With millions of users accessing Holdings every day, the rollout looked healthy…

CI Doesn’t Need On-Demand: Moving Our Build Pipelines to Spot Instances
Razorpay

Contributors: Guptaanuj CI/CD pipelines have always had a money-vs-stability problem. Run on-demand AWS instances and your build infrastructure is rock solid, expensive, and predictable. Run on spot instances and your costs drop 70–90%, but AWS can pull the rug with 2 minutes of…

LLMs for Relevance: Automating High-Quality Product Relevance Labeling in Flipkart Search
Flipkart

Amey Patil , Shreya Malani· November 2025 Every product you see on a Flipkart search results page is there because a system decided it was relevant to what you typed. But how do we know those decisions are good? Someone — or something — has to look at a query and a product and…

blog.flipkart.tech
Refusing the Haystack: How Groww’s Cyber Defence Team Scales Detection and Response
Groww

There’s a version of a security operations centre that exists mainly to be pointed at. It ingests every log it can reach, lights up a wall of dashboards, and staffs a rotation around the clock so that, if anyone asks, the answer is “yes, someone is watching.” It satisfies an…

TraceMind: Automating the Chaos of Crash Debugging
PhonePe

The Debugging Dilemma: Why TraceMind? In a complex mobile ecosystem, debugging a single production crash is rarely a straightforward task. Historically, developers at PhonePe faced a fragmented landscape of data points. When a crash alert hit, an engineer would often spend…

The Inner Loop Is Solved. The Outer Loop Is Yours.
Meesho

Agents now write most of our code, and the panic about what that means for engineers is aimed at exactly the wrong half of the job. A mental model I keep coming back to, what it says about the engineer we are all becoming, and why the engineers with the most to gain are the ones…

Decoding Customer Value: pLTV Models for India’s Quick Commerce Delivery Wars — part 1
Swiggy

Author: Jayshmi A Special thanks to soumyajyoti banerjee , Meghana Negi, Shaik Masihullah, Akash Deep for their contributions throughout this project and Sunil Rathee for his guidance. The counterintuitive story of how 350+ carefully engineered features + a simple MLP matched…

DE Dost: Teaching Machines to Be a Friend on the Last Mile
Swiggy

Building Swiggy’s AI onboarding companion for delivery executives, where accuracy alone wasn’t enough and mentorship had to scale.For a new Delivery Executive (DE) joining Swiggy, the experience is often overwhelming, throwing a world of SOPs, incentive structures, zone…

How We Made All Swiggy Apps Operations AI-Native
Swiggy

Engineering across all Swiggy Apps has always had a simple problem with a very large surface area: we ship fast, but every release, every production signal, and every operational review touches too many systems. For a single release manager or on-call engineer, the day could…

From Gatekeeper to Strategic Catalyst: How GenAI is Transforming Compliance at PhonePe
PhonePe

India is undergoing a massive digital transformation, and at the heart of this revolution is PhonePe, enabling seamless payments and financial services for over 700 million registered users across Bharat. When you build at this kind of population scale, handling millions of…

How We Refresh Razorpay's Data Warehouse 10x Faster with Graphs and Indexes
Razorpay

Contributors: Utkarsh Koppikar Rohan Background Razorpay provides the payment infrastructure for millions of merchants globally. Behind every payment, settlement, and refund is a microservices architecture where each service owns its own database. While this keeps services…

Improving the Efficiency of Rendering User Holdings
Groww

Introduction At 9:15 AM IST, the opening bell rings on the Indian stock market — and millions of investors reach for the same screen. Within seconds, millions of investors open the Holdings page. They want to know how overnight news has impacted their stocks, whether they’re in…

Running Hermes at Razorpay: a Network-isolated, Self-improving “Second Brain” for every Employee
Razorpay

How we run a personal AI agent for everyone at Razorpay: always on, multi-model, and safe by construction. Contributors: Siddharth Tripathi Today, more than 220 Razorpay employees each have their own always-on AI agent. On a typical day, about 84 of them are actively working.…

How Swiggy Saved 3.7 MB by Solving a Vector Drawable Mystery
Swiggy

🎭 The Mystery Begins Picture this: You’re a responsible Android developer. You’ve done everything right. You’ve replaced those bulky PNGs with lighter, elegant, scalable SVGs. You’ve patted yourself on the back. You’ve probably even tweeted about it. Then one day, you open the…

How Swiggy Migrated from protobuf-java to Square Wire
Swiggy

At Swiggy, we use Protocol Buffers everywhere. Nearly every message exchanged between our backend services and our mobile apps is a protobuf. On Android, the default and most widely adopted way to work with those schemas was protobuf-java, Google’s official Java runtime, with…

Scaling Android CI: From 44 → 10 minutes — A Deep Dive into Build Time Optimization and Best…
Swiggy

Scaling Android CI: From 44 → 10 minutes — A Deep Dive into Build Time Optimization and Best Practices Android monorepos get expensive and slow as they scale. We re-architected CI/CD caching, trimmed the Gradle graph, tuned the JVM, modernized the toolchain, and finally moved to…