Skip to content
Aadit Golwala

Aadit Golwala

ML and software engineer

SWE intern at Unlearn · ML research at Purdue ECE

I'm a computer engineering student at Purdue. Right now I'm at Unlearn, working on the models and data tooling behind clinical-trial digital twins, and in Purdue's ECE department building multimodal computer vision for a holographic display. Outside of that I ship things: an iOS app on TestFlight, a backpack that went from a spec sheet to pre-production samples, a RAG service that respects document permissions.

01 — Building

Things people can use

Products with a live site, a beta, or a sample you can hold. Not demos.

Petnix

On TestFlight2025 — present

Co-founder — iOS app, backend, and site

An iOS app for a pet's weight, feeding, and care. On TestFlight; App Store next.

Petnix tracks what a pet eats, what it weighs, and what it needs: meals with calories against a daily target, weigh-ins against a goal, and a care hub for medication, water, supplements, and reminders. Households share pets, so two people can feed the same dog without double-logging it.

It is a native Expo app on a Supabase backend — 27 tables with row-level security on every one, a food reference catalog fed by seven importers, an OCR parser for packaging labels, Siri and App Shortcuts, notification quick actions, and an AI assistant that answers questions about a specific pet's history. Build 9 is on TestFlight; App Store submission is the next milestone.

  • A 23-flow Maestro end-to-end suite — happy, dumb, and edge cases per feature — that builds any branch into a simulator from GitHub Actions. It found two shipped bugs the day it came online.
  • Database changes are migrations only, mirrored to a canonical schema and logged, so the app and the backend cannot drift.
  • Weekly and monthly medication scheduling that re-plans on every sync, so completing a dose rolls the next reminder forward. Fifty tests.
  • One rule governs every screen: log a saved food in two taps from Home, confirm a feeding in one.

The hard partKeeping the core loop fast while the feature count grew. Every UI change is tap-counted before and after — the apps this competes with all shipped redesigns whose top complaint was added taps.

TestFlight build 927 tables, RLS on all23 E2E flowsReact Native / Expo / TypeScript / Supabase / Postgres / Maestro / Astro / Cloudflare

ALIGNA

In progress2026

Founder — product design, engineering, and the prelaunch site

A 16" laptop backpack built around the spine instead of behind it — from spec sheet to pre-production samples.

Every backpack hangs its load a few inches behind your spine, and your body fixes that the only way it can: shoulders roll forward, head drifts out, lower back rounds. ALIGNA starts from the back panel and designs the bag around it — three contoured zones, a gentle forward curve at the upper back, relief over the thoracic spine, and the deepest curve with the thickest padding at the lumbar, over a thin semi-rigid sheet that gives about half a centimetre and springs back.

The straps work as a system. Shoulder straps pull the load in toward the body, a low-mounted chest strap draws the shoulders back and down, and the lumbar curve pushes forward from behind, so the weight sits within an inch of the spine. 600D shell, all-metal hardware, sized to a 16" MacBook Pro. Design and tech pack were finished in August 2026 and pre-production samples exist in three colours. The Kickstarter campaign is in preparation; the prelaunch site is collecting the list.

  • A three-zone contoured back panel with a semi-rigid core — the mechanism most "ergonomic" bags assert in copy and never show.
  • Push-pull strap geometry that positions the load 2–3 cm from the spine.
  • Full tech pack and amended spec sheet; samples in three colourways.
  • Prelaunch site on Astro and Cloudflare Workers with email capture.

The hard partMaking a posture product that does not look like medical equipment. Every premium carry brand is light-background and photo-led; every posture product is a diagram. The bag, and the site, have to be both at once.

Fusion 360 / Astro / Cloudflare Workers

02 — Research

Machine learning, measured

Work where the result is a number, and the negative results are reported next to the wins.

Multimodal music emotion recognition

In progress2026

Solo

Thirty-two experiments on whether a song's notes, recording, or lyrics predict its mood — and why the top score only tells part of the story.

Can you tell how a song feels from its notes, its lyrics, or its recording, and which of the three actually knows? Every model predicts one of four emotion groups — valence crossed with arousal — so results stay comparable across inputs that share nothing else.

Thirty-two experiments on three datasets: symbolic features from MIDI, TF-IDF lyrics into an SVM, acoustic features from audio, early and weighted late fusion where both exist, and DistilBERT fine-tuning against two LLMs. Cross-validation and the official test split are reported separately, because they answer different questions.

  • Combining audio and lyrics on matched samples helped every emotion group: 0.677 lyrics alone, 0.625 audio alone, 0.743 fused. Q1 gained the most, Q4 the least and stayed the hardest.
  • The LLM's 0.764 and fusion's 0.743 are not compared head to head. One is a held-out lyrics split, the other cross-validation on paired data; a shared test set would be needed first.
  • Few-shot prompting lowered both LLMs' scores. That says the tested setups did worse, not that examples hurt in general.

