Data engineering in Mumbai
Month end at a Mumbai NBFC or fintech is often a reconciliation exercise done by hand. The loan origination system, the loan management system, the payment gateway and the bank statements each tell a slightly different story, and finance spends days deciding which one is true before a report can go to the board or the lenders. The dashboards everyone uses during the month are built on data nobody fully trusts.
We build the pipelines that make reconciliation routine. Each source is pulled on a schedule into a warehouse, ClickHouse, Postgres or whichever one you already pay for, differences are flagged automatically with the records behind them, and definitions such as disbursed, overdue and written off are agreed once and versioned. Freshness is monitored and written down, so the person reading a number knows how old it is.
Mumbai is India's financial capital. Both major stock exchanges are here, and so are many of the country's banks, NBFCs, brokers, wealth managers, insurers and fintechs. For these companies software is judged first on whether the money is right. A loan ledger that drifts from the bank statement, a payout released twice because a partner timed out, a portfolio screen showing yesterday's price: each one lands on an operations desk the next morning. What they need built is rarely a new product from nothing. It is a lending or payments backend that reconciles, a platform where each role sees exactly what it should, and approvals that need two people before money moves. Engineers who have built those systems are in demand across the city, so the work often waits for a hire.
The city's second industry is attention. The Hindi film industry, most of the country's television networks and many of its large publishers are based here, and their software problems are specific: traffic that arrives all at once on a release or a match day, rights and metadata that decide what can be shown where, and archives that are valuable only if someone can search them. A slow page on a publisher's site is lost revenue, because the readers came from search and will go straight back to it.
The third is consumer business in every size. Mumbai has D2C brands selling beauty, fashion and food through their own stores and every marketplace at once, and it is home to large family-owned groups and conglomerates whose older divisions still run on spreadsheets and exports from their accounting software. In the bigger groups the buyer is usually a digital team with a mandate, a budget and a procurement process, and the work has to survive that process as well as production.
We are in Bengaluru and share your time zone, so the working day is the same on both sides and a question asked in the morning is answered the same morning. You talk directly to the engineer who writes the code. The work happens in your repository and a shared chat channel, where every decision is written down, and the runbooks and architecture notes are written as we go rather than at the end.
We are the right fit when a Mumbai team has a defined piece of work and wants a senior engineer on it within days: a ledger that has to reconcile, a migration with an end date, or extra capacity while you hire. Start with a fixed-price two-week piece, or bring us in white-label for your agency's clients under your name.
Four ways this arrives.
Two definitions of the same metric, computed in two places. We pick one, write it as a tested model in version control, and point every report at it, so the argument moves from whose number is right to what the definition should be.
A job reports success while the report still shows yesterday. We give every table a written freshness guarantee, monitor what the reader actually sees rather than the job that feeds it, and alert a person when the guarantee is missed.
A CRM, an ERP or a work-order tool reachable only through its API. We build the sync with retries, rate limits and normalisation at the boundary, and keep append-only snapshots so last Tuesday is a query rather than a restore.
Analytical queries running against the application database at the worst possible moment. We move them to a columnar store, keep Postgres for transactions, and feed one from the other by change data capture or scheduled extracts, whichever the freshness requirement calls for.
A nightly work-order extract into append-only ClickHouse snapshots, with a verifier that reads the live Tableau dashboard to prove it shows the newest data.
Read the write-up →Asked by Mumbai teams.
How do you work with teams in Mumbai?+
We are in Bengaluru and share your time zone, so calls, reviews and releases fit inside your normal working day. We work in your tools, Slack, GitHub and Linear or whatever your team already uses, and every decision is written down in the repository or the channel. You talk directly to the engineer writing the code, from the first 30-minute call through to handover, with runbooks and architecture notes written as we go.
Do you build for Mumbai lenders, brokers and fintechs?+
Yes. We build the parts where the money has to be right: loan and payment ledgers that reconcile against the bank's records every day, retries that cannot turn a timeout into a double payout, maker-checker approvals where a second person signs off before money moves, and a full history of every change of state. We work inside the system you already run, in Node, Python and Next.js, and ship in increments.
How does your rate compare to hiring in Mumbai?+
PayScale puts a mid-career software engineer in Mumbai at about ₹15 lakh a year. Our published rate is $35 an hour, with a $5,000 minimum. That buys a senior engineer who writes the code, works in your Slack, GitHub and Linear, and starts within days, with no recruiting round, notice period or employment overhead. Start with a fixed-price two-week piece at $2,800 and judge us on the output before committing to more.
Can you work white-label for our Mumbai agency?+
Yes. Mumbai's digital and media agencies bring us in when a client needs a backend, a mobile app or a data pipeline alongside the design and campaign work. We work under your name, in your client's repositories and your channels, and sign an NDA before specifics. The code belongs to the client from the first commit. You keep the relationship, we write the code and the runbooks, and your team presents the work.
Do we need a data warehouse yet?+
Maybe not. If your reporting runs comfortably against a Postgres read replica, a warehouse adds a second system to pay for and keep in step. The signs you need one: analytical queries slowing the product, data from several sources that has to be joined, or history you must keep that the application overwrites. We will tell you which side of that line you are on.
Why ClickHouse rather than Snowflake or BigQuery?+
Not always. For steady, high-volume analytical work, ClickHouse is fast and cheap to run, self-hosted or on its managed cloud, and we run it in production. Snowflake and BigQuery ask less of you operationally and suit ad hoc querying across a large team. If nobody on your side wants to operate a database, we will recommend the managed option even when the invoice is larger.
What does a freshness guarantee actually mean?+
A written statement per table or report, such as "never more than an hour behind" or "reflects yesterday's close by 07:00". Each one has a check that measures it and an alert that fires when it is missed. Without it, stale data looks exactly like correct data until somebody makes a decision on it.
Can you work with the tools we already have?+
Usually, yes. If you already run dbt, Airflow, Fivetran or a BI tool your team knows, we build inside it. We suggest replacing a tool only when it is the cause of the problem you hired us for, and we show you the evidence before asking you to fund a migration.
How do you handle personal data in the warehouse?+
We decide what should reach the warehouse at all before building the pipeline. Identifiers can be hashed or tokenised at ingestion, sensitive columns restricted by role, and retention enforced by the pipeline itself. Every field is documented from source to dashboard, so anyone can see where a number came from and who can read it.