Winston Sun

Software Engineer at Apple

M.Eng. in EECS, University of California, Berkeley

B.A.Sc. in ECE, University of Toronto

About Me

I am interested in embedded systems and hardware. I have worked on several design projects, including a 5G open radio unit (ORU) system, a spam detection system over a multi-FPGA network and a high-dimensional system-on-chip for reconfigurable AI at the edge. Those industrial and academic experiences gave me a deep understanding of system design and honed my skills in many areas.

My skills include:

• Embedded systems design (software and hardware)

• C/C++ programming

• FPGA development (High-speed data interface, DDR, communication protocols, etc.)

• Digital design

• Robotics and Mechatronics

• Artificial intelligence and machine learning


1 / 7
Winston's photo
2 / 7
Winston's photo
3 / 7
Winston's photo
4 / 7
Winston's photo
5 / 7
Winston's photo
6 / 7
Winston's photo
7 / 7
Winston's photo

Technical Skills


C C++ C# .Net Python ARM ASM FPGA MATLAB

Projects

Dynamic Data Pipelining System

CPP, MPI, OpenMP

• Built an efficient data pipelining system that can dynamically create/scale data pipelines and process data parallelly based on predefined data/task dependencies.

• Used the parallel computing techniques such as MPI and OpenMP to optimize the performance in terms of strong and weak scaling.




High-dimensional Computing SoC Design

RISC-V, Chisel, Verilog, C, Python

• Designed a high-dimensional processing unit to perform AI-tasks (e.g., classification, regression, etc.) and integrated with a RISC-V core.

• Created custom ISA that runs on RISC-V and wrote embedded software that controls the acceleator.

• Used a python script for code generation of large scale AI application such as language recognition.




Reading Glove

Arduino, C

• Designed a glove with an Arduino and a camera mounted to the palm such that it can be hovered over text to have the text read out to them via a speaker

• Used BLE to configure the camera, IMU to detect the movement and orientation, and UART to transmit images

• Finite state machine runs on the Arduino to control the reading glove logic.



Cooking Sawyer

ROS, Python, OpenCV

• Identified ingredients at random locations on the table using computer vision (colour thresholding).

• Used AR tags to calculate the relative coordinates between the ingredents, gripper location, and preperation area.

• Followed a desired recipe to assemble a customized burger using motion planning.



Spam Detection System over multi-FPGA Network

Verilog, C

• Designed both the hardware and software system and utilized 3 FPGAs, communicating over the network through the TCP/IP protocol.

• Implemented the spam detection probabilistics model and designed the inference logic on FPGA.




Distributed Systems CRDT Library Design

C++

• Designed a CRDT library with functional and performance benchmark to achieve strong eventual consistency and low merge latency over the network.

• Created a Trello-like project management application using the CRDT library to showcase the advantages of a decentralized distributed system approach instead of a server-based approach.




TinyML Magic Wand Project

Arduino, TensorFlow

• Implemented keyword spotting and gesture recognition and created an end-to-end pipeline from data collection/pre-processing to model training, converting model to TF Lite/Micro for deployment on Arduino


KUKA Robotic Manipulator

MATLAB

• Drawing with forward kinematics

• Motion planning with obstacle avoidance




X-ray Diagnosis on Bacterial and Viral Pneumonia

PyTorch

• Using convolutional neural network and transfer learning to create multiclass classification




TV Schedule Search

HTML, PHP, CSS

• Make a website that searches for TV series schedule of the current season and weekly episodes


Map Application Software Design

C++, OpenStreetMap API

• Created higher-level API and develop graphics interface for the Geographic Information System

• Found the fastest path and the most efficient way for courier companies to deliver packages

• Applied Dijkstra and A* algorithm, local search, and 3-opt




Flappy Bird Game Hardware Design

C, ARM Assembly

• Developed bare metal code on FPGA and ARM core using VGA display and PS2 controller




Piano Tile Game Hardware Design

Verilog

• Applied the knowledge of VGA adapter, audio controller, and Finite State Machine on Intel FPGA


Work Experience

