An approach to protocol reverse-engineering
A developer shares a method for reverse-engineering a printer protocol by capturing and comparing data packets to ensure a new Go driver matches a Python reference.
Joonas is a software engineer from Finland who writes about software architecture, distributed systems, and hands-on infrastructure projects, with a focus on Event Sourcing, CQRS, homelabs, and open-source engineering.
58 articles from this blog
A developer shares a method for reverse-engineering a printer protocol by capturing and comparing data packets to ensure a new Go driver matches a Python reference.
A developer explains how to hack a Nordic keyboard layout onto an ANSI mechanical keyboard using QMK firmware, detailing physical vs. visual layouts.
A programming pattern using opaque tokens and the type system to ensure functions requiring root privileges are only called from within a root context.
A critical analysis of SAML security, arguing its design is inherently insecure due to malleable signature computation, with examples of real-world vulnerabilities.
A guide to creating stable udev rules for Linux hwmon interfaces, specifically for CPU temperature monitoring.
A guide to visualizing network latency using ping_exporter, Prometheus, and Grafana for monitoring internet and device health.
Critique of the common but misleading UX pattern of showing '0 results' during data loading, with examples and a proposed technical solution.
A guide to Docker multi-architecture image tooling and buildx, covering manifest lists, cross-compilation, and building for platforms like amd64 and ARM.
A developer details migrating their personal blog from Jekyll to Hugo, including theme selection, visual redesign, and technical improvements.
Explains the PC boot process, comparing legacy BIOS and modern UEFI, including technical details and using QEMU for exploration.
A developer reverse-engineers an AKAI MIDI controller to repurpose its knobs and pads for custom PC automation tasks like volume control and workspace switching.
A developer investigates a high AWS bill, tracing it to excessive S3 data transfer costs from a single bucket and identifying the problematic file.
A technical guide on how to exclusively attach a physical keyboard to a graphical environment running inside a Docker container using Linux's evdev subsystem.
Explains how to run Spotifyd in Docker by detailing Linux audio subsystems (ALSA, PulseAudio) and container audio considerations.
An exploration of the quantified self movement, detailing personal data tracking categories like health, work, and media for self-improvement.
A guide to displaying RSS feed content in Home Assistant using custom scripts and the HTTP API, avoiding third-party integrations.
How to recover a deleted or replaced binary file from a running Linux process using the /proc filesystem and memory maps.
A developer shares how to use Go's tracing tools and custom instrumentation to debug and improve CPU core utilization in parallelized workloads.
A technical guide on using type-safe code generation to prevent broken documentation links in software projects, ensuring compile-time validation.
A technical guide explaining SVG path structure and commands to isolate and animate individual elements in a vector graphic using JavaScript.