# Caesar Zhou > Caesar Zhou is a 2B Computer Science & Finance student at the University of Waterloo, currently an AI Adoption & Deployment Engineering Intern (Forward-Deployed AI) at ecobee, and building TakeOne, an OpenAI-supported AI robot film studio that started at Hack the North 2026. Email: caesar.zwc.0611@gmail.com GitHub: https://github.com/Zwc-11 LinkedIn: https://www.linkedin.com/in/caesar-zhou-487558249 Devpost: https://devpost.com/Caesarz X: https://x.com/Quant_cz ## Experience - ecobee, AI Adoption & Deployment Engineering Intern (Forward-Deployed AI) (Sep – Dec 2026): 30+ AI tools, 15+ agents and 25+ reusable skills for finance, accounting and sales. Users save 2+ hours a day. - Wealthy Doctor Institute, Full-Stack AI Engineer (Jun – Aug 2026): Built their agentic marketing platform end to end. 70+ clients acquired; weekly site traffic up 82%. - Gore Mutual Insurance, Data Scientist & AI Platform Engineer (Jan – Apr 2026): RAG for underwriters: 89.5% strict accuracy on 200+ labeled questions, evaluation runtime cut 80%. - Canadian STEM and AI Academy, Robotics & Software Developer (2025): Taught C++ robot control to FRC and VEX teams; built a firmware generator for STM32 and Arduino. ## Projects - [DayCube](https://caesarzhou.com/?project=daycube) (Nov 2026): A Windows app that replays your day in 3D and answers from your own records. - [MarketImmune](https://caesarzhou.com/?project=marketimmune) (Nov 2026): Predicts which Hyperliquid fills a market maker will regret 10 seconds later. - [SproutPass](https://caesarzhou.com/?project=sproutpass) (Oct 2026, Visa Challenge Winner): AI companions that pass outgrown baby clothes to nearby families. - [TakeOne](https://caesarzhou.com/?project=takeone) (Sep 2026, Hack the North Finalist): An AI director with a robot camera crew. - [Hindsight](https://caesarzhou.com/?project=hindsight) (Jun 2026): A backtesting engine that checks itself for look-ahead leakage. - [AgentReplay](https://caesarzhou.com/?project=agentreplay) (Jun 2026): Record, replay and diff browser agents. - [Murmur](https://caesarzhou.com/?project=murmur) (May 2026): A reliability harness for agents, replayable in CI. - [ChaosWing](https://caesarzhou.com/?project=chaoswing) (Mar 2026): Two-stage search for related prediction markets. - [AutoDump](https://caesarzhou.com/?project=autodump) (Nov 2025, MakeCU 3rd Overall): A trash rover that finds full bins and empties itself. - [Baymax Bot](https://caesarzhou.com/?project=baymax-bot) (Jan 2025): A companion-care robot with voice and emotion vision. - [Quant Portfolio](https://caesarzhou.com/?project=quant-portfolio) (Nov 2024, 1st Place): Portfolio optimizer that outputs share counts after fees. - [XRSZE](https://caesarzhou.com/?project=xrsze) (Sep 2024): A computer-vision rep counter with an AI coach. - [Modular Watering](https://caesarzhou.com/?project=jamhacks8) (Jun 2024, Best Hardware): A configurable plant-watering system. ## Hackathons - LA Hacks 2026 (Oct 2026): SproutPass, Visa Challenge Winner - Hack the North 2026 (Sep 2026): TakeOne, Top-scoring finalist - MakeCU 2025 (Nov 2025): AutoDump, 3rd Place Overall - UofTHacks 12 (Jan 2025): Baymax Bot - Hack the North 2024 (Sep 2024): XRSZE - JamHacks 8 (Jun 2024): Modular Watering, Best Hardware ## Education - University of Waterloo, Computer Science & Finance (CFM), Co-op (2024 – present) - 1st Place, Quantitative Portfolio Management (Nov 2024) ## Case studies ### DayCube A Windows app that replays your day in 3D and answers from your own records. Personal project · in progress · 2026 I am building a local-first memory of the day as one Windows app: a Tauri 2 (Rust) shell runs the React viewer, a FastAPI vault and capture. A browser extension and a webcam eye tracker record what was read; phone exports add places, walks and voice memos; LiDAR scans become Gaussian splats trained on the GPU, and a single photo becomes a 3D scene you can step into. Each day is a 3D replay, a Markdown note that Obsidian opens, and an end-of-day review whose sentences cite their records. Stack: Tauri 2 (Rust), React, Three.js, TypeScript, FastAPI, SQLite FTS5, int8 vectors, Gaussian splats, JSON Schema, Chrome MV3 - One app, nothing left running: The shell serves the viewer and API on one loopback origin and runs capture and the eye tracker in Windows job objects, so quitting stops every process. The 3–4 GB GPU environments install on request instead of shipping in the installer. - Two kinds of search, one ranking: FTS5 catches exact names and course codes; int8 bge-small vectors catch paraphrases. A two-pass scan searches a year of vectors (1.93M) in 68 ms, against 1.5 s for sqlite-vec. - Notes stay yours: Each day is written as Markdown that Obsidian opens. DayCube rewrites only its marked region; your own writing is kept, searched and linked into the graph. Scope: Python, contract and real-browser tests run in CI, and a Windows job installs the app silently, self-tests it and checks that no process is left behind. A head-aware gaze model reaches 43 mm median error against 78 mm for EyeTrax on held-out MPIIFaceGaze days, and precompiling Python cut the app’s first API start from 7.5 s to 0.8 s. Work in progress, started October 2026. The video uses the repository’s fictional sample day, whose scenes are labeled illustrative in the app. OCR, native window capture, generated answers and full moment reconstruction are not built yet, and the installer is not signed. - Source code: https://github.com/Zwc-11/DayCube ### MarketImmune Predicts which Hyperliquid fills a market maker will regret 10 seconds later. Personal project · 2026 I built the path from raw exchange data to verdicts: a Rust rebuild of the Hyperliquid L4 order book, Parquet tables with point-in-time features, CatBoost regret models, a block-accurate maker simulator, and a live React terminal that labels every SOL fill with its 10 s markout. Stack: Python, Rust, CatBoost, LightGBM, NumPy, Polars, PyArrow, React, TypeScript, Django, AWS S3, Hyperliquid API - Pre-register, then look: The A1 rules were committed before any model saw a 2026 date, and the run script refuses to train if that file changed. Claims need both registered metrics, Holm-corrected, with placebos. - Score forward only: Each day is scored by a model trained on the 7 days before it, minus a 60 s purge. Every feature joins the book strictly before the fill, and each partition carries a no-look-ahead check. - Test the money, not just the metric: The simulator replays the book block by block with our quotes in the queue, HyperCore’s in-block order, latency and fees. It matches hftbacktest to 0.1 bps on 31 of 31 days. - Make iteration cheap: A NumPy index-array rewrite took threshold selection from 39.6 s to 0.61 s and a full training run from 200 s to 99 s, with every metric identical to 2e-13. Scope: On 60 pre-registered days and 31.8M BTC, ETH and SOL fills (Sep to Oct 2026), the Binance price gap and the taker’s wallet score improved Brier in every coin, from 0.212–0.223 to 0.182–0.192 (14–16% lower). The claim that priority fees add information was rejected in all three. In the simulator, the model’s pull timing beats a time-shifted placebo by 0.44–0.54 bps per filled dollar. Research system: it sends no orders and holds no keys. No maker strategy is profitable after the 1.5 bp maker fee at any Hyperliquid fee tier; the signal’s timing is worth about half a basis point. The terminal streams live data and labels fills; it scores them only when an exported model is present. A January 2027 confirmation is pre-registered. - Source code: https://github.com/Zwc-11/Marketimmune ### SproutPass AI companions that pass outgrown baby clothes to nearby families. Team project · Freja R, Yujing Wei & me · 2026 · Visa Challenge Winner · Photon iMessage Runner-Up Our team built a Base44-hosted React / TypeScript web app and an iMessage companion through Photon. Parents add clothing by photo; an LLM suggests garment details and extracts explicitly stated sizes, categories and budgets from messages, and the parent confirms them. A nearby-encounter flow checks shared listings against confirmed needs, presents the offer, and on buyer approval records the ownership change and a simulated Visa receipt. Stack: React, TypeScript, Vite, Zustand, Leaflet, Base44, Photon iMessage, LLM extraction - Confirm what the model cannot know: Photo analysis suggests garment details, but uncertain fields go back to the parent. Needs use explicitly stated sizes and budgets rather than inferring a size from a baby’s age. - One approval, on the buyer’s side: Sharing a listing already authorizes the seller. A second seller approval only added friction, so the buyer makes the final decision that triggers the payment flow. - Verify delivery, not the interface: A message accepted for sending is not proof that it arrived. The demo separates submission status from delivery and checks the physical phone before claiming a receipt reached it. Scope: Won the Visa challenge and placed runner-up in Photon’s iMessage track at the LA Hacks AI Hackathon 2026. The submission includes a demo video, the source repository and screenshots of the offline demo flow. Built with Freja R and Yujing Wei; implementation started at midnight after two earlier ideas were dropped. Payments are simulated: no Visa API, real charge or funds transfer. Locations and family profiles are demo data, rack-level positioning and production access controls are future work, and the product has not yet been tested with parents. - Watch the demo: https://www.youtube.com/watch?v=z35HRo5SNFE - Source code: https://github.com/96528025/SproutPass - Devpost: https://devpost.com/software/sproutpass ### TakeOne An AI director with a robot camera crew. Team project · Ryan Qin, Basil Liu & me · 2026 · Finalist Our team built a voice agent that asks follow-ups through constrained function calls, an AI director that emits structured shot plans, a Python validation and compile step with a 3D rehearsal, and the control path to a camera-and-lighting rig. A React / FFmpeg editor closes the loop. Stack: Python, Three.js, MuJoCo, ESP32, CAN bus, OpenCV, MediaPipe, React, FFmpeg - A typed plan between intent and motion: A structured shot plan gives the simulator and hardware path the same input. Creative direction can change without bypassing validation. - Rehearsal before a physical take: The 3D preview exposes camera paths and constraints before the operator commits the rig to filming. - Build the whole production loop: The project includes the editing step. A filmed result matters more than a standalone robot movement. Scope: The Hack the North submission includes the working rig, simulator images, source code and a filmed demonstration. Built with Ryan Qin and Basil Liu. Physical filming requires an operator. The simulator checks the software plan; the rig and filmed demo document the hardware build. - Watch the demo: https://www.youtube.com/watch?v=v-cOBYdeZMY - Source code: https://github.com/3-rt/TakeOne - Devpost: https://devpost.com/software/takeone-erqv3l ### Hindsight A backtesting engine that checks itself for look-ahead leakage. Personal project · 2026 I extracted a standalone evaluation engine with explicit boundaries for market events, labels and stored data. I built an offline demonstration that compares an unsafe strategy with a time-audited run. Stack: Python, PyArrow, NumPy, pandas, pytest, mypy, Ruff, GitHub Actions - Treat time as a contract: Random splits can put related labels on both sides of an evaluation. Purged time splits and guarded feature access make that failure visible. - Keep the engine independent: Separating the evaluator from MarketImmune made it usable as its own package and kept strategy logic away from storage concerns. - Make a result reproducible: A run manifest records inputs and configuration. The committed unsafe control shows why a high score alone is not enough evidence. Scope: Committed audit reports and run manifests make the comparison inspectable. CI checks that repeated demo runs produce identical report artifacts. Research evaluation, not a trading service. The offline demo uses synthetic data; the repository also documents a separate BTC, ETH and SOL local-data benchmark. Execution assumptions remain simplified. - Source code: https://github.com/Zwc-11/Hindsight ### AgentReplay Record, replay and diff browser agents. Personal project · 2026 I built the path from recorded browser events to a workflow graph, replay evaluation and a React Flow dashboard. The interface compares human and agent actions at the first divergence. Stack: TypeScript, Python, Playwright, FastAPI, React Flow, PostgreSQL, Redis, Docker - An event log, not just a final screenshot: A final state can hide the first mistake. Reconstructing each step makes the divergence and the preceding network activity inspectable. - A core that runs without infrastructure: Ports separate compilation and evaluation from storage and HTTP. I can test the reasoning about a run without a database or browser session. - Useful failure states in the frontend: The dashboard pairs the workflow graph with step evidence. Bundled demo data is identified as demo data when the backend is unavailable. Scope: The bundled workflows produce step-level comparisons, failure evidence and an exported Playwright test scaffold. Early prototype. The benchmark uses bundled shop, CRM and calendar workflows with scripted drivers. It is not a general reliability score for language models. - Source code: https://github.com/Zwc-11/agentreplay ### Murmur A reliability harness for agents, replayable in CI. Personal project · 2026 I designed a contract-first harness with separate agent, tool and environment interfaces. It runs independent attempts, validates outputs and generates a report with failure classes and trace evidence. Stack: Python, LangGraph, DeepSeek, Qwen, pytest, OpenTelemetry, GitHub Actions, Docker - Validate artifacts before scoring them: A fluent explanation does not prove that the code meets the task. Task-specific checks define success before the agent starts. - Separate the harness from the model: An agent port lets different implementations use the same contracts, tools and validation path. - Keep the feedback actionable: Failure classes and recorded tool paths connect a summary score to the attempt that produced it. The offline suite makes the reporting path reproducible. Scope: The public repository includes generated reliability reports, a trace viewer and an offline deterministic workflow that CI can exercise without API keys. The public coding-agent harness is the evidence shown here. The archived screenshots use synthetic deterministic runs; they do not establish a production model success rate. - Source code: https://github.com/Zwc-11/Murmur-ai-harness ### ChaosWing Two-stage search for related prediction markets. Personal project · 2026 I built a two-stage search pipeline: a bi-encoder retrieves candidates and a fine-tuned cross-encoder reranks them. A Django application exposes the pipeline and its evaluation. Stack: Python, PyTorch, Django, SentenceTransformers, FAISS, transformers, statsmodels, MLflow, Cohere - Spend compute after narrowing the search: Retrieval selects a candidate set before the cross-encoder evaluates pairs. This makes the quality and latency tradeoff explicit. - Keep near-duplicate events together: I grouped event families and split by first-seen time to reduce contamination between training and evaluation. - Compare systems on one benchmark: The same temporal splits support comparisons across bi-encoders, rerankers and lexical baselines. Latency matters alongside ranking quality. Scope: The project compares neural, lexical and external reranking baselines using ranking quality and p95 latency. Research search system. Ranking quality measures retrieval, not investment returns. The archived image shows the API reference from that version. - Source code: https://github.com/Zwc-11/Chaoswing - Live project: https://chaoswing.onrender.com ### AutoDump A trash rover that finds full bins and empties itself. Hackathon team project · 2025 · 3rd Place Overall Our team wrote the perception-to-action pipeline: Raspberry Pi vision with ArUco markers locates the target, ultrasonic range data guides the approach, and microcontroller control code drives docking and dumping. Stack: Raspberry Pi, Python, OpenCV, C++, Arduino, OpenRB-150, ArUco, Ultrasonic - Connect sensing to a physical outcome: The integration challenge was completing the sequence from locating a target to operating the dumping mechanism. Scope: 3rd Place Overall at MakeCU 2025. The submission includes hardware photos and the team’s source repository. A hackathon prototype. The submission establishes the team build; it does not verify autonomous operation in arbitrary environments. - Devpost: https://devpost.com/software/autodump-autonomous-self-emptying-trash-rover - Source code: https://github.com/RyanQin24/MakeCU ### Baymax Bot A companion-care robot with voice and emotion vision. Hackathon team project · 2025 Our team connected a Raspberry Pi prototype, voice interaction and a React / Flask application to LLM, vision and authentication services. Stack: Raspberry Pi, Python, Flask, React, OpenCV, TensorFlow, ChatGPT API, Firebase, Auth0 - Integrate across hardware and web: The build joins device input, service logic and a user-facing application rather than demonstrating each piece separately. Scope: Submitted at UofTHacks 12. The project story and photos document the shell, electronics and software stack. A hackathon companion-interface prototype. The photos and project story document the submitted hardware and application. - Project story: https://dorahacks.io/buidl/21720 ### Quant Portfolio Portfolio optimizer that outputs share counts after fees. Course competition project · 2024 · 1st Place · Waterloo CS & Finance I built a repeatable Python pipeline that loads market data, estimates risk and return, samples portfolios and exports allocations with share counts. Stack: Python, Jupyter, NumPy, pandas, Monte Carlo, CAPM, MPT - Make allocations usable: Share counts, currency conversion and fees connect the portfolio model to a concrete output. - Keep the pipeline repeatable: A notebook and exported allocations make the strategy assumptions and resulting portfolio inspectable. Scope: 1st place in Waterloo’s CS & Finance quantitative portfolio management competition, November 2024. The notebook and strategy write-up are public. A course competition strategy. Allocations depend on the model assumptions and historical data used in the notebook. - Source code: https://github.com/Zwc-11/Quantitative-Portfolio-Management-Strategy ### XRSZE A computer-vision rep counter with an AI coach. Hackathon team project · 2024 Our team built a MediaPipe pose-tracking interface with a calibrated repetition counter, then connected it to a Groq-powered workout and meal-planning chat. Stack: MediaPipe, Groq, Node.js, JavaScript, HTML, CSS - Separate measurement from conversation: Pose tracking drives the repetition count. The chat layer supports planning without becoming the counting mechanism. Scope: The Hack the North 2024 submission includes a pose-tracking demonstration, app screenshots and source code. A hackathon fitness prototype. Camera position and calibration affect counting; screenshots document the submitted version. - Devpost: https://devpost.com/software/xrsze - Source code: https://github.com/Zwc-11/XRSZE-Hack-the-North-2024-Public ### Automatic Modular Watering System A configurable plant-watering system. Hackathon team project · 2024 · Best Hardware Award Our team built a modular watering prototype with Arduino, C++ and integrated sensors, allowing the setup to adapt to different plants. Stack: Arduino, C++, Microcontrollers, Sensor integration - Build for different configurations: Modularity makes the prototype about adapting a system to its user, as well as driving a pump. Scope: Best Hardware Award at JamHacks 8. The original demonstration and award videos are linked. The videos document the hackathon prototype and its configurable setup. - Watch the demo: https://www.youtube.com/watch?v=nycreUS2ojM