Blog posts

kb1: a fully DIY mechanical keyboard

Overclocking a Gameboy Color using a Raspberry Pi Pico

Vulnerability write-up - "Dangerous assumptions"

Porting Doom to a payment terminal

Exploiting a stack-based buffer overflow in practice

Getting root on a Zyxel VMG8825-T50 router

Rendering recursive portals with OpenGL

Tetris Friends AI