About Me
Table of Contents
Table of Contents
Education
B.A. in Computer Science
Aug 2016 - May 2019 (Accelerated Graduation)
Whitman College
Walla Walla, WA
- Quick Stats
- summa cum laude
- Major: 3.91/4.0
- Cumulative: 3.93/4.0
- Phi Beta Kappa honor society
- Coursework
- Advanced Project (SAT-based matching algorithm)
- Capstone Project (website and matching algorithm)
- Software Engineering (class project)
- Artificial Intelligence (final project)
- Natural Language Processing (Python)
- Algorithm Design and Analysis
- Theory of Computation
- Systems Programming (C, Assembly)
- Systems Architecture
- Data Structures (C++)
- Discrete Math and Functional Programming (SML)
- Leadership
- Founder/President of STEM4ALL residence hall suite (2017 - 2018)
- Vice President of Martial Arts club (2017)
Skills
Programming and Scripting
- C++, C, Python, Bash, Lua, Java
- SDL2, Emscripten, OpenGL
- Make, CMake/CTest, GDB, GProf
- Windows, Linux, Mac, Android, WebAssembly
- Auto documentation (Doxygen and Sphinx)
- Continuous integration (Travis CI, GitLab CI)
- Version Control (Git, GitHub, GitLab)
Work Experience
Research Assistant (Department of Computer Science)
May 2017 - Jul 2017
Whitman College
Walla Walla, WA
- C++ software development of gene regulation network simulation: git.io/vdLek
- Optimized runtime by 20% using static polymorphism (CRTP and X-Macros)
- Automated simulation per-model compilation with CMake
- Refactored I/O and analysis modules to be user-extensible
- Monthly formal presentations to CS department on progress and results
- Awarded 3rd place student presentation at the Consortium for Computing Sciences in Colleges northwestern 2017 regional conference
Museum Guide & Camp Councelor
Jul 2015
The Science Factory
Eugene, OR
- Engaged visitors of all ages in applying scientific method to museum activities
- Supervised chemistry and astronomy experiments for two dozen campers
Projects
EzGL Game Engine (C++)
Feb 2018 - Present
- Factory- and component-based game engine implemented from scratch
- Plugin support through json-configurable dynamic loading and initialization
- Graphics API-agnostic core; OpenGL or SDL renderers loaded dynamically
- Statically polymorphic MVC components using CRTP
EzMake (Make, Bash)
May 2018 - Present
- Automation scripts for building, documenting, testing, and Emscripten porting
- Static or dynamic linking, allowing each module to be its own shared library
- Unit testing framework with program input customization
Expectiminimax Game AI (C)
May 2018
- Implemented AI agent for stochastic board game “The Royal Game of Ur”
- Customizable ply lookahead; can pit two AIs of different lookahead values against each other or play against an AI yourself
- Beat random agent 97% of the time and 1-ply lookahead agent 65% of the time
- Written in pure C89 for my own fun and suffering
Accompaniment Pairer (C++)
Aug 2017
- Paired 60 non-pianists and piano accompanists via Google Forms CSV parser
- Eliminated need to spend hours manually determining compatible schedules
- Optimal pairings defined as students having greatest schedule overlap
High School Coding Projects (Java, LWJGL)
2014 - 2016
- Ping pong physics game with ball position predicting AI using kinematics
- Isometric Pac-Man-like game with narrative themes from 1984
- Simulated macroeconomic and international trade models
Crazy Ravines Minecraft Mod (Java)
Aug 2012
- 10,000 total downloads: 7500 in first six months, 2500 in following six months
- Retained audience by addressing community feedback such as adding “Crazy Caves” and support for in-game customization
- Featured on dozens of YouTube channels and international forums
Languages
English
- Native language
French
- Professional proficiency
- AP French: 5/5
- IB French B HL: 5/7
Chinese
- Basic proficiency