This site is driven by two keys, like the machine it came from. Reading: j and k scroll, d and u move half a page, gg goes to the top, G to the bottom, H and L switch windows, ? opens the help. Space is the Neovim leader and handles content: Space then h home, r research, p projects, g gear, a about, / tags, or Space then a digit to jump to that window. Home is the tmux prefix and handles windows: Home then c opens a terminal, Home then & closes a window, Home then space goes to the next one. While focus is on the keyboard, h j k l move between keys and Enter opens one.

ResearchR AboutA Gear — G for gear — keyboard, terminal, editor, homelab.G
    ProjectsP Tags — / as in vim: search./
    ×
    Menu

    Projects

    Software, hardware, and everything in between.

    sirna: Destroy the Key, Not the Copy

    project

    The successor to otm. otm keeps a master key on the server, so the server can decrypt everything it holds — not patchable, because it is the shape of the design. sirna never lets the key reach the server at all.

    #rust#cryptography#xchacha20-poly1305

    tmprl: A Temporal Client for the Keyboard

    project

    A terminal client for Temporal, aiming at parity with the web UI. Four days old: the gRPC layer exists, the TUI does not. This is what it is honest to claim at that stage.

    #rust#temporal#grpc

    v-pipeline: Renting a GPU per Job, Not per Hour

    project

    A personal video generation pipeline — the app and its files live in the homelab, the GPU is rented on RunPod Serverless and dies the moment a job finishes. Notes on idempotency, dry runs, and why restarting a worker can make you pay twice.

    #python#fastapi#gpu

    Tombakan: An AR Spearfishing Game That Teaches Fish

    project

    A Unity AR game where you place a water surface in your actual room and spear the fish matching a target colour. Seven weekly iterations, a tester report each time, and a scope that grew from a colour drill into a marine-life learning game.

    #unity#ar#arfoundation

    fate-studio: Seeing and Driving Statecharts in the Browser

    project

    A viewer and live simulator for fate statecharts — send events, fire timers, resolve invocations, and watch the active state change over Server-Sent Events. One static binary, no outbound requests at all.

    #go#statechart#sse

    fate: A Statechart Engine for Go

    project

    Harel statecharts in Go — hierarchy, parallel regions, history, guards and delayed transitions. Zero dependencies, deterministic, and snapshots that restore exactly, including inside Temporal workflows.

    #go#statechart#state-machine

    Lemme

    project

    Lemme is an AI-assisted quiz app. Users upload screenshots of quizzes, OCR extracts the question text, and multiple LLM providers generate candidate answers along with their reasoning...

    #go#fiber#solidjs

    gostudentubl

    project

    Automated attendance runner for Moodle-based courses with scheduled execution.

    #go#automation#moodle

    A Plane-Geometry Android App (CLI-friendly)

    project

    A simple Android app built for educational purposes. Calculates the area and perimeter of basic 2D shapes like squares, rectangles, and triangles.

    #android#mobile#java

    Workspacebook: A Campus Mobile Client in Flutter + Supabase

    project

    A Flutter app for campus use with Supabase for auth and backend — including the OAuth flow that has to be reconfigured every time the environment moves.

    #flutter#dart#supabase

    wa-bot-notif

    project

    WhatsApp notification service — Go + whatsmeow.

    #go#whatsapp#whatsmeow

    otm: One-Time Messages

    project

    Paste a message, get one link, and the link dies once it's opened. Go + chi + SQLite, with layered encryption: a random key per message, and that key itself encrypted with a master key.

    #go#chi#sqlite

    busgo: A Bus Ticket Booking Flow in Flutter

    project

    A UI prototype for booking bus tickets — search, pick a bus, pick a seat, enter passenger details, pay, ticket. Flutter with Riverpod and go_router, no backend.

    #flutter#dart#riverpod

    Attendance App

    project

    This app was built by the Mobile Programming group using Flutter.

    #attendance#mobile

    A Course Management System in PHP and MySQL

    project

    A simple web app for managing course data using PHP and MySQL. Supports **CRUD (Create, Read, Update, Delete)** operations with a si...

    #php#mysql#crud

    Marcom Services: The Bun + Elysia API Behind the Marcom Dashboard

    project

    The Marcom dashboard's backend — Elysia on the Bun runtime, MySQL, JWT, Socket.IO on a separate port, and an expiry cron triggered over HTTP.

    #bun#elysia#typescript

    Marcom: A Marketing Communications Material Dashboard

    project

    An internal dashboard for tracking marketing communications material by brand, cluster, feature, and type — with expiry reminders and realtime updates. Next.js 15 + React 19 on the front, Bun + Elysia behind it.

    #nextjs#react#typescript

    beepresent: A CLI and API for the Campus Course Portal

    project

    A course-portal scraper wrapped as an API and a CLI — course lists, assignments, quizzes, and attendance submission, with a one-week cache because the data barely moves.

    #typescript#bun#cheerio

    ALGO3 - Graph (Adjacency Matrix, C)

    project

    This repository is prepared for the ALGO3 teaching pattern based on:

    #algorithms#graph#c-programming

    Cisco Packet Tracer Learning Course

    project

    This folder is organized as a hands-on course for learning computer networking with Cisco Packet Tracer.

    #networking#cisco#packet-tracer

    test_presence: GPS-Validated Employee Attendance

    project

    An attendance app with geolocation-validated check-in and a leave-request flow. Go + SQLite backend, React front end with a map preview of the office radius.

    #go#react#sqlite

    Running

    Things in actual use whose code is not public. These are pictures, not links — except the ones that are mine.

    • Indigo's user picker showing four sample names and their roles.

      Indigo

      A warehouse stock log for a small business: pick your name, and every item in or out is recorded under it. Built because a notebook and a WhatsApp group always lose to a shift change.

    • The homepage of a bathroom-fixtures company site, with product and store-locator navigation.

      AQUABROSS

      A bathroom-fixtures company site: product catalogue, store locator and careers pages. Built and taken all the way to production.

    More on GitHub

    This list is picked by hand, not filtered by date — a batch of repos was bulk re-pushed once, so their timestamps cannot be trusted.

    • fateGodocs

      A Harel statechart engine for Go — hierarchical states, parallel regions, deep and shallow history. No dependencies beyond the standard library; the Temporal integration lives in a separate module.

    • A self-hosted studio for fate statecharts: open a machine to see its diagram, then step through it in the browser — send events, fire delayed transitions, watch the active state update over Server-Sent Events. Kept separate from the engine so `go get fate` never pulls in `net/http`.

    • tmprlRust

      A keyboard-driven terminal client for Temporal, aiming at parity with its web UI. Early: what exists is the gRPC layer, profile loading that matches the `temporal` CLI exactly, and four RPCs — nothing draws an interface yet.

    • sirnaRustdemo

      Encrypted messages and files whose KEY can be destroyed on demand — and once it is gone every copy of the ciphertext dies with it, including the copies you do not control. The envelope travels over any channel; the key goes separately as 24 words or a QR code. Rust, XChaCha20-Poly1305, and the server links the header parser only, so it cannot decrypt anything it holds.

    • otmGostars: 1

      One Time Message — share a secret through a link that works exactly once. Go + chi + SQLite; the body is AES-GCM encrypted and the row is deleted from the database the moment it is read. Rate-limited, with PWA support.

    • arkbutton-keyboardHTMLstars: 1

      A handwired wireless split keyboard: Scylla/Charybdis geometry, 24 finger keys + 5 thumb keys per hand (58 keys), two nRF52840s running ZMK, printed on an Elegoo Neptune 4 Pro with an articulated tenting stand.

    • dotfilesShellstars: 2

      The whole macOS workstation config in one repo — Ghostty, nvim, tmux, yazi, aerospace, sketchybar. GNU Stow symlinks the repo into `~/.config`, Homebrew Bundle installs the packages, and `install.sh` runs both in one go.

    • Pothole detection with a LeNet-5 CNN whose core is written by hand in NumPy — convolution, pooling, ReLU, softmax and backpropagation all derived and coded from scratch, with no deep-learning framework. Ships with a paper and a web demo.

    • clownerShell

      Clones a macOS `.app` into a second, independent copy with its own bundle identifier — so two Braves or two Slacks can run side by side. Editing `Info.plist` breaks the code signature, so the clone is re-signed ad-hoc.

    • An augmented-reality fishing game in Unity: place a virtual water surface in the real room through AR, then throw a spear at the fish matching the target colour. URP + ARFoundation, built for Android and iOS.

    • The board before ArkButton: a handwired Dactyl Manuform split, QMK firmware, wiring and flashing all done by hand. Its layout is the one later replicated into ArkButton’s ZMK keymap.

    • karbarabDart

      An Arabic vocabulary guessing-card game for Indonesian players, built with Flutter. Google sign-in, card modes, a global scoreboard, and challenge cards you can send to another player.

    All repositories →

    id en
    rss gh in