Aashni Joshi

Data Science + Astrophysics @ UC Berkeley. I like building things I'm curious about, studying the universe, and learning from the people I meet along the way.

Prev: Machine Learning Engineer Intern at Apple.

Aashni Joshi

Scroll to explore

Work

/ Where I've been

  1. Machine Learning Engineer Intern, Apple

    May 2026 to Aug 2026 · Applied ML team

    Spent the summer building agentic tooling for Apple's internal data and ML platform, mostly around making some time-consuming Spark, Ray, and Airflow workflows easier for engineers, PMs, and SREs. That ended up taking me through internal APIs, MCPs, eval harnesses, Docker/Kubernetes, model deployment, and observability. I also built Spark and Ray from scratch on Kubernetes and benchmarked distributed ML workloads across 858M rows, which was probably my favorite rabbit hole of the summer.

  2. Founding Data Engineer, Hyperspell (YC F25)

    Aug 2024 to Dec 2025 · Employee #1

    Joined as the founding engineer and worked across product, engineering, and developer experience. I built technical demos and example apps, spent a lot of time with users debugging edge cases and figuring out what should get built next, and helped shape how Hyperspell showed up to developers through the website, documentation, and technical content around MCP and agentic systems.

  3. Technical Project Manager, NASA Ames Research Center

    Aug 2024 to May 2025

    Worked with NASA Ames on in-space servicing, assembly, and manufacturing, trying to understand where the biggest technical gaps and commercial opportunities were. I spent a lot of time digging through mission data and research, built a Python/React visualization for 200+ space technologies, and used statistical and Monte Carlo modeling to turn that into something useful for roadmap decisions.

  4. Jan 2024 to May 2024

    Worked on an LLM system for semiconductor research, experimenting with retrieval, embeddings, vector databases, and evaluation to make a specialized body of technical knowledge easier to query. It was one of my first times going deep on RAG and taught me pretty quickly that getting an LLM to sound convincing is much easier than getting it to be consistently right.

  5. AI Engineer Intern, People+AI

    May 2024 to Aug 2024

    Built document-processing systems for government workflows using Python, Flask, React, OCR, and LLM APIs to turn different document formats into structured data. A lot of the work ended up being about making the system around the model reliable: batching, async processing, validation, and getting workflows that took hours of manual work down to a couple of minutes.

  6. Data Science Intern, Vast Space

    Aug 2022 to May 2023

    Analyzed the LEO economy to surface academic payload opportunities for Haven-1. Built the revenue and ROI models that went into the business development deck.

Projects

/ Things I got curious about and built

Spark + Ray on EKS

Two engines, the same 858M rows, built from scratch

Wanted to see what the engines underneath actually look like without any of the platform automation I'd been working on top of, so I stood both of them up myself from vanilla open-source packages.

Wanted to see what the engines underneath actually look like without any of the platform automation I'd been working on top of, so I stood both of them up myself from vanilla open-source packages and went down the question of when you'd reach for one over the other. Built Spark and Ray on a self-managed Kubernetes cluster from scratch, including the S3, networking, auth, container, and observability setup around them. From there I wrote equivalent ML pipelines in Spark MLlib and Ray + XGBoost and benchmarked them across 858M rows, comparing runtime, memory, and model performance. Most of the project turned into understanding what each framework quietly does for you: Spark was much more forgiving once a workload outgrew memory, while scaling Ray meant going deeper into distributed XGBoost, streaming data, and managing memory myself.

Kubernetes · Spark · Ray · XGBoost · AWS · Docker · Prometheus · Grafana

Medicare plan data freshness monitor

What happens when the data under a plan recommender goes stale

Got curious about what actually sits under the hood of Medicare plan recommenders after reading the recent CMS RFI on AI in plan selection.

Got curious about what actually sits under the hood of Medicare plan recommenders after reading the recent CMS RFI on AI in plan selection. Pulled three months of CPSC files (contracts and enrollment, around 10 million rows total) and dug into them for staleness, masking, churn, and coverage gaps. 94.6% of enrollment rows turn out to be masked for privacy, thousands of rows have orphaned geography, and month-over-month contract churn is higher than you'd want for a live recommendation engine. Packaged the analysis as a notebook and a dashboard.

Python · pandas · Jupyter · Next.js · Vercel

KAI, an evaluation framework for AI-assisted reading comprehension

Rubric-based scoring for students with IDD

Stumbled onto the Stanford HAI group working on KAI, an AI tool that helps students with intellectual and developmental disabilities work through reading comprehension.

Stumbled onto the Stanford HAI group working on KAI, an AI tool that helps students with intellectual and developmental disabilities work through reading comprehension. Went deep into the Lemons group's papers on presumed competence and curriculum-based measurement, then tried to answer a question the research itself raises: how do you scale rubric-based scoring as the tool moves from one RCT to three concurrent pilots? Built a four-dimension rubric grounded in their published work, wrote an evaluator that refuses to penalize non-standard grammar (which is the whole philosophical point), and ran it against six worked examples including a critical test case on non-standard communication.

Python · Anthropic API · Jupyter · Next.js · Vercel

Orbit, GTM intelligence in one API call

A go-to-market engineer, condensed into a single Claude call

Watched too many technical founders duct-tape five tools together just to enrich a company, score it against their ICP, find a champion, and draft outbound.

Watched too many technical founders duct-tape five tools together just to enrich a company, score it against their ICP, find a champion, and draft outbound. Wanted to see how much of that loop could collapse into a single API call. Built Orbit: paste a company name, and in under 10 seconds Claude enriches the account, scores it against a target ICP, surfaces buy signals, infers a champion persona, and drafts a personalized three-touch outbound sequence. One structured call, typed JSON, zero chaining. The data layer is stubbed behind Claude inference on purpose, so swapping in real B2B data APIs later is a clean replacement.

Next.js · TypeScript · Claude Sonnet API · Tailwind · Vercel

Kessler OS, a space debris cascade simulator

Modeling the moment low Earth orbit becomes unusable

Built this at CalHacks because Kessler syndrome is the most visceral version of a problem I actually want to work on.

Built this at CalHacks because Kessler syndrome is the most visceral version of a problem I actually want to work on. The idea is simple and terrifying: one collision in LEO spawns debris, that debris causes more collisions, and the cascade runs until the orbit is unusable for generations. Wanted to see that threshold firsthand. Built an n-body orbital dynamics simulator using RK4 numerical integration and Monte Carlo methods, validated trajectories against NASA/JPL ephemeris data at around 90% accuracy. Watching the cascade run in real time changes how you think about who gets to put stuff in orbit.

Python · NumPy · Monte Carlo simulation · physics modeling · Next.js frontend

Beyond
work

Currently reading: Young Money by Jack Raines

Outside of work

I enjoy:

  • Carefully curating Spotify playlists
  • Stand up comedy
  • Indian pop culture
  • Reading Substack articles
  • Playing my guitar
  • Long walks that end at a cafe
  • Quality time with the people I love

Always down for a coffee!

Whether you're looking for a collaborator, have an interesting problem to solve, or just want to say hi, feel free to reach out :)