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.
●arisjirat
[ :Darwin ]
j k scroll · Space commands · Home windows · ? help
Something else is reading your keys
One keypress scrolled the page twice, so a browser extension is running its own bindings alongside this site. The site already stops propagation as early as a page can reach, but an extension that registers before any page script still wins. Only an exclusion rule inside that extension can fix it:
h j k l d u g G H L r p a c w n q x z ? / & 1 2 3 4 5 6 7 8 9
If the remapping happens at the OS level (Karabiner and the like), this site can do nothing about it: the substitution happens before the browser ever sees the key.
Designed, printed, soldered and flashed by me: 58 keys, two nRF52840s, ZMK. The tenting plate failed ten times because I printed it lying down; it had to stand up.
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. Rust, XChaCha20-Poly1305, and the server links the header parser only, so it cannot decrypt anything it holds.
Place a virtual water surface in your actual room through AR, then throw a spear at the fish matching the target colour. Unity URP + ARFoundation, 32 commits across seven weekly iterations, built for Android and iOS.
Not one framework import. LeNet-5 convolution, pooling, softmax, cross-entropy and backpropagation, derived by hand and written in NumPy. What proves the derivatives right is not the accuracy but a numerical gradient check: error under 1e-5.
k3d, ArgoCD, Vault, WireGuard, Caddy, Prometheus/Grafana/Loki/Tempo — and the page you are reading comes out of it. Anything I change straight on the cluster gets reverted by ArgoCD: annoying exactly once, a relief after that.
Where I've worked
BFI Finance
now Software Engineer
Workflow-driven process services
Approval processes that run for days, executed as workflows that survive a restart.
Maintenance on a player already running in production: playback error handling, behaviour when bandwidth changes, and fixes along the paths that failed most often.