Johnson Zhong

Robotics PhD Candidate


2018-09 to now

University of Michigan

PhD Candidate in Robotics under Dmitry Berenson

Cumulative GPA: 4.04.0

2013-09 to 2018-06

University of Toronto

B.ASc in Engineering Science Robotics with high honours

Cumulative GPA: 3.914.0

Major GPA: 4.04.0

Rank 2161 in semester 5 | 5158 in semester 6

Work Experience

2018-05 to 2018-08

Kepler Communications Software Engineering Intern

Summer internship, Toronto pythonasyncioSQL

Kepler is a Toronto startup providing communication services with low earth orbit satellites. Challenges from this situation include communication opportunities being limited to when the satellite is above a ground station (a pass), and frequently dropped packets.

Designed and developed mission control backend for commanding and communicating with satellites to replace 3rd party software

Scaled communication to potentially tens of satellites simultaneously

Modularized architecture to allow for handling of any communication protocol without affecting interaction logic

Allowed for task scheduling and progress saving across passes

2016-05 to 2017-09

Verity Studios R&D Engineering Intern with Prof. Raffaello D'Andrea

16 months Professional Experience Year, Zurich C++QTboost

Verity Studios is an ETH spinoff specializing in indoor drone show systems. I designed and implemented a robust parameters system.

Real time performance

Parameter values smartly retained after adding/removing other parameters

PC software can modify parameters on all hardware platforms and versions without recompilation

Simplified usage so much that a coworker wrote: Tears of joy come to my eyes seeing how much simpler the code becomes

Research Projects

2017-09 to 2018-05

Magnetic Microbead Control for Intracellular Manipulation with Prof. Yu Sun

Undergraduate Thesis at the Advanced Micro and Nanosystems Laboratory MATLABQT

The lab develops a cutting edge magnetic tweezer to manipulate nano-sized beads

Created simulation of the magnetic system

Explored how practical constraints impacted controllable region

Designed a learned gain scheduling controller to optimize controllable region

2016-05 to 2017-09

Verity Studios R&D Engineering Intern with Prof. Raffaello D'Andrea

16 months Professional Experience Year, Zurich C++QTboost

Modelled novel indoors localization system using physics first principles

Enabled optimization of flight performance

Achieved correlation of 0.86 (95% confidence >0.80) against experimental performance

2015-05 to 2015-09

FPGA CAD Routing Optimization with Prof. Vaughn Betz

Summer research with USRA NSERC 5k grant, University of Toronto C++

Verilog-to-Routing (VTR) is a CAD flow mapping Verilog to FPGAs. Its runtime performance was bottlenecked by the routing phase for large circuits.

Developed route tree pruning algorithm to allow incremental reroutes, speeding up routing by up to 3x on difficult benchmarks

Designed targeted rerouting algorithm for critical yet suboptimal connections, producing up to 30% faster resulting circuits (maximum frequency)

Benchmarked over realistic circuits, with speedups scaling with circuit size



Engineering Science Award of Excellence


3rd in Ontario Engineering Competition 2018 Programming category 500


1st in Ontario Engineering 2016 Competition Programming category 2000


1st in Canada in IEEEXtreme 9.0 (286800 globally)

2015-01 API prize in PennApps Winter 2015 500


8th in Canada in IEEEXtreme 8.0 (526500 globally)


Google Cloud Platform prize in Hack the North 2015 1000


6th in Canada in IEEEXtreme 7.0 (437500 globally)

  • Experience [> thousands of lines of code]
  • C++
  • 50
  • Python
  • 50
  • Javascript
  • 15
  • C
  • 5

2015-09 to 2015-11

Autonomous Cooperating Robots

AER201 Design Project in a team of 3 C++Arduino

The task was to design and build a mobile robot to play connect-4 on a semi-randomized game board. We decided to pursue a two robots approach, one for retrieving the ball and one for playing the ball.

Targeted randomly placed high-reward ball dispensers to obtain fastest ball retrieval time (3 ball/min vs average 0.5 ball/min)

2014-11 to 2015-09

Simple Algorithms and Data Structures Library

Open source personal project C++

Header only C++ template library with an interactive tester focused on implementation readability.

Implemented sets and maps with treaps to get 4x insertion and 2x read time improvements over standard library

Software Skills
  • Specialities
  • Asynchronous programming, Embedded
  • Build tools
  • CMake, Makefile
  • Version control
  • Git, SVN
  • Environments
  • Web, Windows, Linux, Arduino
  • Libraries
  • PyTorch, numpy, cvxpy, Boost, QT, D3
  • Code review
  • Gerrit
  • Integration
  • Buildbot, Jenkins
  • Database
  • PostgreSQL, MySQL
  • Heavy focus
  • Control, Machine learning, Modelling, MPC
  • Medium focus
  • Perception, Kinematics, Probability, Algorithms
  • Light focus
  • Economics, Marketing