Hassan
Naboulsi

Graduating December 2027 · UC Berkeley, Electrical Engineering & Computer Sciences

UC Berkeley EECS student building backend, full-stack, and testing tools, often for software that runs on real hardware. I spent summer 2026 building perception and verification software for a lunar rover prototype at NASA Ames, and I'm now doing robotics research at Berkeley.

Experience.

Undergraduate Researcher

ICON Lab · UC Berkeley

Working on reinforcement-learning approaches to quadruped locomotion for the Unitree Go2.

Robotics Software Intern

NASA Ames Research Center · Mountain View, CA

Built perception software for K10-Mini, a prototype lunar rover, combining navigation-marker localization with RGB-D rock detection for outdoor autonomous-navigation testing.

  • Built a pre-run verification suite that reduced roughly an hour of manual system checks to ~4 minutes and validated the system across 30+ field tests.
  • Ran AprilTag localization and YOLO rock detection simultaneously on a Jetson AGX Orin, publishing perception outputs through ROS 2.
  • Optimized YOLO inference with TensorRT from ~4 to ~11 images/s while maintaining 8–10 cm range MAE across 0.5–5 m.
View project poster
K10-Mini during outdoor testing at NASA Ames. My work focused on the rover’s RGB-D perception stack.

Software Engineering Intern

ChipChop · Berkeley SkyDeck

  • Built an automated evaluation pipeline for AI-generated chip-design fixes, compiling and simulating candidate outputs and producing reproducible failure reports.
  • Unified 9 AI agents across OpenAI, Gemini, and local models behind one runtime with shared configuration, response handling, token accounting, and error paths.
  • Added persistent cross-session memory and automated tests covering persistence, context injection, state updates, and multi-session behavior.
Benchmark output showing per-case results and error-category coverage from the RTL evaluation pipeline.

Research Intern (NSF REU)

Virginia Tech · Grenoble, France

  • Automated 100+ grid-emulator runs across 20+ household profiles in Python, replacing one-off manual experiments.
  • Built a telemetry pipeline that replayed power setpoints, ingested MQTT smart-meter data, aligned timestamps, and generated commanded-vs-measured summaries.
  • Across 100+ hours of data, identified a ~30-second reporting delay and verified a 1.4 kW load held within ±5 W.
Lab photography wasn’t permitted inside the facilities where I worked, so this photo is from a visit to the nearby European Synchrotron Radiation Facility.

Research Intern (NSF REU)

University of Tennessee · Knoxville, TN

  • Wrote Arduino firmware that sampled pH and turbidity every 60 seconds and transmitted readings wirelessly to a monitoring interface.
  • Fabricated and characterized flexible paper-battery prototypes, improving measured output from an initial 0.468 V to 0.91 V / 0.3 mA.
An early paper-battery prototype during testing. My first voltage reading was 0.468 V; later prototypes reached 0.91 V / 0.3 mA.

Projects.

MouseBench

Berkeley IEEE

TypeScript · Next.js · PostgreSQL · Web Serial · Docker

Browser-based diagnostics for the Berkeley IEEE Micromouse robot, streaming encoder, IR, and motor telemetry at 20 Hz while supporting calibration, fault simulation, and session history.

  • Built an incremental NDJSON parser that preserves partial serial messages across reads instead of assuming reads align with message boundaries.
  • Built an IR calibration workflow that fits sensor models from known-distance samples and exports firmware-compatible constants.
  • Added deterministic simulated-hardware presets for dead encoders, saturated IR sensors, and motor failures so the workflow can be tested without a physical robot.
System flow

StreamVault

C++20 · UDP · GoogleTest · CMake

C++20 telemetry recorder and replayer for three asynchronous UDP sensor streams, designed around explicit backpressure, packet-loss detection, reproducible fault injection, and timing-preserving replay.

  • Receive threads validate versioned binary packets and track per-source sequence gaps.
  • A bounded producer-consumer queue separates reception from disk writes; overload drops incoming records and increments an explicit counter instead of allowing unbounded memory growth.
  • Seeded fault injection makes packet loss, delay, and jitter reproducible, while replay reconstructs original timing at normal, scaled, or maximum speed.
System architecture

EnviroBoard

Berkeley HOPE

ESP32-S3 · PCB design · Sensors · OLED · PWM

Designed and assembled a 2-layer ESP32-S3 environmental-control board with temperature/humidity sensing, an OLED, adjustable threshold input, and MOSFET PWM fan control.

Wrote firmware for sensor reads, OLED updates, ADC sampling, and fan control.

The board did not reach full end-to-end operation. During bring-up, I traced the failure to USB-C connector rework faults and pad damage.

Board architecture

Skills.

Languages

Python, C++, TypeScript, JavaScript, SQL, Bash

AI/ML & Data

PyTorch, TensorRT, YOLO, OpenAI API, Gemini API, Ollama, model evaluation, pandas, NumPy

Web & Backend

Next.js, React, Node.js, FastAPI, PostgreSQL, Prisma ORM, REST APIs, Web Serial API, HTML/CSS

Systems & DevOps

AWS, Kubernetes, Linux/Ubuntu, Docker, Git, GitHub Actions, CI/CD, CMake, MQTT

Robotics

ROS 2, MuJoCo, Jetson AGX Orin, Intel RealSense

Testing

pytest, GoogleTest, CTest, unit testing, integration testing, fault injection, production build validation

Leadership.

Co-Director

De Anza Hacks 2.5 & 3.0

College news coverage
  • Directed hardware-focused hackathons with 300+ signups and secured $20,000+ in sponsorships from OpenAI, Desmos, Red Bull, and Wolfram.
  • Led the organizing team, secured speakers from Stanford, and managed events serving 200+ participants.
President

Developers' Guild · De Anza College

  • Led De Anza’s largest computer-engineering club with 500+ members.
  • Organized technical conferences with 100+ attendees and speakers from companies including Google.
  • Mentored 60+ students on technical projects, debugging, system design, and tooling.
Volunteer Instructor

Steel City Codes

  • Taught intermediate and advanced Python and Java to 50+ elementary and middle-school students.
  • Created project-based exercises and coding challenges.

Aviation.

My own photos from airports, museums, and anything with wings.

Get in touch.

Email is the best way to reach me.

Based
Bay Area, California · Pacific Time