$ whoami

ECE @ UT Austin · prev. SDE Intern @ AWS · building edge-AI, embedded & ML.

I build at the boundary of software and hardware, from STM32 firmware to agentic AI developer tools.

kaitlyn@portfolio · zsh

about

Hello!!! I'm Kaitlyn, an ECE student at UT Austin. 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.

Lately that's looked like a machine-learning steering controller for an autonomous car, a face-recognition system that can tell a live person from a photo held up to the camera, firmware for a hyperloop pod, and a summer at Amazon building agentic AI tooling, plus a hackathon win where a panel of Amazon L8 directors picked our build as the best of 190+ engineers.

Also, for no defensible reason, a working Fruit Ninja game on a microcontroller, running on a custom PCB I designed, printed, and soldered myself!

I love watching code I wrote reach out and move something in the real world, and I'm just as curious about pushing AI down onto that same hardware, where it has to be small, fast, and right the first time. I tend to chase ideas all the way to something that actually works: an offline translation tool I built ended up with real users requesting features, which is still the most fun kind of feedback I've gotten.

Being a first-gen student taught me to reverse-engineer systems nobody explained to me, which is conveniently most of engineering. I'm just as comfortable training a model in Python as I am a few layers below where most software stops: in the firmware, in the signal, in the part where it either works on the bench or it doesn't.

Off the clock, catch me at more concerts than is reasonable, playing sudoku and learning more patterns to solve them faster, hiking, or working on my steady rotation of Raspberry Pi and Arduino projects :D!

experience

Amazon (AWS) · SDE Intern · GenAI Developer Tools

Summer 2026 · Seattle, WA

TypeScript · Java · MCP · AWS Lambda · DynamoDB · Bedrock · CDK

  • ▹Architected a self-augmenting agent runtime: a proxy that spawns child MCP servers as live subprocesses, so a coding agent acquires a tool mid-session with no restart, hardened against prompt injection and tool poisoning.
  • ▹Built the toolchain behind it (3 services, 369 tests): context-budget-aware BM25 + fuzzy retrieval over a ~4,000-server enterprise registry, serving warm queries under 10ms against a ~2s cold build.
  • ▹Authored a 26-scenario eval suite spanning tool acquisition, correct refusal, and prompt-injection resistance, scored pass@1 behind an LLM judge plus a deterministic state check, lifting task success from 22.1% to 78.8%.
  • ▹Adapted the platform's 120-scenario golden benchmark to prove the runtime doesn't degrade the server it runs alongside (77.7% vs 81.3%), replaying tool calls from fixtures so credential-gated backends scored deterministically.
  • ▹Quantified the case against preloading: fetching tools on demand cut an agent's idle context 70% (58K → 17K tokens) and scored 7.6 points higher, against a measured ~11s discovery cost per task.
  • ▹Designed a serverless telemetry pipeline (Lambda, CloudWatch metrics and dashboards) measuring how agents adopt the tooling, with a lazy coalescing buffer and fail-safe flush so observability can never add latency to or break a tool call.

Texas EcoCar · Connected & Automated Vehicles Team

Spring 2026 · Austin, TX

C/C++ · MATLAB/Simulink · Python · Gaussian Process Regression

  • ▹Engineered a data-driven EPS steering controller using Gaussian Process regression to replace a gain-scheduled PID, eliminating manual calibration while matching lane-tracking performance at 0.23 m RMSE.
  • ▹Designed a real-time fault detector using GP prediction variance as a confidence metric, catching out-of-envelope operation via an 11,600× variance spike and triggering automatic fallback to proportional control.
  • ▹Built a system-identification pipeline generating 678k data points across 24 operating conditions; validated GP uncertainty bounds with 100% coverage within 2σ.

Texas Guadaloop · Hyperloop Engineering · Embedded

Spring 2026 · Austin, TX

