I'm a self-taught 17-year-old systems programmer and compiler enthusiast building low-level, high-performance software.
My work includes compilers, virtual machines, custom SSA-based IRs, bytecode formats, version control systems,
fastest greps in the world
and other performance-critical applications — but really, if you think about it, what program's performance isn't critical?
In a world of people never diving deep and performance being treated as an optional feature, I will always try my absolute best
to make my programs as fast as I can — with the defaults being as intuitive as possible while keeping the program easy to download
and/or compile from scratch. Of course, I'm nowhere near as skilled as people like Jonathan Blow,
Casey Muratori, Shawn Barrett, Allen Webster, Vjekoslav Krajačić and other absolutely legendary engineers but I do and I will continue
doing everything I can to one day be as knowledgeable and experienced as them.
The poor state of software today is what drives this work. Every day I use modern software I encounter more and more bugs
— it's devastating how far quality standards have fallen in this industry. Thousands of people AI-generating their programs just to pollute
the internet with even more buggy and unstable software.
But I hope that in contrast, genuinely high quality software will become more and more noticeable.
A good example of that is File Pilot — people were shocked that it's a single 2MB executable, and how fast and snappy it feels.
1. The
rok
language Compiler planned public release in H1 2026.
A compiler written in Rust completely from scratch, featuring custom SSA IR, bytecode, type inference,
polymorph solver, register machine, and an extremely flexible pipeline for insane meta-programming.
Every single piece of user code can execute at compile time and communicate with the compiler with NO exceptions.
Show / Hide ValuePool — Generic Memory Pool
A generic memory pool for storing lists of any type T.
Uses a handle-based API for indirection, power-of-two capacity rounding,
and interprets raw memory slots as u32 length headers.
INVALID_HANDLE : u32 : 0xFFFFFFFF;
// A lightweight handle into a ValuePool — just a u32 index.
// Parameterized on T for type safety at compile time.
EntityList :: struct (T: Type) {
handle: u32;
}
// A memory pool for storing lists of T.
// Layout per allocation: [length_as_T, elem0, elem1, ..., padding to next power of 2]
ValuePool :: struct (T: Type) {
data: [..] T;
}
// Allocate a new list inside the pool, returns a typed handle.
alloc_list :: (pool: *ValuePool($T), elements: [] T) -> EntityList(T) {
#if size_of(T) < size_of(u32) {
#run panic("size_of(T) in ValuePool(T) must be >= 4 bytes!");
}
count := elements.len as u32;
needed := 1 + count;
capacity := next_power_of_two(needed);
// The handle points just past the length slot
element_start := (pool.data.len + 1) as u32;
array_ensure_capacity(*pool.data, pool.data.len + capacity as _);
// Write the element count by reinterpreting the next T slot as *u32
length_ptr := *pool.data[pool.data.len] as *u32;
length_ptr.* = count;
pool.data.len += 1;
for elements array_add(*pool.data, it);
// Pad to power-of-two boundary
zero: T;
for 0..capacity - needed array_add(*pool.data, zero);
list: EntityList(T);
list.handle = element_start;
return list;
}
// Retrieve a slice view into the pool — zero-copy, no allocation.
get_list :: (pool: *ValuePool($T), list: EntityList(T)) -> [] T {
if list.handle == INVALID_HANDLE {
result: [] T;
return result;
}
length_ptr := *pool.data[list.handle - 1] as *u32;
result: [] T;
result.data = *pool.data[list.handle] as *T;
result.len = length_ptr.* as _;
return result;
}
main :: () {
pool: ValuePool(u32);
defer free_pool(*pool);
list := alloc_list(*pool, u32.[10, 20, 30, 40, 50]);
values := get_list(*pool, list);
for values print(" %\n", it);
}
#import "std.rok";
Show / Hide Asteroids — Raylib Demo
A full Asteroids game written in rok using Raylib — entities, particles, collisions, audio, and a game loop, all in rok's syntax.
Below are the most interesting excerpts.
Demonstrates Dynamic arrays with automatic growth, insertion, and removal operations.
String builders with type-aware formatting and printf-style syntax.
All powered by compile-time generics that specialize for each type.
// Compile-time polymorphic functions work on any type T
array_add :: (arr: *[..] $T, value: T) {
new_len := arr.len + 1;
array_ensure_capacity(arr, new_len);
ptr: *T = arr.data + (arr.len * size_of(T));
ptr.* = value;
arr.len = new_len;
}
// Safe removal returns both value and success status
array_remove :: (arr: *[..] $T, index: u64) -> T, bool {
ret : T;
if index >= arr.len return ret, false;
size :: size_of(T);
ptr : *T = arr.data + (index * size);
ret = ptr.*;
count := arr.len - index - 1;
if count > 0 memmove(ptr, ptr + size, count * size);
arr.len -= 1;
return ret, true;
}
String_Builder :: struct {
inner: [..] u8;
}
sb_append :: (sb: *String_Builder, n: i32) { sb_append_integer(sb, n); }
sb_append :: (sb: *String_Builder, n: f64) { sb_append_float(sb, n); }
sb_append :: (sb: *String_Builder, s: string) { sb_append_string(sb, s); }
// Printf-style formatting with variadic Any
sb_print :: (sb: *String_Builder, fmt: string, args: ..Any) {
i := 0;
arg_index := 0;
while i < fmt.len {
if fmt[i] == '%' && i + 1 < fmt.len && fmt[i + 1] != '%' {
if arg_index < args.len {
sb_append_any(sb, args[arg_index]);
arg_index += 1;
}
i += 1;
} else {
sb_append_byte(sb, fmt[i]);
i += 1;
}
}
}
main :: () {
sb: String_Builder;
defer sb_free(*sb);
sb_append(*sb, "Temperature: ");
sb_append(*sb, 98.6);
sb_print(*sb, "User % scored % points\n", "Alice", 1337);
print("%", sb_to_string(*sb));
}
#import "std.rok";
Show / Hide Build meta-programming demo
A meta-program that runs at compile-time, registers and manages build options to compile the raylib demo from above.
#run {
opts : Build_Options;
opts.do_output = false;
array_add(*opts.build_files, "examples/triangle.rok");
array_add(*opts.link_libs, "raylib");
array_add(*opts.link_libs, "m");
ok := set_build_options(*opts);
if !ok panic("couldn't set build options!! exiting..\n");
};
#import "std.rok";
Currently in a private repository; planned public release in H1 2026.
Demo video/GIF will go here soon
And yes, the language currently is almost identical to JAI, Jonathan Blow's language, and I wanna be very open about that — I just find this subset of the language insanely beautiful and elegant.
It's actually pretty funny how Rok ended up this way, because when I started it, it was rather a mix of Go and Rust, and a bit of JAI. But as time went on I was influenced by Blow more and more — I literally watched his livestreams, cranking sessions, talks and all sorts of other events all day and all night. His demos were the biggest source of motivation for me in my life... so the language gradually started to look more and more like JAI..
In the future, though, I have some features in mind that I wanna add that aren't really JAI-ish per se, so I expect the courses of the two languages to diverge more and more over time — which is a good thing, because why does anyone need two identical languages?
A Rust tool that searches text by reading filesystems directly from raw block devices, completely bypassing the kernel's VFS layer, page cache, and filesystem overhead.
Uses aggressive work-stealing parallelism that automatically load-balances across all CPU cores,
making it faster than ripgrep on real workloads.
Requires only CAP_DAC_READ_SEARCH — no full root access. Currently supports ext4 on Linux.
Show / Hide Demo
Basic usage:
# Search current directory
rawgrep "error"
# Regex patterns
rawgrep "error|warning|critical" .
# Filtering levels:
# Default: respects .gitignore, skips binaries and large files (> 5 MB)
rawgrep "pattern"
rawgrep "pattern" -u # ignore .gitignore
rawgrep "pattern" -uu # also search binary files
rawgrep "pattern" -uuu # search everything, including large files
# Specify device manually (auto-detected by default)
rawgrep "pattern" /home --device=/dev/sda1
# Print match statistics
rawgrep "pattern" . --stats
A Rust library providing a Cranelift-like SSABuilder API for building RISC-V object files, including custom sections, instructions, relocations, and more.
Emphasizes performance: cache-friendly memory layout and parsing accelerated via SSE2, AVX2, AVX512BW on x86-64 and Neon on AArch64.
Runs in QEMU emulator.
A language-agnostic Rust tool for scanning your project for TODOs and either reporting, purging, or listing them.
Heavily inspired by
tsoding/snitch
, rewritten in Rust for high performance with worker-parallelized execution.
Fully modular and host-agnostic (works with GitHub or other platforms via a pluggable API layer).
Show / Hide Demo
Brief example of a tagged (reported) TODO in real code
// ...
TK::CQuote => {
self.lexer.eat_next_token()?; // c"
let (loc, span) = self.parse_string_literal()?;
let src_str = span.s(&self.mo);
let mut nul_terminated = String::with_capacity(src_str.len() + 1);
util::unescape_string(src_str, &mut nul_terminated);
if nul_terminated.bytes().last().is_some_and(|b| b != b'\0') {
nul_terminated.push('\0');
} else {
// TODO(#252): Emit a warning if a C string literal already ends with `\0`
}
let str_lit_id = self.pc.new_str_lit(nul_terminated);
Expr {
loc,
span,
kind: EK::ConstStr(str_lit_id),
...
}
}
[reporting mode]
[detected project]: https://github.com/rakivo/rok
[todoʼs from]: rok_frontend/src/parser.rs
1. [line 1662]: Warn if a c string literal already ends with \0
selection (e.g. 1,2; 'a' all; 's' skip file; 'h' help; '^C' quit):
Just press `1` and return (enter), and the TODO is going to get reported:
[reporting mode]
[detected project]: https://github.com/rakivo/rok
[todoʼs from]: rok_frontend/src/parser.rs
1. [line 1662]: Warn if a c string literal already ends with \0
selection (e.g. 1,2; 'a' all; 's' skip file; 'h' help; '^C' quit): 1
[master 24dce81] Add TODO(#341): Warn if a c string literal already ends with \0
1 file changed, 1 insertion(+), 1 deletion(-)
[1/1] todoʼs reported
A video of me using
Stalkr
to report TODO's while I was programming
brik
Tap on the video to fullscreen
The bug with `0 insertions` is already fixed btw .. :D
5.
Rush
— Rust-based build system inspired by Ninja
A Rust-based build system inspired by Ninja. Rush executes build scripts efficiently, sometimes matching or exceeding Ninja's speed on typical workloads.
It demonstrates parallelism, minimal overhead, and custom build pipeline design.
Show / Hide Build Script Example
cflags = -std=gnu99 -Wall -Wextra -O3
builddir = build
phony all
build all: $builddir/main run
rule cc
depfile = $out.d
command = gcc -MD -MF $out.d $cflags -o $out -c $in
rule link
command = cc $cflags -o $out $in
build $builddir/foo.o: cc foo.c
build $builddir/bar.o: cc bar.c
build $builddir/main.o: cc main.c
build $builddir/main: link $builddir/foo.o $
$builddir/bar.o $
$builddir/main.o
cflags = -std=gnu99 -O2
phony run
build run:
command = ./$builddir/main
phony clean
build clean:
command = rm -f $builddir/*
raylib-WASM: A Rust crate that allows seamless execution of your Raylib games in-browser via pure WASM (no Emscripten) as well as natively. Implements a subset of raylib; Contributions welcome - submit a PR to extend raylib coverage.
vmz: An experimental stack-based virtual machine written in Zig, with its own assembly-like language that can be compiled to NASM.
I've worked on many other projects not shown here - feel free to explore them on my GitHub page.