Bob Zheng Software engineering · AI research Resume

Index

Base
Waterloo, Ontario
Coordinates
43.47° N, 80.54° W

Software Engineer / AI Researcher

Bob Zheng

BCS in Computer Science · University of Waterloo

I build agentic AI systems, ML pipelines and the full-stack products around them.

NowSoftware Engineer, Carta · Research Assistant, UW HCI Lab

Section 01

Profile section

University of Waterloo
BCS · 2023–2028

I work where large language models meet real software: agents that act through typed tools, research on aligning models at inference time, the ML infrastructure underneath, and the products that put it all in front of people.

Through roles at Carta, TD and Eon Media, and research with Prof. Edith Law (UW HCI Lab) and Prof. Usman Naseem (Macquarie University), I’ve shipped text-to-SQL data tooling, multi-agent prototypes, media-understanding pipelines and an accessibility scanner. I also first-authored VISPA, a paper accepted to the EMNLP 2026 Main Conference.

Program
Bachelor of Computer Science
Institution
University of Waterloo
Term
Sep 2023 – Apr 2028 (expected)
Cumulative GPA
93.66 / 100 (3.98 / 4.0)
Base
Waterloo · Toronto, Ontario
Focus
Agentic systems, LLM alignment, ML infrastructure, full-stack

Current

  • Carta
    Software Engineer, Data Ecosystem
  • UW HCI Lab
    Undergraduate Research Assistant
  • University of Waterloo
    Bachelor of Computer Science

Education

  • 2023–28University of Waterloo
    Bachelor of Computer Science
  • 2019–23Mentor College
    Ontario Secondary School Diploma

Section 02

Experience section

