Software engineer · published AI researcher

Software around language models,
and the code that checks them.

I'm Shawn Liu, a first-year M.S. student in computer science at Columbia. I build software around language models, and the part I care about most is what checks the output before a person sees it. Two of those systems are live, Loop and Foothold. Four published papers behind them. Looking for a Summer 2027 software or ML engineering internship.

B.S. CS · UC Irvine 2026 M.S. CS · Columbia, expected Jan 2028 Open to SWE / ML internships
Cross-modal attention heatmap learned by the WACV 2026 event-encoder, highlighting salient regions
Published Cross-modal event-encoder attention · WACV 2026

Cross-modal attention learned by our WACV 2026 event encoder, one of four accepted papers.

Published at WACV 2026 NeurIPS 2025 ISLPED 2026 Frontiers in AI
4
Accepted papers · WACV, NeurIPS workshop, ISLPED, Frontiers in AI
4×
Lower projected FHE bootstrapping overhead, in a CKKS noise simulation
+15.2pts
Zero-shot points gained on unseen N-ImageNet classes · WACV 2026
65%
Fewer UAV carrier-landing failures than legacy optical markers, in adverse-weather simulation

01 Flagship · LLM systems

Loop

Give Loop a career goal and your free hours and it builds a study plan on your Google Calendar. Five language-model nodes draft the plan; ordinary code validates and schedules it, and nothing reaches the calendar until you approve. I built it for my own daily use, and it runs at loop-study.com.

LLMs propose. Deterministic code disposes.

Five LLM nodes write the plans and the prose. Everything that can actually touch your calendar is ordinary code, validated, and waits for your approval.

Propose · five LLM nodes, one isolated package
Strategist syllabus drafted from retrieved source claims, with citations
Planner structured task plan from a validated syllabus
Reflection summary words for drift that deterministic code already classified
User-facing explanation words for an outcome it is not allowed to change
Resume intake skills read out of a resume, mapped to a closed taxonomy

The LLM SDK cannot be imported outside this package. import-linter fails the build if you try.

Dispose · deterministic
Validation layer five checks: schema, graph, coverage, user-fit, scheduling. Failures go back to the LLM as typed repairs, twice at most
Greedy scheduler draft only, no write access
Approval gate before calendar writes nothing lands on the calendar until you say so
Calendar write manager the only code that writes: it rechecks the approval and the payload hash, dry-runs, catches duplicates, verifies after writing, and offers rollback, retry, or keep
Google Calendar
5,152
Tests across backend and frontend, 4,826 of them behind the API
5
LLM nodes. Everything else is ordinary code
242
Source documents in the corpus a plan can cite
0.76
Recall@5 over 75 labeled retrieval queries, pinned in the repo as a floor. MRR 0.71

Where the plan's claims come from

Syllabi are not generated from nothing. A curated corpus of 242 documents sits behind BM25 retrieval, so every claim in a plan points back at where it came from, and the bibliography is generated from the same corpus. Retrieval is ordinary code; the model only consumes what it is handed. Graded on 75 labeled queries against a pinned 188-document snapshot: recall@5 0.76, MRR 0.71. I also built a dense-embedding hybrid that scored 0.08 MRR higher and did not ship it, because BM25 alone was already over the floor and the hybrid doubled the moving parts.

A prompt change nobody measured fails the build

Every LLM call lands in a SQLite call log with tokens, cost, and latency. A capture tool records real model outputs into committed recordings, and CI re-grades those recordings offline on every push: schema validity, repair recovery, plan-quality metrics, and an offline judge for the prose. The grader never calls a model. Prompt bytes are pinned by SHA-256 in two layers, fourteen pin cases in all, so editing a prompt without re-recording fails make check. Live API calls never run in CI.

One fixture deliberately fails, so I know the gate still catches something. In fairness to the gate, no real prompt change has ever tripped it: 126 of 126 CI runs are green.

What still runs by hand

