a.eldoumani
L4 · Interface

SOFTWARE ENGINEER · CALGARY

Silicon to interface.

I build everything from ARMv8 assembly and OS kernels to full stack web apps. Those are usually two different people, so I arranged this page the way the machine is arranged: interface at the surface, silicon at the bottom. Scroll to descend.

Available for new grad and full time roles · graduating June 2027

fig. 0 · the site map, by altitude

↓ descending to L4 · interface

Interface

L4 · SURFACE LEVEL

DUST

NEXT.JS · CONVEX · REAL TIME

A multiplayer game about digging through a decaying internet. Built in 24 hours, and the real time sync held up in both competitive and cooperative modes.

DUST game interface: players exploring a decaying internet as digital archaeologists
fig. 1 · DUST, calgary hacks 2026

Budget Buddy

Budget tracking, live stock data, and growth projections for the 70% of young Canadians who avoid investing entirely.

NEXT.JS · CLERK · CALGARYHACKS 24source

Pile

Turns your saved and forgotten reading pile into a debate between two AI hosts, with reminders anchored to the exact audio second.

NEXT.JS · AUDIOsource

Services

L3 · ONE LAYER DOWN

Rust HTTP Server

RUST · AXUM · SQLITE · WEBSOCKET

A production grade server built to hold 10,000 plus concurrent connections: JWT auth with role based access, WebSocket notifications, background jobs with retries, and full text search with fuzzy matching. Fifteen middleware components, every one written by hand.

CONCURRENT CONNECTIONS10,000+
RESPONSE LATENCYsub-10ms
DB LOAD, WITH CACHING-60%
SEARCHfull text + fuzzy
fig. 2 · load figures from the project readme, july 2025

Dossier

Privacy first PDF toolkit: 42 operations that never leave your machine, served to humans as a web app and to agents over MCP.

TYPESCRIPT · MCP · STATIC EXPORTlivesource

Runtime

L2 · LANGUAGES AND MACHINES

Two projects that form a loop: a language I built, and the emulator that steps through what it compiles.

QALA SOURCEfib.qala
fn fibonacci(n: i64) -> i64 is pure {
    if n <= 1 { return n }
    return fibonacci(n - 1)
         + fibonacci(n - 2)
}
ARM64 BACKEND--target arm64
fibonacci:
    stp   fp, lr, [sp, -32]!
    mov   fp, sp
    str   x0, [fp, 16]
    ...
A64 PLAYGROUNDstep · registers live
pc 0x0000_0014 stp
x0 0x0000_000a
sp 0x7fff_ffd0 · frame pushed
fig. 3 · the loop: a language i wrote, compiled to the assembly i teach, stepped in the emulator i co-built

Qala

RUST · WASM · CRATES.IO

A statically typed teaching language where is pure and is io are promises the compiler actually checks. Lexer to typechecker to bytecode VM, plus the ARM64 backend, all in Rust.

AArch64 Playground

PURE AWARD RESEARCH

A browser based ARM64 emulator built with a professor and two collaborators. CPSC 355 students learn assembly on it now. Paste code, step one instruction at a time, watch the registers change their minds.

Kernel

L1 · THE HARDWARE IS YOUR PROBLEM NOW

One project lives here, and it gets the full sheet.

AEOS

A monolithic ARM64 kernel with a windowed desktop, written from scratch

DOC AE-003 · C, ARMv8 ASM · QEMU VIRT

GENERAL DESCRIPTION

Boots from EL2 to EL1 with stack and BSS set up by hand, turns the MMU on with an identity map it builds itself, brings up a buddy allocator and first fit heap, services GICv2 interrupts and the generic timer, schedules preemptively at 100 Hz, and runs a loaded ELF at EL0 behind a real privilege boundary. Then it brings four cores online over PSCI, answers ping through its own network stack, and composites a windowed desktop over a VirtIO GPU at 30 frames per second.

Deliberately small and honest about its gaps: no kernel W^X, no cross-core preemption, no TCP. The whole kernel reads end to end in a few sittings, which is the point.

PHYSICAL MEMORY MAP

kernel
heap 4M
stack
free · PMM owns the rest
0x4000_0000widths not to scale0x5000_0000
AEOS desktop running in QEMU: a terminal showing shell help beside a Tetris window, with the taskbar clock at the bottom
fig. 4 · the desktop, composited by the kernel: terminal and tetris on QEMU
  • Window manager with drag, focus shadows, open and close animation, all easing in fixed-point: the kernel has no floating point
  • 8 built in apps, including a terminal, a vim style editor, and Tetris
  • 30 shell commands · 39 scenario test suite and security audit run in CI

Silicon

L0 · THE FLOOR

Peregrine

C++ · AVX2 · CUDA, cuBLAS

A heterogeneous linear algebra library that picks the right silicon for the shape of the problem: AVX2 SIMD on the CPU, cuBLAS on the GPU, one zero-copy NumPy-compatible API above both.

MEASURED, NOT ESTIMATED
DEVICE-RESIDENT FLOAT32 MATMUL28x NumPy
FUSED THREE-OP CHAINS, GPU71x unfused NumPy
FUSED THREE-OP CHAINS, CPU3.2x unfused NumPy

measured on the project's own harness: routing offloads to the GPU only past the measured transfer-cost crossover. numbers are shape- and device-specific; the harness and methodology live in the repo.

I ALSO TEACH THIS LAYER

Head TA for CPSC 355 at the University of Calgary: computer architecture, C, and ARMv8 assembly. I debug student assembly for a living, which is why everything on this page tries to be legible. the person is one layer further down

Bedrock

BELOW THE STACK · THE PERSON

I moved from Saudi Arabia to Calgary to understand how computers work, and I meant it literally: transistors up. The philosophy minor pulls the other way. It taught me to ask why a design should exist before asking how to build it, and that question has killed more bad architectures than any code review. When I am not at a keyboard I am bouldering, lifting, or lost in a reels spiral I will not defend.

CAPABILITIES, EACH WITH ITS PROOF

ARMv8 assemblyAEOS · Qala backend · CPSC 355
CompilersQala, lexer to VM to ARM64
ConcurrencyRust HTTP Server · AEOS scheduler
SIMD and GPU computePeregrine
Product webDUST · Pile · Budget Buddy
Making hard things legibleAArch64 Playground · 355 labs · this page

EXPERIENCE

MAY 2026 · AUG 2026

Undergraduate researcher, two PURE awards

Task replication for extreme edge computing as a reputation-weighted MILP, and the AArch64 Playground: a browser ARMv8 emulator and visual debugger validated by 790+ automated tests.

SEP 2025 · APR 2026

Head TA, CPSC 355 · tutorial lead, CPSC 413

Computer architecture and ARMv8 assembly for 120+ students: coordinated a 5-TA team, built the Gradescope autograders on Python, Docker, and QEMU, wrote 12 tutorial decks and 100+ practice problems, and led the algorithms tutorials.

OCT 2024 · SEP 2025

AI training specialist, Outlier

Stress-tested AI-generated Python across 500+ dual-response scenarios, grading each on algorithmic efficiency and runtime correctness.

 

B.Sc. Computer Science, minor in Philosophy

University of Calgary · Dean's List, 2023 to 2025 · graduating June 2027.

The stack ends here.
Say hello.

aamsdoumani@gmail.com

© 2026 abdalla eldoumani