7 roles
2024 – present

  1. Software Engineer

    Carta

    ActiveData Ecosystem · Waterloo, ON

    –

    • Improving data quality for a Snowflake Cortex text-to-SQL agent served over MCP: profiling client queries, enriching semantic views with metrics, dimensions and verified questions, and building benchmarks and regression tests.
    • Streamlined API-docs CI/CD with CircleCI validation, automated upstream PRs and Jenkins auto-deploy on merge.

    Snowflake Cortex · Text-to-SQL · MCP · CircleCI · Jenkins

  2. Undergraduate Research Assistant

    UW HCI Lab

    ActiveWith Prof. Edith Law · Waterloo, ON

    – Present

    • Investigating student-directed multi-agent orchestration for learning: shipped a platform where a student coordinates a persistent study companion and per-subject tutor agents against self-defined goals.
    • Designed the conversation-history layer that keeps long sessions in context: rolling compaction folds old turns into a running summary behind an advancing watermark, over a scoped memory store the agent mutates through remember / recall / update tools.
    • Made the LLM an actor over the domain via typed tool-calling (quest-board writes, memory, workspace files with PDF extraction, assessment logging), so agent turns persist real state rather than text.

    Multi-agent systems · Tool calling · Agent memory · HCI

  3. Software Developer

    TD

    CompleteEnterprise Innovation · Toronto, ON

    –

    • Built an Accessibility Scanner browser extension in TypeScript (Vite, Express.js) to automate enterprise-wide web accessibility and compliance checks across internal web properties.
    • Architected a PostgreSQL database with optimized indexing for scan-result retrieval and eligible-domain lookup; maintained the Jenkins CI/CD pipeline with Vitest unit tests, coverage thresholds and security scans.
    • Contributed to a proof-of-concept multi-agent design system on Google ADK and Anthropic models, where ADK agents coordinate via A2A and function calling to delegate sub-tasks to specialized agents.
    • Built collaboration features on GCS and Firestore and enabled bidirectional sync between code prototypes and Figma via MCP and REST, with custom parsers that compressed Figma context by 50% for LLM consumption.
    • Studied ROS and experimented with a humanoid service robot’s 2D LiDAR and sonar sensors, tuning costmaps and path planning to prototype in-person scenarios such as customer greeting and appointment check-in.

    TypeScript · PostgreSQL · Jenkins · Google ADK · A2A · MCP · Firestore · ROS

  4. NLP Research Assistant

    Macquarie University

    CompleteWith Prof. Usman Naseem · Remote

    –

    • First-authored VISPA, a training-free pluralistic alignment framework accepted to the EMNLP 2026 Main Conference, replacing costly multi-model ensembles with modular, value-steered generation on a single frozen backbone.
    • Engineered the inference system: DeBERTa-based NLI classifiers rank human values, then PyTorch latent-space manipulation injects value directions into intermediate LLM activations at inference time.

    PyTorch · Representation engineering · DeBERTa · NLI · Alignment

  5. AI / ML Engineer, Co-op

    Eon Media

    CompleteToronto, ON

    –

    • Optimized face and logo detection with YOLOv8 and Dlib, improving media-indexing accuracy and speed.
    • Shipped transcript chunking with all-MiniLM-L12 and fine-tuned Mistral-7B to summarize media into searchable segments.
    • Built a Flask backend for pipeline health monitoring and MLOps: dataset management and automated training and evaluation.
    • Cut AWS EKS pod-creation and runtime cost through container right-sizing, algorithmic optimizations and leaner AWS API usage; improved scalability with Docker, Kubernetes and ECR/EKS.
    • Developed multi-player tracking for sports video using Deep SORT with a custom ImageNet-based feature extractor, plus team and jersey-number recognition and key-moment detection.
    • Led a proof of concept for Cumulus Media: word-level-timestamped transcription with Whisper, radio diarization with pyannote, and speaker clustering and identification with scikit-learn to unlock voice-based asset monetization.

    YOLOv8 · Mistral-7B · Flask · Kubernetes · AWS EKS · Deep SORT · Whisper · pyannote

  6. HCI Research Assistant

    University of Waterloo

    CompleteWaterloo, ON

    –

    • Designed and piloted a user study with a Figma prototype to evaluate curiosity-driven learning and navigation behaviours.
    • Engineered PCuri, a Chrome extension (Node.js, WXT) that turns browsing history into a knowledge graph: KeyBERT keyword extraction, near-duplicate merging with SequenceMatcher, and edges from thresholded co-occurrence.
    • Integrated Vercel AI to generate research-question prompts and chat guidance that reference specific graph nodes.

    User studies · Figma · WXT · KeyBERT · Knowledge graphs

  7. AI Software Developer Intern

    JuniorKids

    CompleteRemote

    –

    • Gathered Reddit posts and comments via API and filtered them with spaCy named-entity recognition; fine-tuned a BERT model on historical posts for sentiment scoring.
    • Configured an LSTM to predict stock trends from sentiment scores, price trends and financial indicators.
    • Deployed scheduled cloud functions that store financial and social-media data in PostgreSQL and MongoDB.
    • Integrated RAG into a chatbot that answers in natural language using the latest market news and insider activity.
    • Earlier in the term: forecast clothing demand with LSTM models and streamlined competitor research across 500+ brands with the Similarweb API.

    BERT · spaCy · LSTM · RAG · PostgreSQL · MongoDB

Volunteer & leadership

PeriodRoleOrganizationNotes
2024IT Developer & Tech Support (volunteer)Domestic Violence Victim’s Alliance, WaterlooAutomated workbooks with Google Apps Script; supported volunteers on hardware, software and the scheduling app.
2022–23Engineering Club Executive, Event CoordinatorMentor College, MississaugaManaged members, events and budget; planned workshops and races with teachers and the school board.
2020–23Outreach Club MemberMississaugaVolunteered at Compass Food Bank and Youth Without Shelter; helped plan club events.

Section 03

Research section

1 publication
3 research threads

Accepted · EMNLP 2026 Main Conference

VISPAPluralistic Alignment via Automatic Value Selection and Activation

Shenyan Zheng, Jiayou Zhong, Anudeex Shetty, Heng Ji, Preslav Nakov, Usman Naseem

High-stakes uses of language models need outputs that reflect a plurality of human values, not an averaged preference. VISPA is training-free: it automatically selects the values relevant to a prompt and activates them inside a single frozen model, replacing costly multi-model ensembles with modular, value-steered generation.

  1. 01SelectDeBERTa-based NLI classifiers rank the human values relevant to a prompt.
  2. 02SteerValue directions are injected into intermediate activations of a frozen LLM.
  3. 03GenerateResponses reflect the selected values, with no fine-tuning and no model ensemble.
