Hello, I'm Steven Xia. Student and Software Engineer.

I am a Computer Science student with knowledge in cloud computing, operating systems, distributed systems, databases, and robotics.

About

Introduction

I am a student at the University of Michigan majoring in Computer Science from the College of Engineering Honors Program and minoring in Business from the Ross School of Business. I am passionate in low-level and high-performance computer infrastructure related fields such as operating systems, distributed systems, computer networks, databases, computer architecture, and robotics.

Languages

C/C++(20)
Rust
Python
Go
SQL

AWS

Certified Cloud Practitioner

EXPERIENCE

May 2022 - July 2022

Software Development Engineering Intern - Amazon Web Services

- AWS Serverless Compute Fabric

December 2022 - Present

Instructional Aide for EECS 482: Operating Systems - University of Michigan, College of Engineering

- Work with Professor Peter Chen to operate an advanced-level Operating Systems course of ~360 students

- Teach weekly lab sections and host 1-on-1 office hours to reinforce understanding

- Answer questions on course material through online platforms such as Piazza and Discord

- Create homework and exam problems and host group review sessions to explain solutions

August 2022 - December 2022

Instructional Aide for EECS 484: Database Management Systems - University of Michigan, College of Engineering

- Work with Professor H. V. Jagadish to operate an advanced-level Database course of ~360 students

May 2022 - August 2022

Data Analyst Intern - CyberCube Analytics

Data Collection:

- Wrote Python algorithms that pull and filter cyber risk data, update the company PostgreSQL database with new or updated data, and perform queries to match vulnerabilities to client companies

- Automated data-collection by setting up scheduled calls on multiple data feed APIs

DevOps:

- Created and managed AWS S3, ECR, ECS, EventBridge, SQS, and RDS resources

- Migrated resources to new AWS account and set up infrastructure using Terraform and CloudFormation

- Set up CI/CD pipeline for AWS container-related workflows using GitHub Actions

September 2021 - May 2022

Avionics Programmer - Michigan Aeronautical Science Association (MASA)

- MASA is a project team of over 100 students, building one of the first collegiate liquid bi-propellant rockets

- Wrote and Debugged GUI and data-viewer, written in Python with the PyQt5 library

- Wrote and tested flight controller firmware and test flight controller PCB, implemented in C

- Researched for a new automated unit testing framework

EDUCATION

Expected Graduation: May 2024

Bachelor's of Science in Engineering, Honors
- University of Michigan, College of Engineering
- GPA: 3.94/4.0

Major Coursework:

- Distributed Systems (TBD)

- Compiler Construction (TBD)

- Computer Security (TBD)

- Computer Game Design & DevelopmentGame Development (A+)

- Computer Networks (A)

- Advanced Operating SystemsAdv. Operating Systems (A)

- Web Systems (A)

- Parallel GPU ProgrammingGPU Programming (A-)

- Database Management SystemsDatabase Mgmt. Systems (A+)

- Theory of Computation (A+)

- Computer Organization (A)

- Data Stuctures and AlgorithmsData Stuctures & Algorithms (A)

- Linear Algebra (A+)

- Statistics (A+)

- Circuits (A)

Planned Coursework:

- Computer Architecture

- Embedded Systems

Expected Graduation: May 2024

Minor in Business
- University of Michigan, Ross School of Business

Minor Coursework:

- Business Strategy (TBD)

- Financial Decisions (A-)

- Marketing (A)

- Accounting Principles (A)

- Economics (A+)

Planned Coursework:

- Entrepreneurial Finance

Projects

Here is some of my work that I've done in various programming languages.

Haunt

You are a reanimated skeleton trying to live a normal life, but the members of the nearby town want to seal you away! Luckily you have a trick up your humerus: a gun. Defend your graveyard in this low fantasy roguelike bullet hell by fighting off townsfolk and stopping their sorcerers from lighting the three altars that will imprison you in your coffin for the rest of time.

