Software without abstractions, built for real-world tooling.
I tackle anything from maps and data intensive applications to reverse engineering and hardware projects. The best way to solve problems is to approach everything with care and an open mind.
- ASTAGE
- BFOH
- CPIT
- DDOCK
NON-TRANSFERABLE • CREW ACCESS ONLY
NON-TRANSFERABLE • PRODUCTION CREW ONLY • MUST BE DISPLAYED
notebook
drag a page corner to turn it14.03
OBD logger / fuel
ESP32 on the OBD-II port, CAN @ 500k
gnd 4, 5
6 CAN-H
1
8
9
16
14 CAN-L
16 +12V
pin 16 is always live, so deep sleep when the ignition's off or it flattens the battery
PIDs, mode 01:
fuel L/h = MAF · 3600 / (14.7 · 740)
AFR
g/L petrol
L/100km = L/h ÷ km/h × 100
not at 0 km/h!!
transit map
how it fits together
POST, via the pi
compare
SSE
every stop
per-stop
delays
delay = recorded arrival − scheduled time
delays
the recorder
scheduled 08:10 (GTFS stop_times)
arrived 08:14 (recorder)
+4 min late
- the recorder logs every vehicle arriving at every stop
- stored in timescaleDB
- matched against the GTFS schedule
- → per-stop delay analytics
SSE, not websockets. data only goes one way and the browser reconnects by itself
EU4 → discord
02.04
v1: open the latest autosave and parse it
ironman saves are encrypted. dead end
v2: steam already knows what I'm doing
- steam ID3 from the install folder
- scrape paradox's own rich presence off my steam profile
- pypresence → discord
"Leading as Basileus of Byzantium in war against Epirus in 1445"
that's steam's text, not mine
more than one steam account on the PC?
→ ID3 goes in the config by hand
todo: transit map
- buses + trolleys
- metro, tram
- trains (GTFS-RT)
- docker compose on the pi
- recorder → timescaleDB
- per-stop delay page
- write a README
route shapes come from OSM overpass
misc
- RANDU in a 3D plot = 15 planes. still funny
- lightshot IDs went random after 2022. the old sequential fuskers are done
- supabase: check RLS. every table
arduino timer
LCD + 7-seg displays, a buzzer for the alarm, control buttons, analog temp sensor
arduino
D2–D8
7 × 220Ω
7-seg
a
b
c
d
e
f
g
com
btn 1
btn 2
buzzer
INPUT_PULLUP, no resistors
SEK Δα
USATC S100, 0-6-0 side tank


US army drawing, 1942
photos
mostly shot on smartphone










