~/portfolio $ whoami
latest as of
Mark.
makes models run faster.
Transformers written from scratch, DNN kernels hand scheduled in TVM across CPU, GPU and FPGA, and the Rust servers and iOS apps underneath. One person, the whole stack.
- 1st in class
- Cornell ECE 5545, benchmarked TVM kernel optimization
- 1st in class
- Cornell CS 5740, NLP held out test accuracy
psst, this site has an interactive mode. Try pressing ~
stack coverage5 of 5 layers
- silicon
- 2 projects — what the hardware executes
- kernel
- 7 projects — numerics and the compilers that emit them
- runtime
- 10 projects — memory, threads, the wire format
- service
- 6 projects — what stays up and answers
- interface
- 6 projects — the part a person points at
Counted from each project's declared stack, metal at the top.
// under the hood
Pick a project.
Trace it to the metal.
Different projects. Shared foundations.
Explore where each one lives in the stack.
Choose a project
3 of 5 layers reached
ProjectScone
A self-hosted memory and retrieval framework for agents, with a Python framework, independent Rust engine, and web console. A JudgeHuman project.
- interfaceThe part you get to touch.
- runtimeMemory, threads, and execution.
- kernelThe math, and the compilers behind it.
Python · Rust · TypeScript · React · SQLite · Qdrant · MCP
Explore ProjectSconeLit layers are inferred from each project's declared tools.
// now
~/portfolio $ cat now.txt
- building
- JudgeHuman
blinded AI evaluation and evidence-backed human review
- developing
- ProjectScone
self-hosted agent memory, source evidence, and temporal retrieval
- compiler work
- ZDeceptron
reactive dataflow, shared route code, and build-time rendering
- also shipping
- AppMeee
the unified inbox, fourteen platforms and counting
- mentoring
- ASCEND
Cornell-connected program funded by LinkedIn
- reading
- inference and context engineering papers
KV cache management, context rot, and what distillation actually transfers
- away from the desk
- learning to jump a mountain bike
badly, and with great enthusiasm
- working at
- go find some cat fish foo!
- studied
- M.Eng in Computer Science, Cornell University
campus located somewhere in dream world
// about
I'm Mark, a generalist who'd rather build the thing than pick a lane.
Lately that has meant ProjectScone: self-hosted memory for agents, where a retrieved claim can lead back to its source and a correction has a history. Alongside it, I am building JudgeHuman's evaluation workflows and ZDeceptron, a language whose compiler derives the boundary between client and server. Evidence, state and the boundaries between systems keep turning out to be the work.
The work moved and I followed it. Products increasingly meant AI products, and doing one of those properly turns out to require knowing what sits underneath, so I went and found out. A transformer written from scratch shows you what the architecture does. The autodifferentiation beneath it shows you why that works. Hand scheduling its kernels in a compiler shows you where the time actually goes, which is a different discipline again. Cornell coursework in ML hardware and systems, natural language processing and deep generative models put theory under what I had been learning by hand.
All of that is an argument for range rather than against it. The Rust servers, the iOS apps and the infrastructure are not a detour from the AI work — knowing a lot of things is the job now, and the people who only know the model layer find that out the hard way. Several projects here are being rebuilt at the moment, deliberately: ship, learn, rebuild better.
// mentoring
- ASCEND current mentor
- I mentor through ASCEND, a Cornell-connected program funded by LinkedIn.
- BobaTalkspreviously · 3 years
- Previously, I spent three years as a mentor with BobaTalks, meeting over 300 students, early-career professionals, and people transitioning careers.
~/portfolio $ ls elsewhere: blog
// growth rings · time machine
A body of work
has a grain.
Rewind the rings. See what took root.
Touch a ring, or move through the years below.
2026
Projects started in this year
5 projects · 130 recorded project commits
One highlighted band per year. Band width uses recorded project commit totals, grouped by start year—not annual activity. The natural wood grain is illustrative.
INTERACTIVE / 01 — KERNEL LAB
Same math.
Less moving.
A matrix multiply, opened up. Change the tile size. Watch the same numbers do more work before they leave memory.
FOLLOW THE COMPUTATION
Inside the machine.
From a grid of threads to one answer. Follow the values as they move through the machine.
LAUNCH / 01
Divide the work.
A launch divides the output matrix into a grid of independent blocks.
gridDim = (4, 4, 1)
An 8 × 8 output. Each block computes 2 × 2 cells. Follow the selected block (0, 0) next.
Launch. Step 1 of 32. A launch divides the output matrix into a grid of independent blocks. Accumulator 0.
See the whole kernel CUDA-style · 2 × 2 tiles
The highlighted line follows this thread’s instruction. N must be divisible by TILE. Every block thread reaches both barriers.
01constexpr int TILE = 2;
02__global__ void gemm(const float* A, const float* B, float* C, int N) {
03 int tx = threadIdx.x, ty = threadIdx.y;
04 int row = blockIdx.y * TILE + ty;
05 int col = blockIdx.x * TILE + tx;
06 __shared__ float As[TILE][TILE], Bs[TILE][TILE];
07 float acc = 0.0f;
08 for (int kBase = 0; kBase < N; kBase += TILE) {
09 As[ty][tx] = A[row * N + kBase + tx];
10 Bs[ty][tx] = B[(kBase + ty) * N + col];
11 __syncthreads();
12 for (int k = 0; k < TILE; ++k)
13 acc = fmaf(As[ty][k], Bs[k][tx], acc);
14 __syncthreads();
15 }
16 C[row * N + col] = acc;
17}
18
19dim3 block(TILE, TILE);
20dim3 grid(N / TILE, N / TILE);
21gemm<<<grid, block>>>(A, B, C, N);
Browser simulation of CUDA-style execution. The journey is a teaching sequence; GPU blocks may execute in any order. Addresses model float32 offsets, and counts exclude cache effects. Thread hierarchy ↗
Open the full matrix & memory traffic 8 × 8 · A × B = C
Copper: input tile Mint: output tile Indices start at 0.
// range13 domains
- Machine Learning
- transformers built from scratch, continual learning, generative modelsPython · PyTorch
- Python · PyTorch
- ML Systems & Compilers
- reactive language tooling, placement analysis, TVM schedules and GPU kernelsRust · TVM · CUDA · TensorIR
- Rust · TVM · CUDA · TensorIR
- Natural Language Processing
- classifiers without a library, feature design, error analysisPython · NumPy
- Python · NumPy
- AI Agents
- self-hosted memory, evidence retrieval, blinded evaluation and autonomous workersPython · Rust · TypeScript · MCP
- Python · Rust · TypeScript · MCP
- Systems
- E2EE messaging servers, protocol tooling, game loopsRust · Swift
- Rust · Swift
- Mobile
- voice social apps, native iMessage integrationSwift · SwiftUI
- Swift · SwiftUI
- Web & Backend
- microservices and monorepos, simulation pipelines, unified inboxes, Python servicesTypeScript · Bun · Node · Flask
- TypeScript · Bun · Node · Flask
- Cloud & Orchestration
- services on AWS and Google Cloud, Kubernetes clusters, object storage and CDN, infrastructure as codeAWS · GCP · Kubernetes · Terraform
- AWS · GCP · Kubernetes · Terraform
- Self-Hosting
- homeserver fleets, reproducible deploys, bridge networksAnsible · Docker · Matrix
- Ansible · Docker · Matrix
- Security & Crypto
- end to end encryption by default, bridged E2EE, key handlingRust · Matrix
- Rust · Matrix
- Simulation & Games
- MCTS decision engines, market models, space economiesRust · Python
- Rust · Python
- The Day Job
- large scale services at a place that shall not be namedJava · C++ · Go
- Java · C++ · Go
- Off Hours
- browser games, childhood MMO nostalgia, terminal easter eggsTypeScript · Canvas
- TypeScript · Canvas
// on repeat
Connect your Spotify to see your top tracks render right here. It reads your listening only; nothing is stored on any server.
app in development mode: up to 5 approved Spotify accounts.