kaitlyn= {
"school": "BS Electrical & Computer Engineering, UT Austin",
"focus": "Computer Architecture & Embedded Systems",
"prev": "SDE Intern @ AWS · GenAI Developer Tools",
"lives_in": "Austin, TX (school year) · Houston, TX (home)",
"works_on": ["agentic AI tooling", "embedded systems", "edge ML"],
"ask_me_about": "the last concert I went to (there are many)",
"fun_fact": "1st place at Amazon's internal hackathon: 190+ engineers, ""judged by a panel of Amazon L8 directors 🏆",
}I work in the overlap between embedded systems and machine learning. Close enough to the hardware to care about clock cycles, close enough to the models to care about what they get wrong. I like problems where the answer has to survive contact with real hardware, and I tend to chase an idea until it actually works.
Being a first-gen student taught me to reverse-engineer systems nobody explained to me, which is conveniently most of engineering.
Short version here. Full write-ups on kaitlynchen.dev →
LLM agents are stuck with whatever tools they booted with. I designed and shipped a proxy that runs child MCP servers as live subprocesses, so an agent reaches into a ~4,000-server enterprise registry, pulls the one tool it needs, and uses it mid-session with no restart, plus the telemetry service behind it: a Java Lambda feeding CloudWatch dashboards.
Then I benchmarked it. My own 26-scenario eval suite took the agent from a 22% baseline to 79%, and I adapted the platform's 120-scenario golden suite to prove my server doesn't degrade the one it runs alongside. My favorite result argues against my own instinct: preloading tools costs 8 points, because an agent already holding a close-enough tool stops looking for the right one.
70% less idle context, 58K tokens down to 17K. That's a tax the preloaded agent pays every turn whether it uses those tools or not. 3 services, 369 tests, warm lookups under 10ms, hardened against prompt injection and tool poisoning.
🏅 People's Choice Award at Amazon's AI Intern Expo, voted by the engineers who came by the booth.
TypeScriptJavaMCPLambdaDynamoDBCloudWatchCDK
🥇 Ctrl+Meet · repo →
Cross-team matchmaking for interns flown to a new city and seated on heads-down teams. A 16-question survey feeds a recommender that weights each question by how much it actually distinguishes people. Shipped on real AWS behind SSO.
🏆 Won the entire hackathon, out of 190+ engineers. Cleared a cohort-wide peer vote, then a panel of Amazon L8 directors picked it as the best build in the field.
ReactLambdaDynamoDBBedrockRAGCDK
🎙️ PolyScribe · repo →
Speech-to-text and translation across 20+ languages, running entirely on your own machine. No cloud, no API keys, nothing leaving the device.
Strangers found it, starred it, forked it, and started filing feature requests, none of them people I know or ever asked. Maintaining something other people actually depend on is still the most fun feedback I've gotten.
PythonVoskArgos
👤 TrainYourFace · repo →
Face recognition that knows when it's being fooled. A liveness model tells a real face from a photo or a phone screen, and recognition is gated behind it, so holding up a picture of me doesn't unlock anything.
Liveness in 0.44 ms on a 1.0 MB model, scored with the ISO/IEC 30107-3 metrics the field actually reports.
PythonPyTorchONNX RuntimeCoreMLAnti-spoofingEdge AI
Replaced the hand-tuned PID steering controller on UT's autonomous vehicle with a Gaussian Process model, which needs no manual calibration and reports its own uncertainty, so the car can tell when it's outside what it was trained on.
0.23 m RMSE lane tracking, trained on a 678,000-point system-ID pipeline.
C/C++MATLAB/SimulinkPythonControls
🩺 edgedoctor · repo →(in progress)
Tells you why your model broke or got slow once you put it on real edge hardware, instead of leaving you to guess.
PythonEdge AIML Tooling
LLM backend that validates every model response and falls back gracefully, so a flaky model never takes the app down.
FastAPIPostgreSQLNext.js
Every project above, written up properly, plus an interactive circuit-board background I probably spent too long on.
languages
C/C++ · Python · TypeScript/JavaScript · MATLAB · Assembly (ARM Cortex-M0, LC-3) · LaTeX
AI / agentic
MCP (Model Context Protocol) · LLM agents · RAG · prompt engineering · agent evals & benchmarking · LLM-as-judge · pass@k · structured-output validation · prompt-injection defense
embedded & hardware
STM32 · ARM Cortex-M0 · CAN bus · I2C/SPI/UART · ADC/DMA · real-time systems · FSM design · timers/interrupts · PCB layout · KiCad · LTSpice · datasheet bring-up · logic analyzer · oscilloscope
ML / perception
PyTorch · ONNX Runtime · CoreML · OpenCV · INT8 quantization · anti-spoofing / PAD · Gaussian Process regression · system identification · real-time video inference · Vosk (STT) · Argos (NMT)
systems, web & cloud
Linux · GDB · Valgrind · concurrency/multithreading · REST APIs · AWS Lambda · DynamoDB · CloudWatch · CDK
| 🏆 | 1st Place, Amazon Internal Hackathon · winner among 190+ engineers |
| 🏅 | People's Choice Award, Amazon AI Intern Expo · voted by attending engineers |
| 🌸 | NCWIT Aspirations in Computing · National Honorable Mention & Houston Affiliate Winner |
| 🎓 | Engineering Honors + Engineering Honors Scholarship · UT Austin Cockrell School |
| ✨ | National First-Gen Recognition |
- 🌱 learning: how far I can push real models onto small hardware before they stop being useful
- 💌 looking for: SWE / ML / embedded / edge-AI internships
- 🎧 outside of code: hiking, sudoku, and a steady rotation of Raspberry Pi projects


