~/arisjirat
Aris Jirat Kurniawan
Craftsman Software Engineer
Currently Software Engineer @ BFI Finance
Trust me, this is nicer on a desktop: that is where you get the setup I actually work in. 🙂
Selected projects
-
Hardware
ArkButton
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.
-
Temporal terminal UI
tmprl
A terminal UI for Temporal in Rust, built toward parity with its web UI: a query bar that completes clauses from the cluster’s search attributes, histories you follow like tail -f, and activities being retried with the reason they last failed. Before any mutation runs, the screen shows the equivalent temporal CLI command, and a production profile can be locked read-only. 1081 tests; installs from Homebrew or crates.io.
-
Go library
fate
Harel statecharts for Go: nested states, parallel regions, history, guards, delayed transitions. Zero dependencies, and CI fails the build if that changes. Timers are pulled, not pushed, so the engine is safe inside a Temporal workflow. Since v0.8.0 every step records what it exited and entered, and v0.14.1 can point each guard and action at the Go line that defines it.
-
Visual simulator
fate-studio
Where fate is watched running: statechart diagrams you step through in the browser over Server-Sent Events. It opens snapshots from disk and redraws as the file changes, proxies the simulator to a machine inside another service, or runs it virtually with no backend. Every state and transition opens the Go line that defines it. One Go binary, and the page makes no external request.
-
Applied cryptography
sirna
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.
-
AR game
Tombakan
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.
Tombakan -
Algorithms from scratch
pothole-detection
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.
Where I've worked
-
BFI Finance
now Software EngineerWorkflow-driven process services
Approval processes that run for days, executed as workflows that survive a restart.
-
Ruangguru
Senior Software EngineerA video player with quizzes inside it
The video pauses at defined points, shows a question, and resumes once it is answered.
-
Mola TV
Frontend EngineerMaintaining the streaming video player
Maintenance on a player already running in production: playback error handling, behaviour when bandwidth changes, and fixes along the paths that failed most often.