Shikhar Agnihotri

Hey, I’m Shikhar.

Serious systems.
Occasionally silly ideas.

I’m a software engineer at Salesforce, based in Bellevue. Outside work, I follow my curiosity into AI, browser experiments, and the occasional mountain trail.

Clouds rolling across the North Cascades
North Cascades.

A few things I’ve put into the world

2020 — 2025

01 / InvestInsights.ai · 2025

Research has enough tabs.
I wanted a conversation.

Filings, earnings calls, market news. I built InvestInsights to bring scattered investment research into one place you can ask questions about.

Explore InvestInsights ↗
InvestInsights mobile app with a conversational entry point for investment research
What I built, and the part that’s hard

I built the product end to end: data integrations, an MCP server, LLM workflows for extracting structured signals, and the application experience.

The chat box is the easy part. Choosing useful context, grounding an answer in sources, and making uncertainty clear are the problems that keep this interesting.

02 / aoip.ai · 2023

Better audio starts
with real-world conditions.

An open-source SDK bringing peer-to-peer voice communication and AI experimentation together. We built tools for generating VoIP audio data and running experiments at cloud scale.

Explore the code ↗
What the SDK brings together

Voice applications need more than a model. They need a way to move audio between peers, produce useful data, and run experiments beyond a single machine. My work on aoip.ai explored that infrastructure using Python, AWS, and Slurm.

Project overview ↗

03 / A browser experiment · 2020

What if you showed up
to a meeting as Batman?

Google Meet Classic Impersonator turns your movements into animated characters. A remote-meeting experiment that found an audience of its own.

220K+ installs at its peak

Google Meet Classic Impersonator’s character selection shown in its Chrome Web Store listingGoogle Meet Classic Impersonator / Chrome Web Store
The story behind the experiment

During the shift to remote meetings, I wanted to replace live video with animated characters. The extension ran pose estimation in the browser and translated movement into SVG animation.

The interesting constraint: all that machine learning had to fit inside a browser extension and keep up with a live conversation. At its peak, the project reached 220K+ installs and 27K+ daily active users.

Chrome Web Store ↗

More experiments

A few other rabbit holes
Optimization

Walket ↗

Batching orders and finding routes through a warehouse, using heuristics and genetic algorithms.

Search

Building a search engine

A CMU project exploring how ranking changes with BM25, learning to rank, and dense retrieval.

Cloud systems

A terabyte of tweets

From raw data to a queryable service: ETL, schema design, and cloud deployment for a large tweet corpus.

Speech + ML

Speech enhancement over networks

My CMU capstone on speech affected by noise and network degradation, evaluated for quality and intelligibility.

Related paper ↗

At the whiteboard

Teaching at Carnegie Mellon

Deep Learning / TA lecture

Transformers & LLMs

A lecture I gave while teaching Deep Learning at CMU. A different side of the work: getting the ideas out of code and explaining them to a room.

A little about me

Beyond the project links

I like seeing an idea
become something people use.

At work, I build backend systems and tools that help people troubleshoot problems themselves. I especially enjoy taking a complicated workflow and making it easier to understand and use.

At Carnegie Mellon, I also taught PyTorch as a Deep Learning TA to 200+ students across two semesters. Building something and helping someone understand it both make me work through the details.

The North Cascades from Sahale Glacier Camp
North Cascades, from Sahale Glacier Camp.
Denali rising above the clouds
Denali, above the clouds.