Simplified schematic: a value ranker selects top-k values for a prompt, and their directions are added to one intermediate layer of a frozen language model. PROMPT VALUE RANKER NLI · DeBERTa TOP-K VALUES v1 v2 v3 h ← h + α·v L1 L2 Lk Ln FROZEN LLM · NO TRAINING RESPONSE value-steered
Fig. 1. A simplified schematic of the method. See the paper for the full formulation.

Read on arXiv Code

Research threads

  • Since 2026Student-directed multi-agent orchestration for learning
    UW HCI Lab, with Prof. Edith Law
  • 2025–26Pluralistic alignment and representation engineering
    Macquarie University, with Prof. Usman Naseem
  • 2024Curiosity-driven learning and browsing knowledge graphs
    University of Waterloo, HCI

Section 04

Projects section

11 projects
2022–2026

Featured · AI tutoring platform

ORIS

An agentic voice tutor that drives the lesson itself

–

  • Architected an agentic voice tutor on LiveKit Agents with custom tool-calling for material navigation, pacing and Q&A hand-off, letting the agent drive the lecture flow without constant user input.
  • Designed a sequence-ordered state-sync protocol over LiveKit data channels for real-time slide and annotation updates across browser, FastAPI orchestrator and agent worker, with request/ack confirmation on agent-initiated actions.
  • Shipped an automatic course-indexing pipeline that ingests study materials, then chunks, embeds and indexes them in FAISS for RAG; generated course outlines and slides via Claude (Anthropic API) with structured tool use.
  • Designed and built the responsive front end with Next.js, Radix UI and Framer Motion for smooth classroom and course-dashboard interactions.
Revision 1
Vapi voice SDK, Flask, WebSockets, AWS S3, Gemini 2.5 Pro
Revision 2
LiveKit Agents, FastAPI orchestrator, Claude (Anthropic API), FAISS
10Doctor LlamaMulti-agent medical assistant2024

MetaLlamaHack 2024 · Nov 2024 · Llama, RAG, Streamlit

  • Built a multi-agent medical assistant with voice interaction, real-time transcription and medical-term extraction via Clinical-AI-Apollo/Medical-NER.
  • Implemented a RAG agent using the PubMed API and fine-tuned Llama3-OpenBioLLM-70B to answer symptom- and disease-related questions.
  • Developed a vision agent that retrieves medical images via DuckDuckGo and uses Llama-3.2-11B-Vision to write accessible, patient-friendly descriptions.
09UWPilotCourse planner and prerequisite visualizer2024–25

Desktop app · Sep 2024 – Jan 2025 · Kotlin, Jetpack Compose, Ktor

  • Built a cross-platform desktop app in Kotlin and Jetpack Compose Desktop with a multi-module architecture for UWaterloo course planning and prerequisite visualization.
  • Integrated the UWaterloo Open Data API via Ktor and coroutines for real-time course schedule and enrollment data.
  • Implemented persistence with SQLDelight and MongoDB for user profiles and multi-term course tracking; shipped email and calendar features with Jakarta Mail.
  • Designed the UI in Figma, with custom theming, sidebar navigation and interactive prerequisite graphs via Compose state, and packaged Windows, macOS and Linux builds with Gradle.
08Fin4AllAll-in-one investment assistant2024

Hack the 6ix · Aug 2024 · LangChain, RAG, Django

  • Built a Streamlit app with financial trend charts and an integrated chatbot for ticker Q&A.
  • Implemented a LangChain RAG agent over embedded news headlines, indexed in MongoDB Atlas Vector Search for low-latency retrieval.
  • Developed Django APIs for ingestion and analytics, pulling real-time market data from Finnhub and Yahoo Finance.
  • Fine-tuned FinGPT (on Llama-2) for ticker-specific sentiment, complemented by VADER for lightweight scoring; deployed to GCP Cloud Run via Docker and GitHub Actions.
07MedScan MentorCT-scan learning aid for medical students2024

