Sahil Kulkarni · Senior Software Engineer, Cloud FinOps

I build the cloud cost management platform used across every engineering organization at Thomson Reuters — from raw billing data to the algorithms and agents that turn it into decisions. Over six years I've taken this product from a single script to a suite of microservices spanning cost allocation, vendor reporting, chargeback, and now AI-native interfaces for cost data.
$30M+
in savings opportunities surfaced across the estate, with a comparable amount already remediated over six years
100+
engineering teams running chargeback and cost allocation through it
4
cloud providers plus third-party vendors like Datadog and Snowflake, normalized into a single cost model
Services built
Cost allocation & chargeback
Chargeback
Multi-cloud cost chargeback at the monthly granularity finance uses, extended beyond the cloud providers to third-party vendors like Datadog and Snowflake through a normalized format platform teams publish into. Forecasts current- and next-month spend across every provider from historical data.
Product reports
Maps applications to the products they’re sold as and overlays revenue, giving cost and revenue at the product level — true unit economics.
Tagging reports
Accounts are multi-tenant, so an untagged resource has no identifiable owner. An algorithm reads resource metadata to propose the owning application.
Optimization & anomalies
Savings opportunities
30+ opportunity categories, still growing, scanned across every account and region.
Modernization suggestions
Recommendations for moving legacy IaaS workloads to PaaS, so stakeholders can see which applications to prioritize.
Cost anomalies
Combines the platform’s own data with cloud-provider anomaly signals, then notifies the owning application team.
Reporting & visibility
Provider detailed reports
Cost of every resource for every day, with graphs and visuals built over it.
Savings Plan & Reservation coverage
Shows how much of the estate is running under which pricing model.
Tokenomics
Gen AI spend and usage visibility, charged back to the applications consuming it.
Programmatic & AI access
REST API
An API over everything the platform collects, used by multiple teams for their own use cases.
MCP server
Tools over that API so LLMs and agents can retrieve cost data directly.
Chatbot agent
Query cost data in natural language, with access control, running on Bedrock AgentCore.
How it's built
Raw data collection
Every provider bills differently, so raw cost data is collected per provider in its own native format. On AWS that’s CUR v2 delivered to S3, catalogued by a Glue crawler and queried through Athena, with Glue jobs pulling it forward; on GCP it’s the BigQuery billing export, and Azure and OCI have their equivalents. Nothing is reshaped here — the goal is a complete, faithful copy of what each provider reported.
Normalization
Each provider’s raw data is transformed into one shared schema, so everything downstream reads cost across clouds without special-casing. Lambda and Step Functions orchestrate the AWS side, Cloud Run does the same on GCP, and SQS and Pub/Sub move work between steps, with Glue jobs handling the heavier transforms. Third-party vendor spend like Datadog and Snowflake is published straight into this format by the teams that own those tools. Accounts are multi-tenant, so a tagging algorithm runs here too, reading resource metadata to attribute untagged spend to an owning application.
Reporting & access
The normalized data stays in S3 and is queried through Athena — no separate warehouse to keep in sync. Power BI reports and visuals are built over it for every persona, from finance to individual engineering teams. The same data backs a REST API, and the MCP server and Bedrock AgentCore agent are built on that API — so the dashboards, the API and the AI surfaces all answer from one source.
Where I've worked
Thomson Reuters
Nov 2022 — Present
Capgemini
Aug 2018 — Nov 2022