The retrieval floors are pinned in the repo, but the command that checks them is not in CI yet, so a retrieval regression reaches me later than a prompt one. That is the next thing I fix. The frontend tests are real and they pass, but they are not in the CI workflow either, so the 5,152 number is not one gate. The per-user cost model is a written baseline, not something the code enforces.

The deployment

The whole app ships as one Docker image on Fly.io: a Node stage builds the React SPA, then a python:3.11-slim stage installs exact-pinned dependencies, so no dev tooling reaches production. It is deliberately one uvicorn process on one always-on machine, because SQLite with WAL is a one-process store and there is nothing to gain from worker pools fighting over it. OAuth tokens are encrypted at rest and Loop never stores raw calendar event titles.

Python 3.11Pydantic v2FastAPISQLite + WALReact + TS + ViteAnthropic Messages APIGoogle Calendar OAuthDockerFly.io
01 / Systems

The checks before the output

Loop puts real weeks on a real calendar, and every write sits behind ordinary validation, an approval gate, and a CI job that re-grades recorded model outputs. Foothold works the same way: one Claude node drafts the appeal letter, and no course code in it survives without a matching finding.

See Loop
02 / Research

Four accepted papers

Two years in labs at UC Irvine on neuro-symbolic AI, hyperdimensional computing, multimodal models, and encrypted inference. WACV 2026, a NeurIPS 2025 workshop, ISLPED 2026, and Frontiers in AI.

Read the papers
03 / Bio

Off the clock

I live with two cats, Coconut and Kumquat. I listen to a lot of D'Angelo, shoot hoops, snowboard, and play too much Cyberpunk. The Spotify feed below is live, and it is mostly D'Angelo.

Meet the person

02 Selected research

Publications

Four accepted papers, and two I withdrew from review after the encrypted pipeline turned out to be simulated rather than end to end. The ones marked lead are where I am first author. Open any of them for the abstract, the figures, and what I actually did.

WACV 2026

Cross-Modal Event Encoder: Bridging Image–Text Knowledge to Event Streams

Aligns a trainable event-camera encoder to CLIP's frozen image-text space, so an event stream inherits CLIP's zero-shot labels: +15.2 points on unseen N-ImageNet classes.

Event-based Vision · CLIP · Cross-Modality · Zero-Shot

Attention heatmap from the cross-modal event encoder attending to salient regions
NeurIPS 2025 · NeurReps

Geometric Priors for Generalizable World Models via VSA

A Vector Symbolic Architecture gives a world model learned group structure, reaching 87.5% zero-shot accuracy where an MLP baseline does not.

VSA · World Models · Generalization

OpenReview ↗
FHRR state embeddings showing grid-like structure
FHRR (VSA): Grid-like structured embeddings preserve spatial relationships
MLP unstructured embeddings
MLP: Unstructured embeddings with no clear geometric pattern
Frontiers in AI

Optimal Hyperdimensional Representation for Learning & Cognitive Computation

One HDC encoding that adapts between learning and cognition, reaching 95% learning accuracy with correlated encodings.

HDC · Cognitive Computation · Neural-Symbolic

2026
Lead author Withdrawn from review · 2026

Brain-Inspired Reasoning under Homomorphic Encryption

Real CKKS noise measured in Microsoft SEAL, then injected into a simulation of encrypted graph inference: a noise-adaptive schedule cuts projected bootstrapping cost about 4× at over 90% accuracy. Inference never ran under real encryption, which is why I withdrew it.

FHE · HDC · Neurosymbolic AI · Privacy-Preserving ML

2026
Withdrawn from review · 2026

HyperEncrypt: Homomorphic Hyperdimensional Computing for Efficient & Secure Learning

HDC as an alternative to encrypted deep learning: shallow algebra that survives FHE noise. Under modeled CKKS noise, sparse bootstrapping schedules hold near-clean accuracy with up to an order of magnitude fewer refresh operations.

HDC · Kernel Methods · CKKS · Privacy-Preserving ML

2026
ISLPED 2026

Integrating Symbolic & Neural Mechanisms for Adversarially Robust HDC

Fuses Vision Transformer features with classical texture and shape descriptors through HDC, so accuracy falls off slowly under FGSM and genetic attacks: +17 to 26 points recovered from partial adversarial retraining.

