PMPranav Mulakala
~/pranav — zsh
pranav@bay-area ~ % whoami

Pranav Mulakala

Graduate Cloud Engineer · Sage Intacct, Data Platform & Reporting Co-founder & full-stack engineer · Whistle AI B.S. Computer Science · UC Santa Cruz · Dec 2025 pranav@bay-area ~ % ls ./building ai-agents/ automation/ data-platforms/ reliability/ pranav@bay-area ~ % open links github ↗linkedin ↗resume ↗ pranav@bay-area ~ %
How I work

I do my best work when I find a gap in how a team operates and build the automation that closes it.

At Sage that's meant AI agents in Slack, one registry of troubleshooting tools, and a provisioning runbook turned into a Slack flow. On my own it's a trading research platform, a robot-arm pipeline and an open-source fix awaiting review, each backed by its own tests or evals.

Results

Before and after, to scale

Each bar starts at the old number and shrinks to the new one as you scroll. Every bar has its own linear scale; hatched ends show where a reading was a range.

Ranking query latencySage · 2.8 TB dataset
45–55 s→1.3–2 s
OAS install completion timeSage · OAS Install Co-Pilot
4–5 h→30 min
Manual email-sorting timeMOURI Tech · GPT-4 + RAG classifier
100%→20%

Latency 0–60 s · install time 0–5 h · sorting time 0–100% of the manual baseline

At Sage · since Oct 2025Internal tools, so the code and screens are private. These are drawn in code with generic labels.
Incident thread
you
Incident report
A1
Specialist agent read-only
A2
Specialist agent read-only↳ picks up from A1
A3
Specialist agent read-only↳ picks up from A2
3 agents chained · no re-prompting10+ Snowflake Cortex agents
SageSnowflake award · hackathon

DPR Multiplayer AI

10+ Snowflake Cortex agents that work together in a Slack thread. One incident report chains three specialist agents with no re-prompting. I built nearly all of it and led our hackathon entry as its only engineer.

Snowflake CortexSlack
internal · private
One registry, three interfaces
Tool registry
22 tools
SlackCLIMCP
1,250+ automated testsSlack · CLI · MCP
Sage22 tools

DPR Command Center

One shared registry of 22 troubleshooting tools for infrastructure and the data platform, served the same way over Slack, a CLI, and MCP. I've presented my tools to senior engineers, PMs, and directors.

MCPSlackCLI
internal · private
Runbook → Slack flow
OAS install6 buttons replace 11 manual steps
4–5 h → 30 minresumable · keyless OIDC · audit-logged
Sagesolo-built

OAS Install Co-Pilot

Turned an 11-step AWS/Azure provisioning runbook into a 6-button Slack flow. Steps are resumable, AWS access uses keyless OIDC, and actions are audit-logged. The step grouping in the diagram is illustrative.

PythonAWSAzureGitHub ActionsAnsibleTerraform
internal · private
Ranking query, played at 10× speed
Before · slow ranking queries45–55 s
After · rollups + clustered tables1.3–2 s
2.8 TB datasetread-only SQL · access controls · freshness checks
Sage

Faster ranking queries

Replaced slow ranking queries over a 2.8 TB dataset with pre-aggregated rollups and clustered tables, then locked the path down with read-only SQL, access controls, and freshness checks.

SnowflakeSQL
internal · private
Health-check service · simplified, illustrative
Health eventscloud storage Kafkaproducers · consumers Workersretry on their own Redis cacherecent results Slack · Grafanaalerts · dashboards
Retriesfailed jobs, per worker
Cachesrecent results for Slack
Traceswhere slow commands wait
Sage

Health-check service

Background workers process cloud-storage health events from Kafka and retry failed jobs on their own. Redis caches recent results so repeated Slack requests come back fast. Grafana dashboards and Slack alerts flag services that keep failing, and OpenTelemetry traces show where a slow command spends its time.

KafkaRedisGrafanaOpenTelemetry
internal · private
Memory, illustrative
~29 daysfor the leak to build up
root cause: kernel memory leakowns 7 cloud-storage integrations
Sage

Incident work

Diagnosed a recurring outage caused by a kernel memory leak that built up over about 29 days. Separately, I own 7 cloud-storage integrations and led recovery from two fleet-wide incidents across them, including a credential failure affecting 15 production servers.

Linux
internal · private
Startup, open source and side projectsClips and screenshots come from the real apps. The Whistle diagram is drawn in code, and the terminal replays a real test run.
Annotation platform · abstract court, no real footage
Event17 fields
hotkey
HTTP range streamingffmpeg clips
Whistle AIco-founder

Basketball annotation platform

Turns game footage into labeled training data. ffmpeg cuts games into clips, video streams to the browser with HTTP range requests, and labelers tag each event with hotkeys against a fixed 17-field schema. My co-founder and I labeled the data and trained a YOLOv8 model on it together.

FastAPISQLAlchemyReact/ViteffmpegYOLOv8
private repo
▶ hover to play
Side projectpublic

Tape