The hard partAn audio model that was 64% accurate scored 0.025 F1 on tense music and 0.089 on calm music — the accuracy number hid it. Rebalancing with SMOTE took macro-F1 from 0.395 to 0.494 and cost three points of accuracy, a trade worth making when all four moods matter.

32 experiments0.743 macro-F1 · audio + lyrics, cross-validated0.764 · GPT-5.5 zero-shot, held-out lyricsPython / scikit-learn / PyTorch / DistilBERT / OpenAI API

03 — Projects

Systems and experiments

PAOS — personal agent platform

In progress2026 — present

Solo

A local-first control plane that an AI agent must go through for memory, isolation, permissions, and audit.

A private, local-first control plane for a personal AI agent. The agent runtime handles messaging and tool use; PAOS is the deterministic layer it has to pass through for memory, project isolation, permissions, approvals, and audit — so that a non-deterministic model operates inside rules that are not.

Single user by design: not a service, not multi-tenant, not for resale. The core is in — isolation, memory, approvals, coding tools, and browser control.

  • Project isolation, so work in one context cannot read or write another
  • Approval gates and an audit trail for every side-effecting action

The hard partMaking approvals and isolation deterministic when the thing being governed is a model that is not.

Python / OpenClaw

VerityRAG

In progress2026

Solo

A Slack-first RAG service that respects the permissions of the documents it retrieves from.

Retrieval that respects access control: a query never surfaces a chunk the asker could not open in the source system. Multi-persona and faceted, so the same corpus answers differently depending on who is asking and what they are allowed to see. Slack is the interface.

A production-lean monorepo on AWS — a FastAPI service for auth, Slack, ask, admin, and connectors; an SQS-driven ingestion and sync worker; Terraform for the infrastructure; and a drop-in local learnset for indexing files without a connector.

  • ACL-safe retrieval: permissions travel with the chunk
  • Slack as the primary surface, with a FastAPI admin and connector API behind it
  • Terraform-defined AWS deployment
FastAPI / Python / AWS / SQS / Terraform / Postgres

Paper solver for Mentra Live

Shipped2026

Solo

Say "solve this" and the glasses photograph the page, read it, and answer out loud.

Say "solve this" while wearing Mentra Live glasses. The app catches the phrase in the live speech stream, takes one photo from the glasses' camera, sends it to OpenAI's vision API, and reads the answer back through the glasses' audio. No phone, no hands, no screen.

A MentraOS miniapp in TypeScript, small on purpose: the whole loop is a transcription trigger, a camera request, a vision call, and a spoken reply.

  • Voice-triggered from the transcription stream
  • Phrase to spoken answer with nothing on a screen
TypeScript / MentraOS / OpenAI vision

04 — Work

Where I've worked

  1. Unlearn

    2026 — present

    Software Engineering Intern · AI-generated digital twins of patients, to run smaller and faster clinical trials.

    • Model architecture and experiment tracking for the disease-progression models behind the digital twins, alongside published researchers.
    • Data protocols and curation, agentic workflows, and the internal tooling the research team runs on.
  2. Perception Innovations · Purdue ECE

    2025 — present

    Machine Learning Engineer · The Lightform 1 holographic display.

    • Neural networks that detect face position and eye angle from live video, so the hologram stays in the viewer's line of sight.
    • Gesture-detection models that track hands and movement for touchless interaction. With Prof. Alan, Purdue ECE.
  3. Oro Labs

    Summer 2025

    Software Engineering Intern · Agentic procurement orchestration for enterprises.

    • Streamlined CI/CD and deployment pipelines in GitHub Actions — roughly 10% of engineering time saved.
    • Internal tools and automation scripts that took about 80% of routine fixes off people's plates.
    • Backend development and testing, with AWS.
  4. DataMermaid

    Summer 2023

    Software Engineering Intern · An open platform for coral-reef survey data.

    • R and Python pipelines that pull survey data from several research platforms, transform it, and load it into MERMAID through its APIs.
    • The result: researchers analyse data from multiple platforms in one place instead of reconciling exports by hand.

05 — Writing

Notes and writeups

06 — About

The through-line

Most of what I build gets shipped rather than left in a notebook. That is partly temperament and partly where I came from: FRC robotics, where a design that only exists in CAD has not happened yet. A CNC router and a 3D printer feel about as normal to me as a terminal, which is how a laptop backpack ended up on this page next to a RAG service.

The through-line is the same either way — find the part that is actually hard, measure it, and be honest about what did not work.