HDC · Neurosymbolic AI · Adversarial Robustness · ViT

2026

03 Engineering

Things I've shipped

Foothold first, my second live system and my solo Stellic Pathfinders 2026 entry. Then the vision and healthcare work: a U.S. Navy collaboration, crash anticipation from dashcam video, and a course project that found the usual ECG benchmark split leaks patient identity. The full-stack products I shipped for a wholesale food business and a nonprofit are at the bottom.

Foothold demo video: the triage wall sorting a student's credits Watch the 2-minute demo
LLM systems · Stellic Pathfinders 2026 entry ● Live

Foothold · Transfer Credit Navigator

A California community college student enters their courses and a target UC or CSU and learns which will transfer. The verdict is deterministic over 352,024 ASSIST articulation rows and every finding cites its agreement; one Claude node drafts the appeal letter for at-risk courses, and every course code in it is checked against the findings. Built solo in three weeks for Stellic Pathfinders 2026, live at foothold-transfer.com.

FastAPI + PydanticSQLite FTS5React + TSClaude APIFly.io
31,236 agreements across 115 colleges and 15 campuses. Unfinished: the agreements cover 2025-26 and there is no refresh yet.
Visuals restricted CUI · U.S. Navy collaboration
Research · BiasLab @ UCI U.S. Navy

Safe UAV Landing for the U.S. Navy

A pose-estimation and symbolic-reasoning model in PyTorch for autonomous UAV carrier landing in adverse weather, replacing legacy fixed-pattern optical markers. The reasoning layer holds the landing whenever it sees a person on the deck.

Computer VisionPose EstimationSymbolic ReasoningPyTorchCUI dataset
65% fewer landing failures than legacy optical markers, in adverse-weather simulation.
Computer vision · autonomous driving

Neurosymbolic Crash Anticipation

Warns a driver before a crash from dashcam video alone. A 21.88M-parameter VideoMAE teacher is distilled into a 2.95M-parameter student that streams one frame at a time, and a YOLO11n plus ByteTrack layer with monocular collision geometry binds each warning to a tracked vehicle, so an alarm can be checked against what it saw.

VideoMAEKnowledge DistillationNeurosymbolicMonocular Geometry
3.05 s mean lead time before impact, 3 false alarms across 301 no-crash videos, 408 fps. Unfinished: no ego-motion estimate, so the geometry degrades in the ego vehicle's own turns.
code ↗
Healthcare ML · course project

Generalizable Arrhythmia Detection

A course project that found the usual MIT-BIH train/test split leaks patient identity, so the model learns the patient rather than the arrhythmia. The same 64,966-parameter CNN scores 98.36% beat-wise and 83.88% on a random patient-wise split. A search over 50,000 sampled patient assignments keeps all six beat classes in the honest test set.

CNNLSTM-AEMIT-BIHPatient-wise eval
98.36% vs 83.88%on the same model, two splits apart. Many published MIT-BIH results use the leaky one. Unfinished: the curated splits need retraining before I quote them.
repo ↗
Computational biology · BioIntelligence Lab

Structure-Aware Antimicrobial Peptide Prediction

Antimicrobial peptide activity predicted from structure, not just chemistry: a graph convolutional network over ESMFold-predicted conformations, one node per amino acid residue and the bonds as edges, fused with SVM descriptors.

ESMFoldSVM / MLP / GNNQSARBioIntelligence Lab
+22% F1 from the geometric features at the chosen threshold, against QSAR descriptors alone. The number moves with the operating point.
Crash Anticipation demo scroll →
Shipped products full-stack work, earlier
E-commerce · solo build ● Live

AdamsFoods Wholesale

A wholesale e-commerce platform in React and Node / Express, with signed-URL media on S3 and JWT role-guarded admin routes. Built over the summer of 2025 and still live.

Nonprofit · CTC @ UCI Nonprofit

Feeding Pets of the Homeless

A donation-management platform for a national nonprofit, with role-based access for coordinators, donors, and admins across regional chapters. Built with Commit the Change at UCI, free of charge.

