Jacob Feng: Portfolio 2

Software Engineering

Olympic Weightlifting Olympic Weightlifting

A Quick Look

Experience

Data Analysis

Apple

Software Engineer Intern

Software Development

Teck Resources

Wireless Engineer Co-op

Research

[RGRG]2

Data Analyst Co-op

Education

UAlberta Crest

Computer Science

UAlberta Crest

Computer Engineering

UAlberta Crest

Biology

Projects

AR Preview

FormFitness

AR form checking app on iOS

Asteroid game-container

AI Asteroids Bot

Genetic Fuzzy System

Image Captioner Preview

AI Image Captioner

Seq2Seq Vit + GPT2

Aboout this site

Built with Phaser in TypeScript.

I got bored of my old portfolio, and I've always wanted an interactive game portfolio. My experience lies in AI + networks + internal tooling, but I've always had a strong creative side, so creating a front end web game was such an exciting idea. I laid down most of the ground work in a week, because I literally could not stop thinking about this site.
Please feel free to leave me any feedback through GitHub.



Last updated November 26



Software Engineer Intern

Me at Apple Park

Worked on Qt C++ App Development and built AI issue triaging system.

Foundation Model AI Python Data Engineering Qt C++

AI Log Analysis:

Built an AI workflow for triaging and suggesting potential bug causes. It works by parsing the issue's attached logs concurrently according to a user-definable prompt. Users can tell the model to pay attention to common bug culprits (e.g. strange disconnections) and the model will report the relevant line numbers. Logs can be 20GB+, so concurrency and reliability is critical.

Log Browsing Tool

Added interactive sequence chart generation to a popular log browsing tool. Using Qt C++, users can quickly generate interactive sequence charts for massive log files that retain links to the original lines. A cached configuration allows users to cherry pick what kind of content is parsed into the sequence chart.

Slack Issue Tracking

Created a Slack bot to update responsible individuals on new issues and issue changes.

Wireless Engineer Co-op

Me in front of a Teck haul truck

Automated LTE/5G testing, built data pipelines, and assisted with building a networks lab.

LTE Networks Python Data Pipelines Raspberry Pi PowerBI PowerShell

Network KPI Dashboard:

Automated the delivery of a detailed PowerBI report on networks performance. Users can filter by specific mine site locations, vehicles, and more. Built by parsing unstructured data into PowerBI using Python and SQLite. This report was instrumental to determining where to invest in network infrastructure.

Data Centralization to Azure

Built a series of scripts to centralize data from individual mine site devices to a central database. Used Python and PowerShell to securely transfer data across jumphosts. Worked with the Azure team to define data specifications.

Automated LTE Device Testing:

Built a Python test kit for stress testing LTE/5G routers. Built in support for 5 devices, but by following OOP best practices new devices can easily be added. The test kit interfaced with a Raspberry Pi to send dummy packets under various condition. Attenuators were used to simulate poor connection, allowing testing for cell reselection, throughput, band reattach, and more.

Network Lab Setup:

Assisted with the configuration of an LTE Core and Cell for isolated testing. This included RF circuit assembly, firewall configuration, setting up GRE tunnels and subnets, and more.

Data Analyst Co-op

RGRG Logo

Built data organization and visualization tools for carbon capture researchers.

Tkinter Python Data Centralization Scripting

Carbon Stability Plotting:

Designed and developed an app for plotting dense carbon capture data using Python Tkinter, Matplotlib, and NumPy. Worked with

Data Recovery & Centralization

Made 5+ years of scattered inconsistent data usable again by parsing and standardizing data formatting for various files (.xlsx, .csv, .txt) onto Google Drive.

University of Alberta: BSc in Computer Science

RGRG Logo

Just like the learning rate optimizer on a ML system, I made a final tiny step compared to my initial leap from Biology to Computer Engineering. I made this switch because of my affinity for doing. The classes where I got to build systems with real use cases, I enjoyed the most.

I don't like doing theory. I know it makes me a better Software Engineer, but when I found myself calculating values for circuits, I couldn't help but wonder when I would actually get to apply it?

University of Alberta: BSc in Computer Engineering [Transferred]

RGRG Logo

A great step.
Taking a computer science elective shocked me. Studying wasn't a chore, since the assignments felt like cool projects that I felt myself gravitating towards during my free time.

So then I made the switch from Biology to Computer Engineering -- I picked Engineering over Computer Science over some arbitrary assumptions that Computer Engineers get to learn more. A small regret I would come to have. But still, it was a big leap that was very rewarding. I always spent an ungodly amount of time learning about tech developments, so why didn't I begin University with a tech-related degree?

University of Alberta: BSc in Biology [Transferred]

RGRG Logo

I started University being interested in Optometry and Physiotherapy. I couldn't commit to exactly what I would do, but I spent time in high school studying nutrition + strength programming and the degredation of peripheral vision.
I started University in Biology, and I took a Computer Science course as an elective.

That's when everything changed.

FormFitness

GitHub

FormFitness is a project I started in September 2024. My first venture with Swift, it is an exciting project that combines my love for biomechanics and software.

Swift iOS xCode AR

How does it work?

FormFitness uses AVFoundation in Swift to generate two AR skeletons -- One for the user, and another for a reference image. By calculating the offset between the user's pose skeleton and the reference, FormFitness uses pose color gradients to highlight where the user's form needs improvement.

Features:

  • Real-time body skeleton tracking
  • Display reference image
  • Favorite exercises

AI Asteroids Bot

Asteroid game-container GitHub

AI Asteroids Bot is a project built on top of the Kessler Game. The game consists of randomly spawning asteroids, and some ships that need to fight for their survival by shooting the asteroids, or flying away, or both.

AI Scikit-Fuzzy Genetic Algorithms

How does it work?

The bot is built on a fuzzy architecture -- some loose rules to decide whether we fight or flight, or both. On its own, the architecture doesn't provide very much value.
Using a genetic algorithm, turning hyperparameters like when an asteroid is too close for comfort and how quickly the ship turns around gives us a much more responsive bots. Fitness is determined by shooting accuracy, survival time, and more.

AI Image Captioner

GitHub

AI Image Captioner is exactly what it sounds like. This model takes in image input and outputs a caption for the image.

AI NLP Vision Transformers Seq2Seq model

How does it work?

Trained on the Flickr8k dataset, the model is a seq2seq model built on ViT and GPT2. The ViT processes images into a sequence of features, which is then mapped as an input into GPT2. GPT2 is then delegated with taking the visual understanding from ViT and generating natural language that describes the image.