Build Log
Week 3 of building X: what broke, what changed, what I am trying next.
Notes
I use this section as a technical notebook: experiments, wrong turns, reversals, and occasional wins.
Week 3 of building X: what broke, what changed, what I am trying next.
A technical rabbit hole worth mapping end-to-end.
I reverse engineered X to understand Y.
What failed, why it failed, and how I changed the system.
Things I was wrong about this month.
Short, fast discoveries worth remembering.
Featured
A few notes across security, systems, and engineering practice.
Security platforms rarely fail at the threat model. They fail at telemetry cardinality, retention math, shard debt, and the support load no demo accounts for.
Every checkbox on the paved road taxes traffic off it. The real product of a platform team is the default every team inherits by doing nothing.
Deception is a rare defense where each detection burns attacker resources at near-zero defender cost. A week of data from my site, and why few programs use it.
WireGuard chose modern primitives that are fast in software. FIPS pushes VPNs toward validated AES modules. Can mainline WireGuard ever fit that world?
Prompt injection is not a bug you patch with better prompting. It is structural in any system that mixes instructions and untrusted data in one context.
Running LLMs on fully encrypted data is theoretically sound and practically brutal. Here is where the research stands and what actually works today.
Archive
May 27, 2026
A field postmortem from a two-router OpenWrt network: circular routes, a silent driver bug, hardware-locked radios, and other production-only failures.
May 25, 2026
Bridge two OpenWrt routers into one Layer 2 network over an untrusted wireless backhaul, stacking 802.11s for transport, WireGuard for encryption, and VXLAN.
May 18, 2026
Red teams find vulnerabilities. Engineering teams ship features. The gap between finding and fixing is where security programs quietly fail.
Read the noteMay 11, 2026
Security platforms rarely fail at the threat model. They fail at telemetry cardinality, retention math, shard debt, and the support load no demo accounts for.
Read the noteApr 27, 2026
Every checkbox on the paved road taxes traffic off it. The real product of a platform team is the default every team inherits by doing nothing.
Read the noteApr 20, 2026
Deception is a rare defense where each detection burns attacker resources at near-zero defender cost. A week of data from my site, and why few programs use it.
Apr 15, 2026
GCM for TLS, XTS for disk encryption, GCM-SIV when nonce management is hard. Block cipher modes are not interchangeable, and the wrong one has consequences.
Apr 11, 2026
WireGuard chose modern primitives that are fast in software. FIPS pushes VPNs toward validated AES modules. Can mainline WireGuard ever fit that world?
Read the noteApr 9, 2026
Prompt injection is not a bug you patch with better prompting. It is structural in any system that mixes instructions and untrusted data in one context.
Read the noteApr 6, 2026
Running LLMs on fully encrypted data is theoretically sound and practically brutal. Here is where the research stands and what actually works today.
Read the noteMar 26, 2026
A supply chain attack on LiteLLM showed the risk of a privileged AI proxy. Butler fills a similar role for Ollama with a smaller footprint and a static binary.
Read the noteMar 24, 2026
Why Rust and Go are memory safe and type safe while C is not, and why you cannot simply fix this with a better C compiler.
Read the noteMar 23, 2026
Why default encryption, biometric authentication, and forced updates are convenience features mistaken for security features, and why the distinction matters.
Read the noteMar 20, 2026
The xz incident is a strong argument for visibility and public scrutiny in supply chain security, not a proof that open source prevents compromise.
Read the noteMar 20, 2026
How attackers compromised a closed-source build pipeline, shipped a backdoor to 18,000 organizations via a routine update, and hid for nine months.
Read the noteMar 18, 2026
Tired of maintaining mount scripts for SSH, NFS, SMB, and rclone, I built mntctl: a systemctl-style CLI with persistent systemd units and pluggable backends.
Mar 17, 2026
eBPF has meant writing C and fighting the verifier. Rust and the aya framework change that: type safety, no libbpf, one cargo build for kernel and userspace.
Read the noteFeb 26, 2026
After upgrading the Wazuh manager, OpenSearch-authenticated admins silently lose all permissions. Here is why it happens and how to fix it permanently.
Read the noteFeb 13, 2026
How a 25-year-old Bash parsing bug allowed remote code execution through environment variables, and why it took multiple patches to fix.
Read the noteFeb 6, 2026
How a multi-year social engineering campaign embedded a backdoor in xz Utils that hijacked OpenSSH authentication on Linux systems.
Read the noteJan 23, 2026
How a message interpolation feature in Log4j turned every Java app into an unauthenticated RCE target, and what the response revealed about supply chains.
Read the noteDec 5, 2025
A reflection on why Linux won and what it teaches about leadership, engineering, and product momentum. Practical lessons for builders who ship and iterate.
Read the noteNov 21, 2025
A curated set of custom Wazuh decoders and rules for the detections that built-in rules miss, with MITRE mappings and ready-to-deploy XML.
Nov 14, 2025
A kernel panic recovery story and the engineering mindset that makes Linux failures fixable.
Read the noteOct 3, 2025
Exceptions feel harmless in the moment. Over time they become the slow leak that drains security programs.
Sep 19, 2025
Turning infrastructure into a product is less about technology and more about clarity, ownership, and trust.
Read the noteSep 5, 2025
Security architecture defines the promises; security operations keeps them. When those two drift, the organization pays the bill.
Read the noteAug 29, 2025
Techniques for crafting exploit payloads when buffer space is limited, bad characters are abundant, and mitigations restrict your options.
Read the noteAug 22, 2025
Techniques for crafting position-independent shellcode that avoids null bytes and other bad characters.
Read the noteAug 11, 2025
Operating LLMs locally can help analysts summarize and triage sensitive telemetry without shipping data to third-party services.
Read the noteNov 1, 2024
A practical workflow for isolating slow SSH sessions by separating DNS, TCP, and authentication latency.
Oct 24, 2024
Pre-commit hooks catch formatting, lint, and secret issues before code leaves a laptop, but only if they stay fast and consistent.
Oct 18, 2024
A stepwise method to debug broken Kubernetes Services by validating selectors, endpoints, DNS, and kube-proxy routing.
Jul 8, 2024
Fully homomorphic encryption allows computation on encrypted data, but performance and model constraints still define where it is realistic.
Read the noteJun 14, 2024
Upgrading Wazuh 4.8.0 is mostly about compatibility, index management, and keeping agents aligned with the manager and indexer.
Read the note2024
Zero Trust is a systems promise, not a slogan. Without automation, the model collapses under its own operational weight.
Read the noteDec 29, 2023
MFA is table stakes, but the details matter: phishing resistance, enrollment flow, recovery, and policy enforcement.
Aug 23, 2023
FIPS compliance with OpenSSL 3 is about enabling the FIPS provider and proving it is actually in use, not just installed.
Read the note