Internal tool

AdamsFoods Inventory

The inventory system that replaced their handwritten logs: Node.js routes over PostgreSQL, 300+ SKUs, low-stock alerts, CSV export, and a 3D map of the warehouse. It saves the staff five to seven hours a week.

code ↗

04 Stack

What I work in

Languages

  • Python
  • TypeScript / JavaScript
  • SQL
  • C / C++

Systems

  • FastAPI · Pydantic v2
  • SQLite / FTS5
  • PostgreSQL
  • React / TypeScript
  • Node / Express
  • OAuth · JWT

ML

  • PyTorch
  • scikit-learn
  • CLIP · ViT · VideoMAE
  • Knowledge distillation
  • Graph neural networks
  • Hyperdimensional computing
  • CKKS-FHE (SEAL)

LLM systems

  • Anthropic API
  • Retrieval eval · recall@k, MRR
  • LLM evaluation · CI gates
  • Structured outputs
  • Prompt versioning
  • Bounded repair loops

Infra

  • Docker
  • Fly.io · Vercel
  • AWS (S3)
  • CI/CD · Git
  • Linux

05 News

Recent updates

Aug 21, 2026
Foothold is live at foothold-transfer.com: a transfer-credit navigator for the California community college to UC/CSU corridor, built solo in three weeks for the Stellic Pathfinders 2026 challenge. The model never decides what transfers; the articulation agreement does. [2-min demo] [Project]
Jul 2026
Loop is deployed live at loop-study.com: a study planner where five LLM nodes draft and ordinary code validates, schedules, and waits for approval before touching a calendar. I built it for my own daily use. [Case study]
May 22, 2026
Integrating Symbolic and Neural Mechanisms for Adversarially Robust Hyperdimensional Computing was accepted to ISLPED 2026.
Apr 5, 2026
Live Spotify stats went up in the About section, if you want to see what I have had on repeat lately.
Jan 19, 2026
Optimal Hyperdimensional Representation for Learning and Cognitive Computation: third author, accepted to Frontiers in Artificial Intelligence. [Paper]
Dec 15, 2025
Started a new position at BioIntelligence Lab with Dr. Haleh Alimohamadi, building antimicrobial peptide classifiers from ESMFold-predicted structure and QSAR descriptors.
Nov 10, 2025
Cross-Modal Event Encoder: Bridging Image–Text Knowledge to Event Streams was accepted to WACV 2026.
Sept 23, 2025
Geometric Priors for Generalizable World Models via Vector Symbolic Architecture was accepted to NeurIPS 2025 Workshop NeurReps.

06 The person

The rest of it

I'm a first-year M.S. student in computer science at Columbia, expected January 2028, and I finished my B.S. in computer science at UC Irvine in 2026. At UCI I worked in BiasLab with Prof. Mohsen Imani on neuro-symbolic AI, hyperdimensional computing, multimodal models, and encrypted inference, and in the BioIntelligence Lab with Dr. Haleh Alimohamadi on structure-aware peptide prediction. I live with two cats, Coconut and Kumquat, who are named after fruit and are not otherwise alike. Most of what I read right now is about how machine learning systems fail in production rather than in papers.

LabsBiasLab @ UCI, 2024-2026 · BioIntelligence Lab @ UCI, 2025-2026
Off the clockBasketball, snowboarding, music, gaming
On repeatD'Angelo · Dijon · Mkgee
PlayingCyberpunk 2077
ReadingDesigning Machine Learning Systems by Chip Huyen

Favorite albums & live listening

D'Angelo - Voodoo album cover Dijon - Absolutely album cover Mkgee - Two Star & the Dream Police album cover

07 Teaching & service

Teaching

Learning Assistant, ICS 33

Intermediate programming with Python · UC Irvine, Spring 2025.

Pro bono

Web dev for nonprofits

Built & maintained tooling for Feeding Pets of the Homeless, free of charge.

Service

Youth In Action counselor

Student counselor mentoring youth through the YIA program.

Contact

Looking for a Summer 2027 internship.