Embedded System Engineer, Analog Devices

Jul 2020 - Aug 2021

C, Verilog, MATLAB, Quartus Platform Designer, Visual Studio, gdbserver

• Worked on 5G 8T8R ORAN O-RU development that spans from optical interface to transceiver

• Developed hardware, bare metal codes and HAL embedded software to connect and link up components of the radio chain, involving and real-time data management and manipulation (JESD204C, 10/25G Ethernet) and communication protocols (SPI, I2C) to configure clock and transceiver chips

• Designed standalone NiOS system and functional software tests on Intel FPGA to de-risk various hardware components on the board during bring-up phase

• Experiences in schematics review, place and route, timing closure, circuit design, Linux OS boot up, RF lab equipment, and system level debug.

• RTL coding in System Verilog and running/debugging simulations (testbench) on hardware component


Analog Devices Logo

-

Full-Stack Software Developer, Rocscience Inc.

May 2019 - Aug 2019

C#, .Net, WPF

• Integrated Sensemetrics API (web socket application) and IDS Radar (HTTPS) into Slide3, fetching and filtering user-selected data through web servers and plotting onto the 3D model

• Developed new UI for importing and selecting data feature and designed process flow

• Implemented the Export Factor of Safety function, converting model to csv and COLLADA files

• Sampled points using Poisson distribution and calculated error between two similar geometries


Rocscience Logo

-

Electrical Engineer Intern, Bekaert Deslee

Jul 2018 - Aug 2018

PCB, Multimeter

• Sorted, tested and troubleshot more than 200 feeder devices on knitting machines

• Identified root causes of malfunctional PCBs

• Decreased the wastage (discard rate) of the feeder devices by 30%, saving the company over ten thousand dollars (replacement expenditure)

• Learned manufacturing process of the plant and machine mechanisms


Bekaert Deslee Logo

Extracurricular

President, Sustainable Engineers Association

Apr 2020 - May 2021

• Oversaw the operation of the club and supported the execution of the club’s events and initiatives

Sustainable Engineers Association Logo



VP Conference, Sustainable Engineers Association

Apr 2019 - May 2020

• Develop full scale project plan, lead the execution and oversee the UofT Sustainability Conference with over 300 attendees from universities and industries

• Coordinate the conference team, chair meetings, and plan the project timeline

• Prepare and maintain the budget and all financial procedures


Relevant Courses

ECE302 PROBABILITY AND APPLICATIONS

ECE311 INTRO TO CONTROL SYSTEMS

ECE334 DIGITAL ELECTRONICS

ECE342 COMPUTER HARDWARE

ECE344 OPERATING SYSTEMS

ECE345 ALGORITHMS AND DATA STRUCTURES

ECE361 COMPUTER NETWORKS I

ECE368 PROBABILISTIC REASONING

ECE421 INTRODUCTION TO MACHINE LEARNING

ECE470 ROBOT MODELING AND CONTROL

ECE496 DESIGN PROJECT

ECE532 DIGITAL SYSTEMS DESIGN

APS360 APPLIED FUNDAMENTALS OF MACHINE LEARNING

CSC384 INTRODUCTION TO ARTIFICIAL INTELLIGENCE

MAT290 ADVANCED ENG. MATHEMATICS

MAT291 CALCULUS III

JRE300 FUND. OF ACCOUNTING AND FINANCE

JRE410 MARKETS AND COMPETITIVE STRATEGY

JRE420 PEOPLE MANAGEMENT AND ORGINAZATION BEHAVIOUR

ECE472 ENGINEERING ECONOMIC ANALYSIS AND ENTREPRENEURSHIP

APS502 FINANCIAL ENGINEERING

EECS206A INTRO TO ROBOTICS

EECS249A INTRO TO EMBEDDED SYSTEMS

EECS249B EMBEDDED SYSTEMS DESIGN: MODELING, ANALYSIS, AND SYNTHESIS

CS267 APPLICATIONS OF PARALLEL COMPUTERS


Resume

Last updated 06/26/2023

Resume Download

Click Here

Contact

Feel free to shoot a message!

> Top