Ignition Hacks 2024 · Aug 2024 · YOLOv5, RAG, MongoDB

  • Used YOLOv5 for real-time detection of brain tumours in CT scans to support medical students’ self-learning.
  • Incorporated RAG over PubMed to bring up-to-date, relevant medical literature into the learning flow.
  • Designed the MongoDB data architecture for user data and interaction history.
06TrendSageReddit sentiment versus market trends2024

Team project · May 2024 · Python, Streamlit, AWS

  • Collected Reddit posts and comments with the Python Reddit API Wrapper and scored sentiment with VADER and TextBlob.
  • Deployed with Streamlit, Docker and AWS, using MongoDB for data and Google Cloud Scheduler to automate data fetching.
  • Built an analysis system and chatbot recommending tickers with three-day, one-week and one-month insights.
05Warrior Edu SchedulerDiscord bot for course calendars2024

Discord bot · Feb 2024 · Node.js, TypeScript

  • Built a Discord bot with Node.js and REST APIs so users can create, delete and share calendar events with quick commands.
  • Used HTML parsing for fast course-information lookup, bringing academic schedules straight into users’ calendars.
04DeltaLang CompilerCompiler front end for a toy language2024

Team project · Jan 2024 · C++, Jenkins, GoogleTest

  • Developed a state-machine-based data structure and algorithm for token recognition and lexing, built to scale and adapt.
  • Integrated test automation with Jenkins and GoogleTest to improve reliability and streamline continuous integration.
03Swordtail QuestMulti-world platformer, hackathon winner2023

North Shore Hacks, Project Winner · Oct – Nov 2023 · Python, Pygame, Tiled

  • Developed a modular, multi-world platformer in Pygame following a sword-wielding mouse through four worlds, with maps built in the Tiled editor.
  • Collaborated with music composers and visual artists, and served as code reviewer to keep the codebase readable and maintainable.
02Delta’s ChessLightweight chess game2023

Personal project · Jul – Aug 2023 · C++, SDL2

  • Built a lightweight chess game in C++ with SDL2, fully object-oriented with an MVC architecture and minimal resource usage.
01Calendar ChannelSocial web scheduler2022

Ignition Hacks 2022 · Aug 2022 · Django, PostgreSQL, Docker

  • Developed a web scheduler in Django with an optimized PostgreSQL schema supporting complex scheduling features and user-to-user interaction.
  • Deployed on Fly.io with Docker for reliable access and continuous deployment from development to production.

Section 05

Technical stack section

4 categories
Revised 2026.10

Languages

  • Python
  • TypeScript
  • JavaScript
  • SQL
  • C / C++
  • Kotlin
  • Bash
  • R

Frameworks

  • FastAPI
  • Next.js
  • React
  • Vite
  • Express.js
  • Node.js
  • Flask
  • Django
  • Streamlit
  • Jetpack Compose
  • Pygame
  • SDL2

AI / ML

  • PyTorch
  • Transformers
  • Hugging Face
  • LangGraph
  • LangChain
  • Google ADK
  • LiveKit Agents
  • FAISS
  • scikit-learn
  • spaCy
  • TensorFlow
  • Pandas
  • NumPy

Infrastructure & tools

  • AWS
  • GCP
  • Azure
  • Docker
  • Kubernetes
  • PostgreSQL
  • MongoDB
  • Snowflake
  • Jenkins
  • CircleCI
  • Linux
  • Git
  • Figma

Certifications

  • AWSAWS Certified AI Practitioner
  • UR2PhDUndergraduate Research Training Course
  • CourseraDeveloping Front-End Apps with React
  • CourseraIntroduction to Cloud Computing

Honours

  • 2026First author of VISPA, EMNLP 2026 Main Conference
  • 2023Project Winner at North Shore Hacks for Swordtail Quest
  • 2023Book Prize, Sir Isaac Newton Physics Exam (top 50 of 2,000+ worldwide)
  • 2023David Johnston International Student Entrance Scholarship ($5,000)

Section 06

Contact section

Reply by email
Waterloo, Ontario

For internships, please email my Waterloo address. For anything else, either address works.