Skip to content
vx

Open to work

I’m vx, a software engineer based in Uruguay.

I write C for Linux, down to PID 1, and TypeScript for the web. I’m interested in how things work underneath, from network layers to language models.

The numogramThe CCRU’s numogram: ten zones, 0 to 9, paired into five syzygies that each sum to nine. Each pair’s current flows to the zone numbered by its difference. In the Time-Circuit, 2::7 flows to 5, 5::4 to 1 and 1::8 to 7. The Warp, 6::3, and the Plex, 9::0, flow back into themselves. Gates numbered 1, 3, 6, 10, 15, 21, 28, 36 and 45 link each zone to another.

Work

poopterm

A fast, software-rendered terminal emulator in Rust for Linux, macOS and FreeBSD, with its own escape-sequence parser, font engine and image decoders.

  • Handles real-world output at 63 to 248 MB/⁠s end to end on a low-power laptop CPU, with a SIMD tokenizer and redraws paced to the display.
  • Shows images over Sixel and the kitty graphics protocol, and speaks the kitty keyboard protocol and shell integration for zsh, fish and bash.
  • On Linux, each tab’s shell runs in its own cgroup with a memory cap, so a runaway program can’t starve the other tabs.
Made at
Poopware Laboratories, main contributor
Built with
Rust, winit, softbuffer, mimalloc
Status
Released, with packages for Homebrew, Debian, Fedora and Arch; not yet a complete xterm implementation
License
AGPL-3.0-or-later
poopterm in its brown Poop theme: a cargo build, a benchmark table, text in Greek, Cyrillic, Chinese and Korean, emoji, styled text, a link and a row of colour swatches ending in a gradient.

blockclonia

A Minecraft-style voxel sandbox written from scratch in C11 and Vulkan, with physics in real units and a simulated human body instead of a health bar.

  • Every block needs a load path to the ground: knock out a support and what it held falls as rigid bodies.
  • Every texture and sound is generated at start-up.
  • The renderer needs only Vulkan 1.0 with no optional features, so it runs down to a Raspberry Pi 4.
Built with
C11, Vulkan, GLFW, mimalloc, miniaudio, SQLite, CMake
Status
Builds on Linux and Raspberry Pi OS; macOS is experimental
License
AGPL-3.0
blockclonia’s title screen: the name in pixel letters and a menu with Play, Settings, Controls and Quit, over blocky hills, trees and a beach.

claude-presence

Discord Rich Presence for Claude Code, in Rust: a small daemon, driven by Claude Code’s hooks, that shows what a session is doing on your Discord profile.

  • Uses about 3 to 4 MB of memory and has no polling loop; a hook call takes about 2 ms.
  • Keeps lifetime stats in one SQLite file, imported from your existing transcripts.
  • Installs itself as a per-user service on Linux, macOS and Windows.
Built with
Rust, SQLite
Status
Version 0.2.0, installed with cargo
License
Apache-2.0
claude-presence’s terminal dashboard: the daemon running and connected to Discord, the card reading “Working in claude-presence”, and today’s tokens, prompts, active time and streak.

neocaca

A modal terminal code editor in Zig, with Kakoune-style keys, multiple selections, regex search and undo.

  • Ships with bounds and overflow checks on; its SIMD text scanning still runs at about 14 to 24 GiB/⁠s.
  • Treats file contents as untrusted: escape sequences and control bytes are shown, never written to the terminal raw.
  • Saves atomically, so a crash never truncates a file.
Made at
Poopware Laboratories, contributor
Built with
Zig, mimalloc
Status
Early days: edits one file at a time, with no syntax highlighting yet
License
AGPL-3.0

4suite

A self-contained boot stack for Linux in C: 4init, an init that runs as PID 1 and only manages processes, and 4rc, a service manager.

  • 4init is 81 lines of C, linked statically against musl.
Built with
C, musl, Ninja
Status
Experimental
License
MIT

kthread.dev

This site: a static Next.js export served by Cloudflare, with a strict content security policy and no cookies.

Built with
Next.js, TypeScript, Tailwind CSS, Cloudflare Workers
Status
Live
License
BSD-3-Clause

Skills

Languages
C
x86 Assembly
Python
JavaScript
TypeScript
Web
HTML
CSS
Next.js
Node.js
Networking
L2 and L3: data link, network
L4: transport
L6 and L7: presentation, application
nftables
nginx
AI
How LLMs work
Working with AI

Contact

I’m open to work.

Write to me by email. All of this work is public on GitHub.