A prototype that runs locally. It turns a stock's price tape into rated "plays", the way a sports app turns a game into plays, so everyone in a room would see the same move at the same moment. Shown: the live Bitcoin room on Coinbase's public feed.

TypeScriptWebSockets
~/deterministic-swing-trading-research — zsh
Side projectpublic

Deterministic trading research

Paper-trading research built to be reproducible. A 13-stream market-data pipeline restarts from checkpoints, checks integrity with SHA-256, and writes to a hash-chained SQLite event journal. An Alpaca paper-trading adapter handles orders idempotently, reconciles state, and has kill switches.

PythonSQLiteLinuxAlpaca API
▶ simulation
Side projectsimulation clip

WaterFilterRobo

Can a robot arm refurbish a used water purifier? I built a 5-stage Python pipeline on physical SO-101 robot arms for membrane handling, cleaning, and assembly, with a person verifying final cleanliness. Pilot partner: a leading water-purifier manufacturer. The clip is from the earlier MuJoCo simulation.

PythonMuJoCoLeRobot
superglue agent proposing one of Pranav's run contracts A run contract flagging items that repeat an earlier id Live checks with two failures and fix hints Live checks with every subsystem passing Topology view with two injected failures
Built on open source5 screenshots

superglue diagnostics

Features I built on a local clone of superglue, an open-source project: REST/SSE diagnostics APIs in Node.js/TypeScript and a Next.js dashboard I demoed to superglue's co-founder. Run contracts detect data loss and duplicates. My changes are drafted as upstream contributions, not submitted yet. Click the stack to flip through the screenshots.

TypeScriptNode.jsNext.jsPostgreSQLDocker
▶ hover to play
Side projectpublic

BrokerDocs

A clickable React/TypeScript mockup of a freight-broker document tool (rate confirmations and bills of lading), built for customer-discovery demos.

ReactTypeScriptTailwind CSS
testcontainers-python pull request 1144
Open sourcePR open · awaiting review

testcontainers-python: proposed fix

A proposed fix so HttpWaitStrategy applies response-body checks to accepted HTTP error statuses like 404 and 503. Built with AI assistance; adds 12 unit cases and 3 Docker integration cases.

PythonDockerpytest
Experience

The commit history

Newest first. Whistle AI is a separate venture I co-founded, so it sits on its own branch.

  1. Oct 2025 – now

    Graduate Cloud Engineer

    Sage · Sage Intacct, Data Platform & Reporting · San Jose, CA

    AI agents, automation and data-platform tools for Sage Intacct's Data Platform & Reporting team. The Sage tiles above are the highlights.

  2. Dec 2025 – now

    Co-founder & full-stack engineer

    Whistle AI · Remote

    Built the annotation platform and data pipeline, and ran customer discovery.

  3. Sep 2022 – Dec 2025

    B.S. Computer Science

    University of California, Santa Cruz · GPA 3.81 · Dean's Honors 6 times
  4. Jun – Sep 2025

    Product Analyst (Intern)

    Okta · Anaplan Engineering · San Francisco, CA

    Automated Boomi-to-Anaplan bookings reporting for FP&A with a Python/AWS pipeline using Gemini-directed transformations over 1 TB of data, saving 3 days of manual reporting. Validated transfers against scenario-based tests before production, and added error summaries and an FP&A chatbot.

  5. Jun – Aug 2024

    Software / Data Engineer Intern

    MOURI Tech · Irving, TX

    Deployed a Python, GPT-4, and RAG classifier that sorts accounts-payable email: 85% precision and 80% less manual sorting time in timed comparisons.

Toolbox

Stack and certifications

Languages
PythonSQLTypeScriptJavaScriptJavaGoC/C++C#Bash
AI & LLM
Snowflake CortexMCPOpenAI APIGeminiAWS BedrockRAGLangChainLangGraphPyTorchYOLOv8
Backend
FastAPINode.jsReactSQLAlchemyRESTKafkaRedisPostgreSQL
Cloud & infra
AWSAzureGCPSnowflakeDockerKubernetesTerraformAnsibleGitHub ActionsLinux
Observability
GrafanaPrometheusOpenTelemetryDatadogSplunk
Testing
pytestJestPlaywright
AWS Certified AI Practitioner2026
Microsoft Azure Fundamentals (AZ-900)2025
AWS Certified Cloud Practitioner2023
UC Santa Cruz · B.S. Computer ScienceDec 2025 · GPA 3.81 · Dean's Honors 6 timesData Structures · Object-Oriented Programming · Machine Learning · Artificial Intelligence · Cloud Engineering
Off the clock

What I'm into

TrainingLifting, four years in

I've lost about 100 pounds over the last three and a half years. Sticking with the gym built the discipline I bring to my work and to what I build on the side.

SportsBasketball

Through Whistle AI, the startup I co-founded.

MarketsTrading systems

I build my own market tools: the trading research platform and Tape.

Contact

Let's build
something.

Email is the fastest way to reach me.

Resume

Bay Area · --:--

Resume