Case study
SR Analytics
Making a B2B analytics platform faster, cheaper and far less manual.
- Role
- Full-stack Engineer
- Timeline
- Aug 2024 to Jun 2025
- Location
- Pune, Maharashtra
- Stack
- Java, Kotlin, Node.js, Python, Next.js, PostgreSQL, Jenkins, Power BI, AWS, Azure, Vercel, Redis, WebSockets
- To open an embedded Power BI report
From 17sto 2s- Less spent on infrastructure
- 98.56%
- Faster reporting
- 5×
- Third-party APIs pulled in every day
- 15+
01
Context
One analytics platform. Many clients, each with its own people and permissions.
SR Analytics gives client organizations real-time dashboards, embedded Power BI reports, automated reporting and data from the tools they already use. Every client has its own users, and every user sees something different.
As a full-stack engineer I worked across the whole platform: the reporting front end, the Power BI embedding layer, the ETL pipelines, access control and the cloud underneath.
02
Challenge
Reports were slow, analysis was manual, data came from everywhere, and the bill had to come down.
- Reports were slow to open
- An embedded Power BI report took about 17 seconds to appear.
- Reporting was manual
- Insight lived in spreadsheets and hours of manual analysis.
- Data came from everywhere
- More than 15 third-party APIs had to be pulled in, fresh, every single day.
- Many clients, one platform
- Super admins, admins, consultants and users at every client needed different, fine-grained access.
03
Approach
Fix the slow path. Automate what repeats. Pay only for what gets used.
- Design around cold starts. Serverless functions on Node.js and Vercel pay a start-up cost after sitting idle, and the embed flow felt all of it. So I designed a synchronization approach that holds up against cold starts.
- Automate anything that repeats. Power BI refreshes and recurring jobs run on Jenkins schedules. Reports and KPI alerts fire on data events or set intervals, not on someone remembering.
- Scale capacity with demand. Power BI Embedded CPU capacity scales up and down on its own, so the platform pays for what it actually uses.
- One permission model for every tenant. A single RBAC framework covers every role at every client.
- Let software take the first pass. Custom AI scripts and the ChatGPT API spot patterns and draft insights, so people start from findings instead of a blank spreadsheet.
04
Implementation
Six pieces of work across performance, data and infrastructure.
Power BI embedding
- Problem
- Embedded Power BI reports took about 17 seconds to load.
- Solution
- A custom synchronization approach built to withstand cold starts on Node.js and Vercel.
- Result
- 17 seconds down to 2.
Embedded Power BI report load
2sdown from ~17s
Intelligent reporting
- Problem
- Reporting leaned on spreadsheets and manual analysis.
- Solution
- A reporting workflow where custom AI scripts and the ChatGPT API find the patterns and draft the insights.
- Result
- Reporting became 5× faster.
Multi-tenant RBAC
- Built
- Role-based access control for Super Admins, Admins, Consultants and Users across every client, with fine-grained permissions.
Role hierarchy
- Super Admin
- Admin
- Consultant
- User
ETL pipelines
- Built
- Python, PostgreSQL and Jenkins pipelines that pull data from 15+ third-party APIs every day.
Daily data pipeline
- 15+ APIsThird-party sources
- Python ETLScheduled by Jenkins
- PostgreSQLPlatform data
- Power BIAutomated refresh
- DashboardsEmbedded reports
Infrastructure automation
- Built
- Automated Power BI refreshes, scheduled Jenkins jobs, and Power BI Embedded CPU capacity that scales with demand.
- Result
- Infrastructure cost fell by 98.56%.
Scheduling & alerting
- Built
- Scheduled reports and KPI alerts sent over email, Slack and Telegram, triggered by live data events or set intervals.
Alert routing
Triggers
- Real-time data events
- Custom intervals
Channels
- Slack
- Telegram
05
Result
Faster, cheaper and far less manual. All of it measured.
| Area | Outcome |
|---|---|
| Embedded report load | 17s → 2s |
| Reporting | 5× faster |
| Infrastructure cost | 98.56% lower |
| Data integrations | 15+ third-party APIs pulled in daily |
| Access control | One RBAC framework across every role and client |
| Alerting | Scheduled reports and KPI alerts over email, Slack and Telegram |
06
Engineering lessons
- Cold starts are a design constraint
- On serverless, a latency-sensitive path has to be designed around start-up time. Tuning alone rarely gets you there.
- Cost is an engineering metric
- The 98.56% came from automation. Refreshes run on schedules, jobs run when they’re needed, and capacity follows demand.
- Permissions are product
- In a multi-tenant platform, the access model shapes every feature built on top of it. Design it once, and design it properly.
- Automate the first draft
- AI-assisted analysis earns its keep before the human step. It finds the patterns worth writing about.