Johnson Zhong
Robotics Engineering Student
- Legal name: Sheng |
- johnsonzhong.me |
- github.com/lemonpi |
- johnson9510@hotmail.com
2018-09 to now
University of Michigan
PhD in Robotics under Dmitry Berenson
2018-05 to 2018-08
Kepler Communications Software Engineering Intern
Summer internship, Toronto keplercommunications.com pythonasyncio
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 veritystudios.com 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
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 veritystudios.com 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 johnsonzhong.me/projects/vpr 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
2018-04
Engineering Science Award of Excellence johnsonzhong.me/res/grad/award_of_excellence.pdf
2018-01
3rd in Ontario Engineering Competition 2018 Programming category 500
2016-03
1st in Ontario Engineering 2016 Competition Programming category 2000 johnsonzhong.me/projects/snowfun
2015-10
1st in Canada in IEEEXtreme 9.0 (286800 globally) johnsonzhong.me/res/ieee9.pdf
2015-01
Context.io API prize in PennApps Winter 2015 500 devpost.com/software/snowball
2014-10
8th in Canada in IEEEXtreme 8.0 (526500 globally) johnsonzhong.me/res/ieee8.pdf
2014-09
Google Cloud Platform prize in Hack the North 2015 1000 devpost.com/software/forenships
2013-10
6th in Canada in IEEEXtreme 7.0 (437500 globally) johnsonzhong.me/res/ieee.jpg
- Experience [> thousands lines of code]
- C++
- 50
- Javascript
- 10
- Python
- 10
- C
- 5
2015-09 to 2015-11
Autonomous Cooperating Robots
AER201 Design Project in a team of 3 johnsonzhong.me/projects/robot/ 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 johnsonzhong.me/sal/ 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
- Specialities
- Asynchronous programming, Optimization
- Build tools
- CMake, Makefile
- Version control
- Git, SVN
- Environments
- Windows, Linux, Arduino
- Libraries
- Boost, QT
- Code review
- Gerrit
- Integration
- Buildbot, Jenkins
- Heavy focus
- Control theory, Machine learning, Modelling
- Medium focus
- Dynamics, Kinematics, Probability, Algorithms
- Light focus
- Economics, Marketing