robotics

diff_drive_robot

2024

ROS 2 Jazzy · Gazebo Harmonic · SLAM Toolbox · Nav2 · Python

A ready-to-run simulation of a two-wheeled robot that spares people the days of setup usually needed before they can drive one. It ships the whole stack — robot description, lidar, keyboard control, SLAM mapping with EKF sensor fusion, and Nav2 navigation on ROS 2 Jazzy and Gazebo Harmonic — and has become a starting point for robotics learners and students worldwide.

Differential drive robot simulation in Gazebo Harmonic

so101_ros2

2026

ROS 2 Jazzy · MoveIt 2 · ros2_control · Gazebo Harmonic · Python

A complete control stack for the SO-101 robot arm, taking it from a 3D description to picking things up in simulation. It covers the arm's model and meshes, RViz visualization, ros2_control with trajectory control for the arm and gripper, and a pick-and-place world in Gazebo Harmonic, with MoveIt 2 motion planning and a real-hardware interface on the roadmap.

SO-101 follower arm in Gazebo simulation

Self-Driving RC Car

2025

Jetson Orin Nano · RealSense D435i · LiDAR · PID control · Python

A radio-controlled car rebuilt to drive itself, entered in the World Robotics Olympiad 2025 in Ghana, where it mapped the course and avoided obstacles with nobody at the controls. It fuses LiDAR with an Intel RealSense depth camera on an NVIDIA Jetson Orin Nano, and closes the loop on steering and speed with PID control.

Self-driving RC car

software

reservation-service

2026

TypeScript · PostgreSQL · GiST constraints · Docker · CI

A booking service for things that can only be sold once — a room, a seat, a time slot. Taking bookings is easy; the hard part is what happens when two people claim the last one in the same millisecond. Every booking here passes through a single Postgres GiST exclusion constraint, and a load harness proves it holds rather than assuming it: zero double-bookings across 27,000 concurrent attempts, against 35,966 from an unguarded control group put under identical load.

link-checker

2026

Go · net/http · CI · table-driven tests

A command-line tool in Go that crawls a website and reports the links that no longer work, built to run in CI so broken links fail a build instead of reaching visitors. Most of the real work is deciding when two URLs are the same page, which is what tells the crawler when to stop. Early days — currently sequential, with concurrency and the CI exit-code contract next.