C · STM32 · ADC · DMA · UART · CAN

  • ▹Developed a multi-channel STM32 sensor-acquisition system using ADC with DMA circular buffering for real-time Hall-effect speed measurement, plus a voltage-to-Gauss calibration pipeline from datasheet characterization.
  • ▹Documented the pod-wide embedded architecture as the team-wide interface reference: 9 distributed STM32 nodes, CAN bus routing topology, and a LoRa telemetry link to the ground station.

projects

🏆 1st place at Amazon's internal hackathon, out of 190+ engineers competing. Cleared a cohort-wide peer vote, then a panel of Amazon L8 directors named ours the best build in the field.

Amazon flies in hundreds of interns to cities where they know nobody, then seats them on heads-down teams for ten weeks. We surveyed 45+ of them first: 70% had never met peers sitting nearby, and 58% ate lunch alone weekly. That pointed the work at the last mile: not scoring matches, but getting two people to actually sit down.

  • A 16-question survey feeds a recommender that scores by Gower similarity and auto-weights each question by its entropy, so questions everyone answers identically carry no signal.
  • Gumbel-top-k sampling and MMR re-ranking keep your slate genuinely varied instead of five clones of you, with your own team hard-gated out.
  • Serverless on real AWS behind internal SSO, not localhost: Lambda, API Gateway, single-table DynamoDB, Bedrock icebreakers, and a 93-chunk RAG onboarding bot guaranteed to cite a real doc.
  • Mine specifically: the two-sided invite protocol, with strict sender/recipient role separation and cross-device sync so neither side can accept its own invite, plus read receipts, calendar booking, and the match-filtering layer.
  • After the win I added crowdsourced map spots, geocoded server-side and signed with SigV4 I hand-rolled in pure Node crypto, because the build sandbox blocks network access and the AWS SDK client wasn't available.

→ 1st of 190+ engineers. 50 of the team's 109 commits and 138 of its 157 tests, the most of anyone on either count.

  • React
  • AWS Lambda
  • DynamoDB
  • Bedrock
  • Titan embeddings
  • API Gateway
  • CDK
  • SigV4
  • RAG
  • Vitest
Case study + demo

Face recognition that knows when it's being fooled: a liveness model that tells a real face from a photo or a phone screen, and gates recognition behind it.

I wrote the first version as a webcam face-recognition tool and it worked, until I held up a photo of myself and it greeted me by name. The matcher wasn't wrong. "Is this the right face" and "is there a person here" are different questions, and answering only the first produces a system that feels secure and isn't.

  • Trains a small PyTorch model to detect presentation attacks, scored with the ISO/IEC 30107-3 metrics the PAD literature reports: APCER per attack type, BPCER, ACER, EER.
  • Liveness runs before recognition, so a rejected face is never embedded, enforced by a test with a call counter. The UI never prints "SPOOF, matched Kaitlyn", which would tell an attacker their spoof found the right target.
  • Trust fails closed: with no liveness model loaded it reports UNVERIFIED, never TRUSTED, because a check that defaults to pass is worse than no check at all.
  • A train/serve preprocessing mismatch was enrolling on an aligned crop and matching on an unaligned one, so embeddings landed in different regions of the space and matching degraded silently, with nothing ever erroring.
  • --seed silently didn't work: augmentation built an unseeded RNG per call, making every metric unverifiable, including to me. Now seeded from (seed, epoch, index), so two runs produce bit-identical weights.
  • dlib is gone, so there's no CMake or C++ toolchain to install, and CI proves a clean install across Linux/macOS/Windows × Python 3.10 and 3.13.

→ Liveness at 0.44 ms median on a 1.0 MB, 226K-param model, about 2% of the frame budget. 5,600 lines, 304 tests. Accuracy on real PAD data is deliberately unpublished: the synthetic fixture is trivially separable and reports 0.00% on everything, so quoting it would be meaningless.

  • Python
  • PyTorch
  • ONNX Runtime
  • CoreML
  • OpenCV
  • Anti-spoofing
  • Edge AI
GitHub

Texas EcoCar

Data-driven steering controller for an autonomous vehicle, built on Gaussian Process regression.

