If you would like to connect, please feel free to email me at L43cheng@uwaterloo.ca.
I'm a Firmware Developer building SERDES solutions at Alphawave. Before joining the semiconductor industry, I developed software at IoT and Internet companies.
Having graduated from UWaterloo's Computer Engineering program, I had the opportunity to participate in 6 internships and work with several technologies, including ML infrastructure, compilers, video processing, cross-platform tooling, and web development.
Work & Research Experience
Firmware Developer | Toronto, ON
Jan 2021 - present
Developing post-silicon software for 100+Gbps connectivity solutions.
Embedded Developer | Toronto, ON
July 2019 - Jan 2021
At Ecobee, I worked mostly with embedded Linux, networking tools, and a bit on the EFR32 Gecko MCU. This included hacking kernel code, writing user-space programs to control smart thermostats (eg, multi-speed fan controls),
and playing with our build system.
Keywords: yocto, uboot, embedded Linux, Gecko EFR32, Micrium RTOS, networking tools, cross-platform development, Jenkins, custom UI toolkit, Python
Software Engineering Intern | San Francisco Bay Area
Sept - Dec 2018
This internship focused on building ML infrastructure, including designing a module to inject plugins into an asynchronous framework, exposing its public API, integrating services to extract outputs of a post-processing pipeline used on the 'Jobs' page, and attaching recovery logic to failed RPC operations.
Software Engineering Intern | Burlington, ON
Jan - Apr 2018
This internship was focused on video processing. This included implementing features using the open-source JM H.264 Reference Software, building a Python test framework to verify an H.264 encoder, writing an algorithm to compare distorted YUV videos, and validating MPEG TS used in ABR streaming.
Undergraduate Research Assistant | Waterloo, ON
Sept - Dec 2017
Working as a Research Assistant, I assisted in evaluating the perceptual uniformity of the ICtCp colour space by implementing a subjective testing program with the Blackmagic DeckLink SDK, filtering pre-test data and analyzing post-test results.
Software Engineering Intern | San Francisco Bay Area
May - Aug 2017
OptumSoft is an IoT startup founded by the namesake of our School of Computer Science and former professor from Stanford University, David Cheriton. I worked on a Kalman-like algorithm that predicted the reliability of sensor readings, learned to use an in-house programming language, and wrote a test generator to validate our in-house compiler.
Software Engineering Intern | Calgary, AB
Sept - Dec 2016
The theme of this internship was to improve SMART Board© diagnostic tools on OS X and Windows computers. This included developing a cross-platform C++ API to change pen settings when pens touched a SMART Board and fixing cross-platform Qt bugs. Working with 4 other interns, we built an educational game with Node.js that demoed at the BETT 2017 trade show.
Application Developer Intern | Toronto, ON
Jan - Apr 2016
This internship was focused on improving an ASP.NET MVC-based communication platform used by 10+ traders, which included building an instant messaging prototype with SignalR and Oracle, reducing performance bottlenecks by over 80%, and developing a "What You See Is What You Get" (WYSIWYG) editor. Before leaving CIBC, I also wrote a 20-page report suggesting future improvements for the communication platform.
Software Developer Intern | Ottawa, ON
May - Aug 2015
Computer Engineering | Bachelor of Applied Science - BASc.
Sept 2014 - June 2019
Eight academic terms, six internships, and countless cups of coffee later,
I graduated from UWaterloo with a BASc. in Computer Engineering. It was fun learning about software and hardware development.
Selected Courses: Image Processing, Autonomous Vehicles, Adaptive Algorithms, Computational Intelligence, Operating Systems, Compilers, Security, Networks, Database Systems, Leadership and Influence, Personality Psychology
- Cool Things You Can Do With Python: 27-page e-book containing six starter Python projects, including a web scraper and a Word document generator. Introduces several concepts, including HTTP verbs and multithreading. Available on the Kindle Store.
- Implementing Observer Pattern with Events (C#): uses event objects to implement the Observer Pattern
- Making GET Requests in Python - Tutorial: introduces Chrome DevTools,
BeautifulSoupto make GET requests from www.codeproject.com
- Creating Forms in ASP.NET MVC 5: examines 4 synchronous and asynchronous ways to pass data between the client and the server
- Beginning TI-BASIC: Using Your TI-83/TI-84 to Solve Math Problems: shows how to program a graphing calculator to solve algebraic and geometric problems
- A Right Way to Use Inductive Reasoning: 5-page paper in "Pi in the Sky", a math magazine sponsored by the Pacific Institute for the Mathematical Sciences, that demonstrates how to find and prove with induction the formula that determines the maximum number of regions formed by an inscribed convex polygon and its intersecting diagonals
- [CBC] University of Waterloo students want two-ply toilet paper on campus, student councillors say : This is kind of funny. As elected student representatives, we usually advocate for more important issues on campus, such as legal service support (eg, against predatory housing), student outreach programs, and mental health initiatives. With that said, 1-ply toilet paper is quite unpleasant and students had enough of it ;p
- [Imprint] The breakdown of the 2018 Co-op Education fee raise : Co-op opens many doors, but there are legitimate reasons for advocating against a fee raise that doesn't improve service, especially when many students report being treated unethically by co-op staff. The petition referenced in the article drew 3000+ supporters in 3 weeks, and received attention from the Board of Governors, Provost's Office, our Student Union, and two student newspapers. Although the petition didn't stop the 18/19 co-op fee raise (3 Governors abstained and 1 objected to the fee raise!), the University decided not to increase co-op fees for 19/20, the first no-increase in many years.
Whether you're a recruiter or a student, a psychologist or a scuba diver, a writer or an engineer, I'm interested in exploring how we can work together to accomplish greater challenges.
If you would like to connect, please feel free to reach me at L43cheng@edu.uwaterloo.ca. (The reason there isn't a contact form is because forwarded emails from contact forms might be marked as spam and automatically placed in a Spam folder. If you're taking the time to reach out to me, I want to be sure that I could receive your email and followup with you.)