
Jackson Wheeler
Software Engineer (Embedded, Networks, Servers, and Web)
B.S. Computer Science Student @ UC San Diego
Software Engineer (Embedded, Networks, Servers, and Web)
B.S. Computer Science Student @ UC San Diego
Passionate and experienced software engineer with deep understanding and practical experience in backend, frontend, embedded, and networks.
Senior university student, with 10 months of experience at Sony Electronics, who leverages strong technical & interpersonal skills to deliver solutions that matter.
Fall 2020 - Fall 2024
University Of California, San Diego
Bachelors of Science in Computer Science
CSE GPA: 3.86
Fall 2022
Yonsei University, Seoul, South Korea
Exchange Program
(Courses: Compiler Design, Computer Vision, Korean Lang.)
Languages: | C, C++; Bash |
---|---|
Tools: | MCUs, Raspberry PIs, Arduino IDE & Boards |
University Courses: | Computer Networks, Wireless Embedded Systems, Operating Systems, Computer Architecture, Compiler Design |
Languages: | Go, Python, PostgreSQL |
---|---|
Tools: | APIs, Linux, Wireshark, pgAdmin, Virtual Machines |
University Courses: | Computer Security, Ubiquitous Computing, Database System Principles, |
Languages: | Java, C#; Haskell |
---|---|
Tools: | Docker, git/GitHub, Visual Studio, Android Studio, .NET |
University Courses: | Software Engineering (incl. Agile), Algorithms, Data Structures, Object Oriented Design, Functional Programming |
Languages: | JavaScript, HTML, CSS; |
---|---|
Tools: | Vue/Vuetify |
University Courses: | Web Development |
Former T3/SECRET Security Clearance Holder
Korean Language Conversational Fluency
Mission Oriented, Practical Problem Solver, Strong Communicater, Bias toward Action
Languages: | Go, JavaScript, Vue/Vuetify, PostgreSQL |
---|---|
Tools: | Docker, pgAdmin, JS WebSockets |
Implemented reverse synchronization between databases, converting items while handling complex mappings.
Developed proof of concept server and client code to synchronously provide & play HTML videos on multiple web clients, utilizing JavaScript WebSockets and developing a clock synchronization algorithm.
Developed multiple external web pages to satisfy needs of various teams
INZONE Buds: Mobile web page showcasing Sony INZONE Buds for the European market, supporting multiple languages.
Sketchfab: Download & EULA page for the Sketchfab application, used on the Sony Spatial Reality Display.
Olivia Rodrigo X LinkBuds S: Mobile web page showcasing the Olivia Rodrigo X Sony LinkBuds S collaboration, supporting Japanese and English.
Redesigned web page on embedded device, used for sending device commands, to be cleaner, more user friendly, and implemented new features: allowed sequences of commands to be created, saved, modified, exported, imported, and logged.
Languages: | Java |
---|---|
Tools: | Virtual Machines, CSV Test File |
MCTSSA is the Marine Corps' Command, Control, Communication, Computer, Intelligence (C4I) integration center. Located in Camp Pendleton.
T3/SECRET Security Clearance
Researched strategies to automate testing on Marine Corps systems.
Developed & implemented code to begin automated testing of a military Windows application. Reads test input data from CSV and utilizes application’s UI to plot friendly/enemy tracks.
Languages: | Python, SQL, Bash |
---|---|
Tools: | Raspberry Pi4 |
Other: | Port Forwarding, Ngrok |
Team of three developed automatic plant watering system. A microcontroller (MCU) placed in the plant controlled the watering system, watering at the server's instruction. A mobile application developed provided user interface to see the status of their plants and tailor the automatic watering to fit their needs.
I designed the system architecture, including the means of communication between MCU and server, and server and mobile application, defining the necessary APIs & functionality to fit our requirements.
Implemented API server and SQL database on Raspberry PI device.
Implemented port forwarding on home network to allow constant SSH & development access to Raspberry PI server. Utilized Ngrok service to make API server publicly available.
Languages: | C |
---|---|
Tools: | STM32 MCU (ARM Cortex-M4) |
Other: | BLE, Accelerometer, I2C, Timers |
Developed firmware for microcontroller to, while using minimal power, notify the user when it is lost. When left stationary for X amount of time, the microcontroller initializes BLE to beacon to nearby devices it's lost status until it detects movement again.
Wrote multiple firmware drivers from scratch, including for accelerometer, I2C, timers, and LED.
Refactored firmware to considerably reduce power consumption, utilizing CPU sleep mode.
Languages: | C++ |
---|---|
Tools: | Arduino IDE, VSCode PlatformIO |
Other: | Embedded WiFi, BLE, API Calls |
Deployed C++ code on ~25 IoT devices (ESP32 Arduino Boards) for data collection in RIMAC (UCSD's Fitness Center) during May 2023. Each board records all nearby bluetooth beaconing devices and their signal strength, then logs that data to our backend API through HTTP.
Includes:
Languages: | Python, SQL |
---|---|
Tools: | Apache, MySQLWorkbench |
Python Libraries | Uvicorn, FastAPI, PyMySQL |
Implemented API that logs data from IoT devices, through HTTP request, to our backed SQL database. Also implemented API methods for user to view the SQL data.
Includes:
Languages: | Java |
---|---|
Concepts: | Threading, Multiprogramming, Virtual Memory |
Implemented Operating System concepts in the Nachos operating system. Nachos is a Java application written to perform the functions of a real OS, but with missing implementations that would be filled in by us, the students.
Accomplished:
Language: | JavaScript, HTML |
---|---|
Tools: | REST API, JotForm |
Manipulated source code of a personally created JotForm form, directing user data to REST API backend.
Language: | C# |
---|---|
Tools: | .NET core, API |
Utilized OpenAI API in the .NET core framework to develop a console application that allows the user to chat in real time with ChatGPT
Image of the Console App developed. Note: executed questions and the ChatGPT responses are displayed.
Language: | C |
---|---|
Tools: | Wireshark, Mininet, POX, Ubuntu VM |
Networking Protocols: | Ethernet, ARP, IP, ICMP |
Developed code to accurately & efficiently route and send incoming packets to the next step in the network, given the packet's final destination, and according to the IP networking protocol.
Includes:
Every device in the virtual network that is running my developed packet routing code will correctly & efficiently route packets sent across the network.
Handles interplay with virtual network system, Mininet.
Input: Receives incoming packet (as a buffer of data in memory).
Output: Outputs a properly constructed outgoing packet (buffer of data) and the corresponding interface this packet should be sent over.
Work: Parses information from packet. According to networking protocols takes proper action (i.e. sending ARP reply, forwarding IP packet to next step, etc.).
Please contact me for more detailed
summary of implementation!
Attempt 1: Attempted to implement multi-threading in router to improve performance. Due to threading overhead, performance worsened → Re-evaluated.
Solution: Implemented improved data structures for storing routing table and router's interface list, dramatically improving lookup time:
Language: | C |
---|---|
Tools: | Multi-threading |
Networking Protocols: | Sliding Window Protocol, CRC-8 Error Detection, Framing |
Implemented Sliding Window Protocol on both the sender and receiver side, ensuring reliable in-order delivery of frames between any number of senders and receivers.
Includes:
Example of sender sending a message to a receiver (sliding window protocol not shown).
Sender:
Receiver:
(CRC-8 implemented on all sent frames & checked on all received frames → allows for reliable delivery over links with high corruption probability)
Languages: | HTML, CSS, JavaScript |
---|---|
Tools: | Browser Developer Tools |
Developed this portfolio website from scratch, using pure HTML, CSS, and a minimal amount of JavaScript
Goal: A simple & straightforward website designed to display who I am and what qualifications I have for a given job. Designed for practicality and efficiency, minimizing excess content
Image of website in progress, no CSS or JavaScript added yet.
Original wireframe of proposed design of website
While learning crucial Web Development skills and strategies in class, built up a portfolio website in a progressive enhancement style.
In all cases focusing on user experience:
Languages: | Java, MiniC (Subset of C) |
---|---|
Tools: | Bash scripts |
Implemented multiple stages of a compiler (in Java) for the MiniC language (a subset of C). Implemented Scannar, Parser, Semantic Analyzer, beginnings of Code Generator.
Languages: | Java |
---|---|
Tools: | Android Studio |
Other: | Agile Development Process |
Worked with team of 6 to develop an Android application for navigating to exhibits from within the San Diego zoo. User creates list of exhibits they desire to see, an ideal route is computed, and the app provides the user with directions to each exhibit along the route. During the route, users may perform actions (i.e. skipping an exhibit, replaning the route)
Languages: | Python |
---|---|
APIs: | Selenium, XlsxWriter |
Built program that web scrapes mutual fund data from Charles Schwab website and outputs organized Excel file
Languages: | Python |
---|---|
APIs: | Neat-Python, Pygame |
Utilized NEAT-Python and its reinforced learning in order to train a program on how to play the python snake game effectively.
Languages: | Python |
---|---|
APIs: | Selenium, Beautiful Soup |
Languages: | Java |
---|
Challenged myself to utilize a new programming language, Java, to develop a functional chess game that can be run in the terminal.