Home

Work and projects by Shayan Poigai

[ CAPTAIN'S LOG ]
STARDATE 78210.4

Experience

  1. Sept 2025 — June 2026

    CS Teaching Assistant & Algorithms Grader

    Santa Clara University

    • Mentored 40+ students in C++ — memory management, pointers, and OOP — and debugged logic errors live using GDB.
    • Graded Theory of Algorithms for 40+ students across 2 sections, evaluating runtime analysis, greedy, divide-and-conquer, and dynamic-programming solutions.
  2. Dec 2025 — June 2026

    Machine Learning Research Assistant

    Santa Clara University

    • Spent six months studying what people actually think about LLMs as a therapeutic tool, not what they say in surveys, but what they say to each other, unprompted, across mental-health communities on Twitter, Reddit, and YouTube.
    • The modeling wasn't the hard part. 5,000+ scraped posts are a mess of slang, typos, and sarcasm; most of my time went into Pandas preprocessing, normalizing text until BERTopic, LDA, and NMF could surface real structure instead of noise.
    • Co-authored the paper as primary writer, which meant learning LaTeX in Overleaf, fighting table formatting until the columns behaved, and hunting down references — figuring out which prior work actually supported a claim rather than just sounding adjacent to it.
    • Writing the paper forced a rigor the code never did. Producing a topic model is one thing; defending why the topics mean anything is another.
    • Co-authored a short paper accepted to HIBIBI 2026 (collocated with IEEE/ACM ASONAM), to be published by Springer - the payoff for months of wrangling messy data and learning to write like a researcher.
  3. May 2026 — Present

    Founding Software Engineer

    Adorus (adorusjewels.com)

    • Adorus started as an idea between siblings. My sister and I co-founded it, split the work by what we're each good at, and agreed on one thing: build something we'd actually be proud to put our name on.
    • Given my technical background, I took ownership of the entire engineering side. Every layer, data models, API contracts, component architecture, and deployment, is mine to design and be accountable for, which means there's no senior engineer to check my thinking. I've learned to be my own code reviewer.
    • We seriously considered Shopify. Building it ourselves was cheaper and gave us full control over how the site works, so we went that way, a decision I own the consequences of every time something breaks at 2am.
    • The stack: React.js/Node.js frontend, Java Spring Boot services, PostgreSQL, deployed on AWS EC2 with S3 and CloudFront serving product images through a private bucket. Most of the real work has been the unglamorous foundations: authentication, image pipelines, a schema that won't buckle when real orders arrive.
    • The parts I couldn't build, we went and found. My sister and I reached out cold on social media to photographers and marketers working in the industry, asking people with real careers to help us. Learning to ask for help turned out to be a skill in itself.
    • Next: building toward AI agents over an MCP server to give us a clearer read on customer behavior and satisfaction, so the site can adapt to how people actually use it rather than how we assumed they would.
  4. June 2026 — August 2026

    Software Engineering Intern

    HerbsPro

    • 10 week Summer internship program where I developed backend features for the HerbsPro E-commerce web application
    • Built backend infrastructure: a Python Model Context Protocol (FastMCP) server bridging a MySQL warehouse management system with LLMs, enabling agents to query live stock and write split-shipment pick tickets - automating order routing and cutting manual Warehouse Management System work by 30%
    • Engineered a cache-aside Redis layer with event-driven invalidation for a 50,000+ SKU catalog, cutting MySQL query volume by 60% and product API response times from 200ms to 90ms.
  5. August 2026 - Present

    Forward Deployed Engineer Intern

    Countera

    • Built and operated an AI data enrichment pipeline that processed 2,409 records across 372 sources, resolving the correct source page for 95.7%.
    • Deployed vision-language extraction that read 1,084 structured documents directly from photographs - 45% of all records processed - covering data published only as images.
  6. Sept 2026 — Present

    Graph Neural Networks & NLP Research Assistant

    Santa Clara University

    • Built a GATv2 graph neural network in PyTorch Geometric that spots when someone is becoming emotionally dependent on an AI assistant, reaching 96% accuracy on a held-back test set — about 4 points above the versions without the graph, with every margin holding up under resampling rather than resting on one lucky split.
    • Moved the team onto Mental-RoBERTa, a language model trained on mental-health writing, which took accuracy from 91% to 96% and cut the missed cases roughly in half. The model can flag a conversation halfway through at 92%, and I tuned its confidence scores so they line up with how often it's actually right.
    • Most of the work was trying to prove the result wrong before anyone else could. 26% of our 2,000 matched conversations shared word-for-word identical replies, which would have leaked test answers into training, so I redesigned the split. Training on one AI writer and testing on another dropped accuracy 18 points — the model was partly learning who wrote the text rather than the behaviour.
    • Scrambling the labels and retraining scored exactly chance, which is what an honest setup has to do. Running the model six ways from three starting points separated what the graph actually adds (~1.4 points) from run-to-run variation, and an audit of the published research code we built on turned up five flaws in its method, including a step that let the model peek at the test set.
    • Engineering: 4,000 conversations into graphs linking every message to the ones around it — 400,000 labelled links — in under a second with nothing failing the data checks, plus a FastAPI service returning a risk score and the three messages behind it in ~70ms, matching the offline pipeline to within a rounding error. Wrote the technical documentation, including 14 recorded risks to the method and a plain-language glossary.

Projects

1 / 8
  1. SceneSafe

    September - October 2026
    • Places an ad in the film scene that suits it and blocks the scenes an advertiser can't be seen next to, across 35 public-domain films — 49.9 hours of video.
    • Layering Qwen3-VL scene descriptions on top of OpenAI CLIP image search lifted how often an ad lands somewhere it fits from 48% to 69% of its top ten, and held on 7 films held back from development; weapons detection went from 0 of 9 test scenes to 8 of 9, cutting wrongly blocked scenes by 26 points while letting through 0.3 more risky ones.

    Searching the library costs ~40× less than checking every frame — 403 → 10 seconds of compute per hour of video, with 179,545 frames in FAISS answering in 0.25 ms. Pricing the pipeline at ~$227 per 1,000 hours showed where the money actually goes: the models are 93% of it, the frame search 1.5%.

    • Python
    • PyTorch
    • OpenAI CLIP
    • Qwen3-VL
    • FAISS
    • Whisper
  2. WikiPatrol

    October 2026
    • A TypeScript + Kafka pipeline that reads every English Wikipedia edit the second it happens, and rides out a connection drop every 2–17 minutes without losing an edit or counting one twice.
    • Tested whether a paid model earns its price: 31% of the edits it flagged really had been reverted, against 21% for a free model on a laptop, at ~$0.22 per 1,000 edits — while a free pre-filter cuts the edits sent to the AI by 67–87% and misses 13–24% of the bad ones.

    About 78% of the edits Wikipedia reverts aren't vandalism, so judging intent was the wrong target — the project now predicts reverts instead.

    • TypeScript
    • Kafka
    • Next.js
    • Docker
    • Vercel
  3. CineInfer

    September - October 2026
    • Two-stage movie recommender over 25M MovieLens ratings: a two-tower network retrieves 200 candidates from 62K movies, then a LightGBM ranker picks the top 10.
    • Beats the best traditional baseline (EASE) by 38.5% NDCG@10, served at a 5 ms median latency, with an Airflow DAG that only publishes a retrained model if it scores better.

    Seven predictions were committed and tagged on GitHub before any neural model was trained, and five turned out wrong; all five are reported. A random split would have inflated scores 2.27×, so everything is tested on each user's most recent ratings.

    • Python
    • PyTorch
    • LightGBM
    • FastAPI
    • DuckDB
    • Spark
    • Airflow
  4. Swing Stock Analysis Agent

    July - September 2026
    • Open-source CLI agent that detects unusual stock moves, retrieves news published before each move began, and explains the cause — or says "unexplained" rather than guessing.
    • Splits each day's return into market, sector, and company-only moves, then pins the minute the move began from intraday bars — no model is involved until the final judgement, so "before" actually means before.
    • Ingests 28 sources (SEC EDGAR, GDELT via BigQuery, RSS/IR feeds) into PostgreSQL + pgvector, deduplicated with MinHash and embeddings; one combined BigQuery query cut projected scan volume ~99%.
    • A LangGraph pipeline strips any citation that doesn't resolve to a real retrieved article, and a verdict resting on a dropped citation falls back to "unexplained". 412 tests; published via PyPI Trusted Publishing.

    The model never gets to invent a story: a placebo test that fed it deliberately unrelated evidence found 0 fabricated explanations in 38 trials — a number re-measured on every release rather than asserted.

    • Python
    • LangGraph
    • Gemini
    • PostgreSQL
    • pgvector
    • BigQuery
    • pytest
  5. Kuhn Poker vs Quantum

    June 2026
    • A 6-qubit, 12-parameter variational circuit (superposition + entanglement) infers your mixed strategy as you play.
    • Full-stack: FastAPI backend + React frontend, deployed on Render and Vercel.
    • Measurement-error mitigation keeps noisy qubit readouts from skewing the AI's decisions.

    Ran on real IBM quantum hardware (ibm_fez): on a 4,096-shot run, the real-chip probabilities matched the ideal simulation within ~1.7 percentage points on average — the remaining gap attributable to quantum noise.

    • Qiskit
    • IBM Quantum
    • FastAPI
    • React
    • Vercel
    • Render
  6. Evermind

    March 2026
    • Voice-first empathetic therapist agent: speech streams over WebSockets to Hume AI for emotional-tone detection, and Gemini generates warm, context-aware replies.
    • A Neo4j knowledge graph stores emotions and topics as nodes and their relationships as edges, giving the agent short-term memory that persists across a session instead of resetting each turn.
    • Next.js frontend with a React Three Fiber voice orb that reacts to audio, a live transcript, and a real-time view of the growing knowledge graph.

    Built in 24 hours at Hack for Humanity 2026 with a team of six. The hard part wasn't the model — it was AI therapy's real limitation, statelessness. We fought it by turning unstructured conversation into a structured emotional graph, a database none of us had built before.

    • FastAPI
    • Neo4j
    • Gemini
    • Hume AI
    • Next.js
    • Three.js
    • WebSockets
  7. Disease Tracker

    October 2025
    • FastAPI REST API serving real-time disease metrics and risk assessments with low-latency responses.
    • AWS Bedrock drives an automated AI risk-scoring pipeline over public-health data.
    • DynamoDB schemas designed for scalable ingestion and clean backend-to-frontend flow.

    Built in a weekend at the AWS × INRIX 2025 hackathon — the Bedrock scoring layer is what turned a raw data feed into something that actually flags emerging hotspots.

    • React
    • Node
    • FastAPI
    • AWS Bedrock
    • DynamoDB
  8. Social Network

    September - December 2025
    • Desktop social network in C++/Qt with a GUI for profiles, posts, and comments; MVC keeps UI and logic separate.
    • File I/O persists users, friendships, posts, and comments across sessions.
    • A custom graph models friendships; BFS traversal generates friend suggestions.

    No graph library — the friend network is a hand-rolled adjacency structure, and "people you may know" falls straight out of a breadth-first walk over friends-of-friends.

    • C++
    • QT
    • MVC
    • Graphs
    • Makefile