Trained a GP model on a 678k-point system-identification pipeline to control steering, and used the GP's own variance estimate as a live fault detector, flagging when the model was operating outside its trusted region.

→ 0.23 m RMSE tracking error.

  • C/C++
  • MATLAB/Simulink
  • Python
  • ML

Offline speech-to-text and translation across 20+ languages, found and adopted by strangers on the open-source ecosystem.

Transcription and translation that runs entirely on your own machine: no cloud, no API keys, nothing leaving the device. I open-sourced it under MIT expecting nobody to notice, and people found it on their own.

  • 15 stars and 5 forks from developers I've never met, none of them classmates, teammates, or anyone I asked.
  • Users I don't know opened issues asking for features, which meant maintaining something real: triaging requests, deciding what belongs in scope, and answering people depending on it.
  • Runs fully offline on Vosk for speech recognition and Argos for translation, which is the point: it works on a machine with no internet and sends nothing anywhere.

→ Open-sourced under MIT, adopted by real users with zero promotion.

  • Python
  • Vosk
  • Argos
  • Open source
  • MIT
GitHub

edgedoctor

in progress

Open-source tool that diagnoses why ML models break or slow down when deployed to edge hardware.

Profiles a model against a target device and surfaces the real bottlenecks (quantization mismatches, unsupported ops, memory pressure) instead of leaving you to guess.

  • Python
  • Edge AI
  • ML Tooling
GitHub

Astrarium

Full-stack LLM app serving generated content with safety guards.

FastAPI + PostgreSQL backend serving LLM-generated content, with structured-output validation and fallback guards so a bad model response never breaks the experience.

  • Next.js
  • FastAPI
  • PostgreSQL

skills

AI / Agentic

  • MCP (Model Context Protocol)
  • LLM agents
  • Prompt engineering
  • Agent evals / benchmarking
  • LLM-as-judge
  • pass@k
  • Prompt-injection defense
  • Structured-output validation
  • RAG

Embedded / Hardware

  • STM32
  • ARM Cortex-M0
  • CAN bus
  • I2C / SPI / UART
  • ADC / DMA
  • Real-time systems
  • FSM design
  • Timers / interrupts
  • GPIO
  • PCB layout
  • Datasheet bring-up
  • Raspberry Pi
  • MATLAB / Simulink
  • KiCad
  • LTSpice

ML / Perception

  • PyTorch
  • ONNX Runtime
  • CoreML
  • OpenCV
  • Quantization (INT8)
  • Gaussian Process regression
  • Real-time video inference
  • Anti-spoofing / PAD
  • System identification
  • Vosk (STT)
  • Argos (NMT)

Languages

  • C / C++
  • Python
  • Java
  • TypeScript / JavaScript
  • MATLAB
  • Assembly (ARM Cortex-M0, LC-3)
  • SQL
  • LaTeX

Cloud / Backend

  • AWS
  • Lambda
  • DynamoDB
  • Bedrock
  • API Gateway
  • CloudWatch
  • CDK
  • Serverless architecture
  • Distributed systems
  • Observability / telemetry
  • SigV4 request signing
  • Threat modeling

Systems / Software

  • Linux
  • Git
  • GDB
  • CMake
  • Valgrind
  • Concurrency / multithreading
  • FastAPI
  • PostgreSQL
  • REST APIs
  • Next.js
  • React
  • CI/CD (GitHub Actions)
  • Docker
  • Unit / integration testing
  • Vitest
  • pytest
  • Logic analyzer
  • Oscilloscope

awards

  • 1st Place, Amazon Internal Hackathon: best build among 190+ engineers, selected by a panel of Amazon L8 directors
  • NCWIT Aspirations in Computing: National Honorable Mention & Houston Affiliate Winner
  • Engineering Honors Scholarship
  • National First-Gen Recognition

contact

I'm looking for Summer 2027 software / ML / embedded / edge-AI internships. The fastest way to reach me is email.

or fill in the blanks. it opens in your mail app, promise:

Hi Kaitlyn, I'mfrom. I'd love to talk about . You can reach me at.

opening your mail app…