Latest posts

  • 04 January 2025

Teardown: Keuby Android Smart TV Box

I found a no-name Android media box at a thrift store and took it apart

Read more â†’
  • 01 January 2025

2024 Book Review

A review of the books I read in 2024

Read more â†’
  • 01 December 2024
  • 31 August 2024

Bare Metal Programming the STM32

Programming an ARM Cortex M4 without any framework or IDE - just some datasheets and gcc

Read more â†’
  • 12 May 2024

A Script to Report Unscheduled Hours Left in the Day

Getting synced Calendar events from GNOME Calendar is harder than it looks.

Read more â†’
  • 13 April 2024

Zigbee Lights Hack

My efforts to control fluorescent lights with an Aduro Zigbee light bulb

Read more â†’
  • 01 January 2024

2023 Book Review

A review of the books I read in 2023

Read more â†’
  • 06 September 2023

Upgrading a VTech Baby Monitor

I liberated our baby monitor from its barrel plug charger by installing a USB-C port on it.

Read more â†’
  • 17 July 2023

Shrinking the binary size of Rust programs

Rust is a performant language. But its binaries are huge. How can we shrink them?

Read more â†’
  • 02 July 2023
  • 02 July 2023

Let's Build a Cross Compiler!

I build a cross compiler for the Raspberry Pi Zero W with Crosstool-ng

Read more â†’
  • 23 April 2023

Web Scraping in Rust

I scraped Utah's MLS with Rust to find the commute time of different properties

Read more â†’
  • 21 January 2023

Linux Kernel Development, part 2: Character Devices

Let's write a kernel module to give us /dev/fibonacci, which gives us Fibonacci numbers when read

Read more â†’
  • 03 January 2023

Linux Kernel Development on the Raspberry Pi Zero W

I scraped Utah's MLS with Rust to find the commute time of different properties

Read more â†’
  • 01 January 2023

2022 Book Review

A review of the books I read in 2022

Read more â†’