Troy Gu, Developer in Guelph, ON, Canada
Troy is available for hire
Hire Troy

Troy Gu

Verified Expert  in Engineering

Bio

Troy is an experienced application and embedded software developer. He also has practical work experience in machine learning and computer vision. As an embedded developer, he was the first person in the company to come up with the idea of using software to detect the failure of a hardware circuit, thus improving the inspection efficiency at production. Troy actively learns new knowledge and skills, likes sharing knowledge with others, and believes he is a reliable project or work partner.

Portfolio

VOTI Detection
Qt, Linux, Agile, Python
MatrixSpec Solutions
Machine Learning, Deep Learning, MATLAB, C++, Python, Embedded Systems
Datang Telecom Group
Embedded Linux, C++, Linux Device Driver, Embedded C, PCI Express, USB

Experience

Availability

Part-time

Preferred Environment

Linux, Visual Studio Code (VS Code), Qt, C++11, Python 3, Machine Learning, Deep Learning, Computer Vision

The most amazing...

...AI system I've developed identifies the chicken eggs' gender before the eggs hatch and are loaded into the incubator.

Work Experience

Software Engineer

2021 - PRESENT
VOTI Detection
  • Designed and developed a machine learning pipeline to detect electronic storage devices, such as USBs, based on X-ray scanner images.
  • Built a core control panel module, including a back-up and restore tool, which backs up the whole system running environment to external storage and restores the corresponding setting to a freshly installed system.
  • Created a management tool for a remote AI system to upgrade and monitor the system status, and log exports. Fixed the existing program's bugs in an agile style.
Technologies: Qt, Linux, Agile, Python

Data Scientist | Software Engineer

2018 - 2020
MatrixSpec Solutions
  • Built a machine learning module to identify and classify fertility and gender chicken eggs using a hyper-spectral imaging technique.
  • Led a five-people team and worked as a core program developer. Built an embedded a marbling meter portable device from scratch, used to evaluate pork chops and loin quality through a camera system and pre-trained AI model.
  • Analyzed image data, designed features and extraction, and kept developing and optimizing algorithms and models.
Technologies: Machine Learning, Deep Learning, MATLAB, C++, Python, Embedded Systems

Embedded Software and System Engineer

2011 - 2014
Datang Telecom Group
  • Developed a device driver for the Chinese resident ID card reader for the Android platform using Java and C. It was at the register level on USB communication.
  • Built a peripheral component interconnect express (PIC-E) card to protect input and output data on the host machine while working as a core architecture designer.
  • Worked mainly on architecture design, wrote a device driver for Linux and Windows, onboard programs, and a boot-loader.
  • Completed a card fault diagnosis program to diagnose and accurately position most faults at the hardware level, such as shorting pins.
Technologies: Embedded Linux, C++, Linux Device Driver, Embedded C, PCI Express, USB

AI Module to Identify Chicken Eggs' Gender Before Hatching

This AI system identifies the chicken eggs' gender before they hatch and are loaded into the incubator. I calibrated a hyperspectral image, analyzed data, designed and extracted features, and trained and optimized our AI algorithm and models. I also built deep learning models using the technology of 1D, 2D, and 3D convolutional neural networks (CNN) and various long short-term memory (LSTM) in the cloud environment. Finally, I reduced the space of features and fused models.

Hand-held Pork Marbling Meter

This real-time portable device evaluates the quality, including the marbling score and color of pork chops, through the RGB camera. I headed a five-person team to build this device from scratch, including selecting the hardware platform and developing a lighting system and an application program. Also, I segmented the pork chops' region of interest (ROI), trained and optimized models, ported coded and optimized algorithms, and transferred codes from MATLAB to Python and then to C++ to reduce the overall time.

PCI-E-based Embedded Data Encryption Card

Our team built a PIC-E card, which was used to protect input and output data on the host machine. We used the PCI-E interface, DSP, FPGA, and secure chips.

My duties involved:
• Participating in a complete product research and development (R&D) cycle, from a concept to the final production, including the architecture design and key chips selection.
• Developing a device driver, embedded software, a PCI-E card driver for Linux and Windows platforms, the program running on the card in a bare-mental environment, a boot loader program, an application program, and an API.
• Completing a card fault diagnosis program independently to control the production quality. The program can diagnose and accurately position most faults at the hardware level, such as shorting pins and pin non-welding.
• Building card testing tools.

Vimicro Corporation Linux Driver and Test Tools

As an embedded software engineer working on this project, I developed a Linux driver and test tools for the audio module of ARM system-on-a-chip (SoC) to verify all data paths of audio register functions, including memory to speaker and microphone to memory.

Lenovo Internship

While working as a student researcher at Lenovo, I oversaw the Android platform multi-language module development, search module for file management software, and file compression module coding running on Lenovo LePad, a commercial mobile product.
2016 - 2018

Master's Degree in Engineering System and Computing

University of Guelph - Guelph, Ontario, Canada

2008 - 2011

Master's Degree in Software Engineering

Beijing University of Technology - Beijing, China

2004 - 2008

Bachelor's Degree in Computer Science

Liaocheng University - Liaocheng, China

Libraries/APIs

TensorFlow

Tools

MATLAB

Languages

Python, Embedded C, C++, Assembly Language, Java

Frameworks

Qt

Paradigms

Agile

Platforms

Linux, Embedded Linux, Android, Eclipse

Other

Machine Learning, Computer Vision, Image Processing, Device Drivers, Deep Learning, Embedded Software, System Development, Embedded Systems, Linux Device Driver, PCI Express, USB, Bootloaders, FPGA, TI DSP C2000, Operating Systems

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring