1
0
Fork 0
nix-typst-resume/resumes/full/main.en_US.md
2025-08-14 23:07:09 -05:00

267 lines
9.7 KiB
Markdown

<!--
SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
SPDX-License-Identifier: MIT
-->
# <!--raw-typst #name -->
<!--raw-typst #contact -->
## <!--raw-typst #Skills -->
<!--raw-typst #skills -->
## <!--raw-typst #Education -->
<!--raw-typst #utd -->
- Computer Science Fast Track Program (Systems Track)
- Collegium V Honors Program, National Merit Scholars Program
- <!--raw-typst #utd-coursework -->
<!--raw-typst #cvcs -->
- AP Computer Science (Perfect Score), AP Scholar with Distinction, National
Merit Finalist
## <!--raw-typst #Experience -->
<!--raw-typst #bubblefizz -->
- Assist with foam party operations.
<!--raw-typst #syssec -->
- Trace GNU Core Utilities using a Valgrind tool by modifying the test suite.
- Add features to a graph visualization platform designed for viewing system
events.
<!--raw-typst #frankford -->
- Taught JavaScript to middle school students with other instructors.
<!--raw-typst #scrumfish -->
- Implemented API endpoints for data operations, multifactor authentication, and
document conversion.
- Rewrote a book-viewing web UI to support document viewing, sharing, and
annotation.
- Automated updates of email templates in an SQL database using PowerShell
scripts.
- Documented all activities through Jira and GitHub pull requests.
<!--raw-typst #rtechnics -->
- Oversaw server upgrades and ensured smooth transitions for running programs.
- Developed a C# program to fetch song lyrics and metadata from an API for
integration with the main product.
- Automated builds for a server application with Docker.
<!--raw-typst #sonic -->
- Rapidly cooked orders including sandwiches and fried goods.
- Restocked and cleaned the kitchen as needed.
- Coordinated tasks with other team members to ensure teamwork efficiency.
<!--raw-typst #mcdonalds -->
- Recorded orders and took payments.
- Cooked french fries. Prepared drinks and frozen goods.
- Cleaned the kitchen as needed.
- Coordinated tasks with other team members to ensure teamwork efficiency.
<!--raw-typst #team1790 -->
## <!--raw-typst #Projects -->
<!--raw-typst #workspace -->
- Quickly initialize a development environment with a lightweight text editor,
syntax checking, grammar checking, formatting on save, and linting on commit.
- Expose per-project toggles to enable languages, specify project settings, and
add words to the project's dictionary.
- Abstract the complexities of generating interdependent configurations behind a
user-friendly API.
- Separate complex feature implementations into Nix `flake-parts` modules.
<!--raw-typst #armcfi -->
- Extend the GNU Core Utilities test suite to trace the programs using a
Valgrind tool.
<!--raw-typst #provviz -->
- Added label customization options to the system event visualization platform.
- Improved development workflows by adding formatter support and shared
libraries.
- Documented bugs and to-do items on GitLab and in-file comments.
<!--raw-typst #resume -->
- Manage many résumés by moving shared components to a central collection of
modules. Each résumé picks and customizes its own set of modules. Updating one
module will update data across all résumés that use the module.
- Ensure consistent formatting by printing components through reusable Typst
functions.
- Automate dependency and workspace management to prepare all tools needed to
update the résumés, including a lightweight text editor, previewer, and
grammar checker. Lock versions of all tools using Nix Flakes to ensure
consistency across different setups. Configure build steps for seamless
integration with my NixOS-based web server.
- Enable multilingual support through linguify.
<!--raw-typst #syscfg -->
- Manage device configurations through a set of configuration files.
- Group configurations of related programs into modules. Each device chooses
which modules to use. Updating a module shared between devices updates
settings on both machines.
- Lock program versions using Nix Flakes, improving consistency and allowing
rollbacks.
<!--raw-typst #server -->
- Contain my files, tasks, projects, passwords, and other data on a self-managed
server machine.
- Host websites publicly using a VPN running on Hetzner to work around apartment
network limitations.
- Orchestrate program configurations through Docker Compose and NixOS. Automate
deployment of DNS settings and Hetzner configurations using Terraform
integrations.
- Simplify deployment and use of separate operating systems through the Proxmox
hypervisor.
<!--raw-typst #cs6378-database -->
- Duplicates key-value pairs across three servers to tolerate up to two
failures, using an architecture based on the one in Amazon Dynamo. Servers
connect cyclically, and three adjacent servers store data assigned to a
certain hash value, two of which allow writing. When one server fails, the
neighboring servers will connect to each other until the server recovers. Upon
recovery, the server receives and applies the missed transactions.
- Demonstrated total ordering of transactions, even under a high load. A
coordinator node spawns servers and simulated clients on different machines. A
REPL interface interprets commands to add data, show data, and simulate
failures and recoveries.
- Responds to queries asynchronously using the Tokio runtime to boost
performance.
- Translates raw TCP data to Rust objects using Serde to ensure type safety.
<!--raw-typst #cs4459-hacking-->
- Analyzed vulnerable C programs using GDB, Radare2, and other tools. Exploited
them with pwntools using buffer overflow, return-oriented programming,
shellcode injection, and other techniques.
<!--raw-typst #cs6378-ordering-->
- Implemented causally ordered delivery of messages sent between nodes in Rust
using the protocol described by Raynal and Schiper in
<!--vale off--><!--vale on-->The causal ordering abstraction and a
<!--vale off-->simple<!--vale on--> way to
<!--vale off-->implement<!--vale on--> it.”
- Later, implemented totally ordered delivery of messages using a
sequencer-based implementation based on the “Causal ABCAST Protocol” described
by Birman in “Lightweight causal and atomic group multicast.”
- Wrote reports with diagrams of the program architecture using LaTeX with TikZ.
<!--raw-typst #cs4347-database-->
- Learned basic theoretical database concepts. Created a basic Twitter clone
using PHP, MariaDB, Tailwind CSS, Nix, and devenv.
- Wrote a report using LaTeX and TikZ containing diagrams and tables for ER,
database schema, system architecture, interface requirements, data dictionary,
business rules, 3NF normalization, database initialization code, setup
instructions, and screenshots.
<!--raw-typst #cs4341-digitallogic-->
- Designed an arithmetic logic unit (ALU) with a group using Verilog and Python.
- Implemented ALU functions as circuits in a lab environment with a group.
<!--raw-typst #cs4348-scheduling-->
- Reads a list of jobs and outputs the result of scheduling them using
<!--vale off--> First Come First Serve<!--vale on--> (FCFS) and Round-Robin
(RR).
<!--raw-typst #cs4348-mutex-->
- Simulated doctor visits using semaphores to ensure they happen with mutual
exclusion.
<!--raw-typst #cs4348-computer-->
- Simulates a CPU and memory in C using threads and pipes. The program loads a
file with instructions into the memory and executes them.
<!--raw-typst #cs3377-linux-->
- Wrote programs demonstrating signals, sockets, semaphores, threads, pipes, and
other functions.
<!--raw-typst #cs2340-mips-->
- Learned MIPS assembly basics. Wrote a basic Tetris clone.
<!--raw-typst #scoretracker-->
- Stores and displays scores for high school sports games. Provides a panel for
coaches to submit updates.
- Uses cookie-based user authentication and secure password storage practices.
- Automated deployment using Dokku with GitLab CI/CD.
<!--raw-typst #zipversioncontrol-->
- Enables basic Git functions on Zip archives. Designed to synchronize `.ev3`
files for FIRST LEGO League between different computers and allow
modifications on separate programs.
## <!--raw-typst #Volunteering -->
<!--raw-typst #foodnotbombs -->
- Lead an effort to give unhoused populations access to food and household
products.
<!--raw-typst #sandwichsundays -->
- Help leaders and other volunteers run biweekly efforts to give those
struggling financially access to food, clothes, and household products.
<!--raw-typst #openstreetmap -->
- Submitted over 3000 contributions through Street Complete.
## <!--raw-typst #Organizations -->
<!--raw-typst #tri-m -->
- Led the group's coordination of music-related events as President,
Vice-President, and Secretary.
- Improved meeting efficiency by enforcing Robert's Rules of Order.
<!--raw-typst #band -->
- Performed in marching band, pep band, and concert band as a trombonist.
- Performed three times in the Boise State University (BSU) All-Star Honor Band
and once in the BSU Blue Thunder High School Honor Marching Band.
<!--raw-typst #firsttechchallenge -->
- Programmed an Android-based robot to navigate around a field and move objects
to score points.
- Detected object placement at the beginning of the match using EasyOpenCV.
<!--raw-typst #firstlegoleague -->
- Programmed a LEGO robot to autonomously navigate a board and complete
challenges. Improved precision to <1 cm variation per meter using sensor
feedback and mechanical design techniques.
- Created functions to translate real-world distances to motor rotations.
Designed a menu to quickly run match and sensor calibration programs.
- Wrote a utility to synchronize robot programs between computers by extracting
them to a format compatible with Git.
- Helped the team receive many awards, including the state championship,
regional championships, and state programming awards.