About Me
Hi! I'm Charles. I'm a student at the University of Waterloo studying Computer Science with a specialization in Artificial Intelligence. I'm very excited for the future that cheaper compute power and advanced Computer Vision will bring, especially with regards to Autonomous Vehicles.
I am the Team Captain of WATonomous, a team of 80 students from the University of Waterloo building a fully electric level-4 self-driving car for the SAE Autodrive Competition. As Team Captain, I direct the team's technical direction and lead our Software division. I've worked on all aspects of the autonomous software stack, including a Model Predictive Control (MPC) feedback controller, a Kalman object tracker, a PointPillars 3d LIDAR object detector, and a software-in-the-loop simulation stack using CARLA.
I've also worked pretty extensively on networking during my internships. At Apple, I worked in the WiFi Peer-to-Peer team which develops the low-latency Wi-Fi features required for AirDrop, AirPlay, AppleTV, and Home Theatre. At Cisco, I worked on the Layer 3 packet routing components in the ASR9000, one of Cisco's main edge network routers. I believe that in autonomous vehicles, low-latency networking and inter-vehicle communication will be critical for assisting computer vision algorithms and achieving true level 4 self-driving
Skills
- C, C++, Python, Bash, Swift
- ROS
- Machine Learning (PyTorch, Tensorflow)
- Computer Vision (OpenCV, LIDAR, Camera, Kalman Filters, Multi-Object Tracking)
- Autonomous Vehicle Path Planning + Controls (Frenet space planners, MPC, PID, Stanley)
- Docker, Docker-Compose, Kubernetes
- Mac / iOS Development
- MATLAB, Simulink
- Continuous Integration (Gitlab CI)
- Web development (CSS, HTML, Jekyll, Node)
- Git
- SQL
Cool courses I've taken at Waterloo
- CS484 (Computational Vision): Great introduction to classical computer vision primarily focusing on camera geometry (projections, transforms, epipolar lines). Very important to know classic CV for CV with ML
- ECE495 (Autonomous Vehicles): Holistic overview of all aspects of autonomous vehicles with a surprising level of detail. Taught by an amazing professor (Professor Krzysztof Czarnecki) who leads UW's Autonomoose and WISE lab
- SE380 (Introduction to Feedback Control): Ground-up introduction and motivation to feedback control, starting at system modelling and identification then ending at PID tuning and design. Critical for anyone who wants to work on autonomous vehicle dynamics and controls
- CS246E (Advanced Object Oriented Software Development): Very in-depth exploration of C++ and it's motivations. Essential if you ever want to be good at C++
- STAT240 (Advanced Probability): Hardest course i've ever taken. In-depth exploration of probability and stochastic processes. Definitely worth the effort
- MATH145 (Advanced Algebra): I took this course with Professor David Jao. Amazing introduction to proofs, modular arithmetic, and group theory