(Unity C#)

Play the Game Here!

Project Source Available Upon Request

Bouncin

Designed and implemented a roll-a-ball style platformer game. Features include spikes, moving platforms, falling objects, and flying bullets, including a unique bouncing mechanic. I completely developed the game using Unity C#.

(Unity C#)

Play the Game Here!

Project Source Available Upon Request

Metroid NES Remake

Implemented a complete replica of the classic NES game Metroid with a novel grappling mechanic, inspired by the character Pathfinder from Apex Legends.

I primarily worked on the debugging of the zoomers and skree AI systems, and the creation of enemies in general, including tinkering with the usage of RayCasts. Additionally, I set up the project structure and organized the code base. For the custom level, I designed the grappling mechanic and map for the level. I also contributed to setting up Jira, the progress-tracking platform used in the project.

(Unity C#)

Play the Game Here!

Project Source Available Upon Request

Thread Library

Implemented a fully functional thread library that works on multiple CPUs, including classes such as thread, mutex, condition variable, semaphore, latch, and barrier. The scheduling policy is strictly FIFO and no spurious wake-ups are permitted.

Thread - The user may declare a thread object with an associated function and parameter. The library will then execute the runtime of the thread.

Mutex - Provides mutual exclusion between threads. A thread may acquire the mutex upon calling lock() and owns the mutex until unlock() is called.

Condition Variable - Allows threads to wait on any predicate. After a thread calls wait(), it can be allowed to continue when another thread calls signal() or broadcast().

Semaphore - A thread may call increment or decrement the internal value of the semaphore. If a thread attempts to decrement when value is already 0, the thread's execution is blocked.

Latch/Barrier - Allows threads to accumulate at the latch/barrier until a threshold is met, after which the waiting threads are allowed to continue.

(C++)

Project Source Available Upon Request

Virtual Memory Pager

Implemented an external virtual memory pager that supports multiple processes and forks on processes with non-empty arenas. The pager supports swap-backed pages: created by the user and backed by temporary swap-blocks reserved by individual processes; file-backed pages: shared between processes and represented as files.

vm_map() - Assigns a new page in the valid portion of a process' arena. Initializes a bitwise 0-page for swap-backed and maps to an existing file for file-backed.

vm_create() - Initializes a new arena on process creation, or shares an arena with parent process on fork. Does not copy any pages.

vm_delete() - Handles all traps to the OS, including invalid memory accesses, non-resident memory accesses, simulation of LRU page-replacement policy, page-in and page-out operations, etc.

(C++)

Project Source Available Upon Request

Network File Server

Implemented a multithreaded file server that accepts TCP connections from potential clients. A client should establish an RPC connection with the file server upon initialization. The server uses a mostly optimistic concurrency control policy, allowing the most recent writes to always persist. The server discards any invalid requests and times out on slow requests. Up to 30 concurrent client requests are accepted.

fs_create() - Creates a new file/directory in the filesystem. The new file/directory is owned and controlled by a single owner.

fs_delete() - Deletes a file/directory.

fs_readblock() - Reads 512 bytes of content of a file and sends the data back to the client via the RPC connection.

fs_writeblock() - Writes 512 bytes of user-specified data to a block of an existing file. Times out if user sends insufficient data.

(C++)

Project Source Available Upon Request

Fakebook

Simulated a social media database, storing information about users, friendships, cities, states, countries, photos, messages, events, albums, image tags, and more... Implemented complex schema with 15 tables. Used methods such as triggers and sequences. Converted data into document-store JSON format and loaded a MongoDB database. Performed queries involving inner and outer joins, nesting, grouping, unions and intersections, ordering, etc.

(Oracle SQL*Plus & MongoDB)

Project Source Available Upon Request

Zookeeper

Simulated a Zoo with many animal hubs in various user-specified locations, represented as Cartesian coordinates. Implemented Prim's Algorithm to find the Minimum-Spanning Tree for the given animal hub locations, representing the shortest electrical grid needed to reach all hubs. Used either random-insertion heuristic to find a fast solution or branch-and-bound algorithm to find a globally shortest Hamiltonian Cycle through all hubs, representing a directional pipeline.

(C++)

Project Source Available Upon Request

Maze Solver

Designed a program to find a path out of any rectangular maze with walls, floor, and elevators, represented by a 3D std::vector. User can select between depth-first and breadth-first search algorithms. The search algorithm records the direction taken at each location and uses backtracking to record the path taken. Outputs the final path in both coordinates and visual representations of the maze.

(C++)

Project Source Available Upon Request

xia-steven.github.io

Developed my personal portfolio website that supports theme-changing, animated page switches, animated buttons, page-width responsive layout, and a contact feature. Hosted through GitHub Pages.

(HTML5 / CSS / JavaScript)

Project Source

Circuit Matrix Generator

Designed an algorithm that takes in a conductance matrix of a linear resistor circuit and generates a system of linear equations as a matrix of coefficients using nodal analysis. Then, it generates a MATLAB script that solves the equations.

(C++)

Project Source

Disk Scheduler

Designed a multithreaded disk scheduler that uses a "shortest-seek-time" scheduling policy. Used mutual exclusion and condition variables to synchronize threads. The scheduler accepts any number of requesters and schedules a single servicer.

(C++)

Project Source Available Upon Request

Contact

Contact Information

Contact Info

If you have any questions for me, feel free to reach out! I will do my best to respond ASAP.

Location:

Ann Arbor, Michigan

Email:

stevenx@umich.edu

LinkedIn:

xia-steven

Mobile Number:

+1 (302) 482-5827

Languages:

English, Mandarin