/Self

/Skills

Languages
C++23
C
Java
Rust
MLIR
Python
JavaScript
OCaml
Assembly
SQL
Toolchains
LaTeX
Mathematica
MATLAB
Vulkan
LLVM
Abseil
GTest
React
Google Sanitizers
Systems
Kubernetes
AWS
Bazel
Protobuf
Spring
WebAssembly
MongoDB
Cassandra
Redis
Domains
Compilers
Operating Systems
Graphics
Parallelism
Networking
Distributed Systems

/Industry

Microsoft Logo Microsoft 2024

MAIA (Microsoft Artificial Intelligence Accelerator)

C++, Python, Triton, MLIR, LLVM
  • Designed and implemented Triton compilation discovery mechanisms, saving hundreds of engineering hours by enabling parallel pre-compilation and linking processes.
  • Developed a MAIA Triton cache that minimized compilation invocations, achieving a 10% average reuse rate and improving kernel development throughput by approximately 30%.
  • Created a LIT testing framework for our Python DSL, deprecating the hand-written LIT test process.
  • Bound MLIR runtime errors to Python DSL, enabling immediate error feedback for enhanced user experience.
  • Conducted interviews and trained new hires, supporting a rapidly growing team of over 50 engineers.

Apple Logo Apple 2021

Machine Learning Infrastructure Engineer

Java, Scala, Rust, C++, Bazel, AWS
  • Built a task scheduler and database abstraction service that executed parallel requests derived from dependency trees.
  • Extended a multivariate experimentation platform with stochastic schedule-based allocations.
  • Developed a data pipeline query service for visualization and experimental analysis.
  • Optimized services to support over 100 million low-latency requests per day.
  • Implemented a caching layer for database query aggregation, increasing throughput by 50%.

/Projects

Vantle Logo Vantle Research Eternal

Molten: Abstract Computation

Bazel, Rust, Molten
  • Designed a mathematically pure, graph-based intermediate representation for abstract computation.
  • Designed and implemented a text-based front-end targeting the graph-based representation.
  • Created a matrix-vector based graph runtime enabling parallel execution.
  • Built a visually rendered, non-textual programming interface.
  • Testing an NDFSM optimizer that uses reinforcement learning to navigate an incomputable search space.
Philosophy

The design of Molten is summarized in axioms:

  • All theoretical computation consists of transitions between graphs.
  • All optimization is about leveraging time, data, and dependency symmetries between function map spaces.
  • All contractual behavior should be visible and extendable.
  • Hardware, software, and data are unified.
  • Machines will overtake humans as program generators.
The validity of these axioms is predicated on the results of the development of the Molten Rust compiler and subsequent Molten Molten compiler.

Motivation

While my personal motivation is less about "how to make languages better," Molten does address specific problems. Existing languages have the following theoretically undesirable features:

  • Do not separate platform details and compute details.
  • Target basic mathematical operators or hardware intrinsics instead of computing with pure transitions.
  • Assume serialized execution ordering by default.
  • Have a memory model.
  • Have implicit computational contracts.
  • Have metaprogramming as a second class feature; often expressed differently than the core language.
  • Human opinion cannot be unified.
With that in mind, consider this Turing Machine implemented in Molten, capable of simulating all computable functions.
                      [False] (Boolean),
                      [True] (Boolean),
                      [Not.Boolean] (
                          [True] (False),
                          [False] (True),
                      ),
                      [And.Boolean.Boolean] (
                          [True.True] (True),
                          [False.Boolean] (False),
                      ),
                      [Or.Boolean.Boolean] (
                          [True.Boolean] (True),
                          [False.False] (False),
                      ),
                  
The expression, in this case has only 5 semantic features.
  • [] []: indicates a bi-directional transition. You are free to translate back and forth, these are isomorphisms.
  • [] (): indicates a forward directional transition from [] to (). You can only move forward using this rule, these are relations.
  • ,: indicates a partion. These separate statements which are independent from one another in the program. These can be executed in parallel, or speculated on, sometimes called orthogonality. They also prevent relation constructions between defined to be unrelated features, though program analysis is allowed to disprove these assumptions and optimize.
  • .: indicates a conceptual partion. These separate statements which are independent from one another, but are grouped together into a graph. These are stacked to define constraints, seldom used in file systems, but we prefer to call it attributes.
  • All other characters. These are either styling information, or depending on context, execution labels. For example, And is a label defined, and when grouped with Boolean.Boolean maps to an operator scope, as seen in the program.
A key idea is that there is no order for program control flow. It is only explicitly ordered based upon the relations in the program, which are user defined. Further, if a program has some constraints grouped with . or , there is no contract defined about the order in which the evaluation may take place. We will expand on this later.

With this, we have defined a non-deterministic finite state machine; and provided a framework for abstraction layer communication which allows for contracts to be built on top of one another. In addition, we've unified human and computer program interpretability. We can now design other ways to express these semantics, like in a graphical programming language (the next desire.).

As it's developed, I encourage those who are interested to checkout the project at Vantle. It's still unreleased, so links may be broken and a playground isn't available yet, but send me an email if you want to setup a time to talk!

Riemann Hypothesis Mathematics Eternal

C++, Mathematica
Various studies of pure mathematical domains, namely Number Theory, visualized with Mathematica tools.
  • Atypical prime number (-1, 2, 3, 5, ...) translation, factorization, extension, and decomposition.
  • Complex analysis and complex representation analogues and extensions.
  • Arithmetic progressions such as Bernoulli numbers and the Hailstone sequences.
  • Pascal sequences (1; 1, 1; 1, 2, 1; ...) and Pascal matrices, recursive variation analyses.
Above is a render of the progression of a prime factorization variation of the Collatz conjecture, which shows that the highest prime factorizations contains the total cycles. Some variations even suggest that there is only one central ring (cycle); as if some functions have inherent entropy that factoring cannot erase.

/Education

UVA Logo University of Virginia Engineering 2018

BS.c, School of Engineering and Applied Science

Computer Science / Physics

Courses
Algorithms; Artificial Intelligence; Calculus; Circuit Design; Classical Mechanics; Compilers; Computer Architecture; Computer Graphics; Data Structures; Discrete Mathematics; Game Design; Linear Algebra; Oper- ating Systems; Ordinary Differential Equations; Probability; Software Engineering; Theory of Computation
Thesis
P-computation: Algorithmic analyses for prime representations of higher-dimensional numbers

/Achievements

  • E-sports (Codeforces), Expert (Rating: 1633), Top 13%. 2023
  • E-sports (Chess), Rank: 45,792 / 3.29M, Top 1% 2022
  • E-sports (League of Legends), Grandmaster (Rank: 1,000 / 1.7M, NA), Top 0.06%. 2019
  • Language, English (Native), Korean (Professional), Chinese (Beginner)2020