Zihao Zhao
🎓 Undergraduate Student at Imperial College London
I am an undergraduate student in BEng Computing
at Imperial College London. My recent work spans
Embodied AI, systems programming, compiler
, and full-stack web development.
I am currently building software and robotics projects across
research internships and course projects, with interests in
practical machine learning systems, robot manipulation, and
reliable computing infrastructure.
The ends do not define means, they never do.
Education
Undergraduate
Imperial College London
BEng Computing
Undergraduate Student
Experiences
Jul 2026 - Present
Research Intern
Peking University
- Advised by Prof. Hao Dong
Jul 2025 - Oct 2025
Research Intern
Shanghai Jiao Tong University
- Advised by Prof. YongLu Li
Projects
May 2026 - Present
WhereToI Web App Group Project
Full-stack web application
- Built a full-stack web prototype for locating and comparing nearby public toilets by distance, access, cleanliness, cost, opening status, and facilities.
- Implemented an interactive map with geolocation, search, filters, sorting, toilet detail cards, and external directions.
- Developed authenticated feedback workflows with ratings, comments, profile visibility, access history, and Gemini-assisted comment summaries.
- Built a Node.js backend with PostgreSQL/SQLite storage, CSV seed import, REST APIs, caching, and optional PaddleOCR/YOLO-based photo analysis.
Jan 2026 - Mar 2026
WACC Compiler Group Project
Compiler construction
- Built a full compiler for the WACC language targeting AArch64 and ARM32 assembly.
- Designed the compilation pipeline including lexing, parsing, semantic analysis, TAC intermediate representation, and code generation.
- Added peephole optimisations to remove redundant instructions and improve generated assembly efficiency.
- Extended the language with function overloading through static type checking and an exception handling mechanism.
Oct 2025 - Dec 2025
PintOS Group Project
Operating systems
- Extended kernel threading with priority scheduling, priority donation, and the BSD scheduler.
- Implemented system calls, process loading, argument passing, and safe user-kernel memory access for user programs.
- Built virtual memory support with lazy loading, supplemental page tables, dynamic stack growth, and second-chance frame eviction.
- Added swap support, shared executable pages, and memory-mapped file management.
Jul 2025 - Aug 2025
YOLO-Based Autonomous Path Planner for Urban Driving
Computer vision and planning
- Developed an autonomous driving pipeline integrating object detection, traffic sign classification, and traffic light recognition.
- Fine-tuned YOLOv8 on GTSDB for traffic sign detection, YOLOv11 for traffic light detection, and a CNN on GTSRB for sign classification.
- Designed a rule-based decision module using lane ROIs and field-of-view constraints to classify driving actions as go, caution, or stop.
- Built interactive Gradio demos on BDD100K-based videos to visualize path planning decisions.
May 2025 - Jun 2025
ARMv8 AArch64 Assembler and Emulator Group Project
Computer architecture
- Built an AArch64 emulator to simulate execution of binary programs on a Raspberry Pi.
- Built an AArch64 assembler translating A64 assembly source code into executable binary files.
- Wrote A64 assembly to flash an LED via Raspberry Pi GPIO.
- Implemented a 7-segment display counter with GPIO input controls, debouncing, and timed digit updates.