Blog

Writing about GPU kernels, ML systems, Android internals, security research, and networking.

June 28, 2026
Wiring Two DGX Sparks: One Script to Detect, Configure, and Validate the RoCE Link
You cabled two DGX Sparks together with the ConnectX-7 stacking cable. Now: is the link actually at line rate, or silently firmware-throttled? Are your collectives on RDMA, or quietly falling back to TCP? Which of the FOUR RoCE devices is even the live one — and why is it named differently on each box? Here is a single self-contained bash script that detects every port from sysfs, installs the tooling, and validates the link end-to-end (bandwidth, latency, and a real NCCL all-reduce over RoCE) with green/red gates — plus the traps it encodes. Measured on two GB10 Sparks: 109 Gbps/rail, 1.45 µs RDMA, 29.5 µs small-message all-reduce.
nccl rdma roce infiniband dgx-spark gb10 networking gpu distributed bringup
June 28, 2026
Unboxing Two DGX Sparks, and Recovering One From a Kernel Panic on First Boot
The DGX Spark setup is a phone-style hotspot-and-wizard flow that pulls down new software and firmware over Wi-Fi. On one of my two units that update left me staring at 'Unable to mount root fs on unknown-block(0,0)'. Here's the out-of-box experience, and exactly how I recovered the bricked one — including where my recovery diverged from NVIDIA's official guide.
dgx-spark gb10 nvidia kernel-panic ubuntu recovery initramfs arm64 hardware
June 25, 2026
The Number Nobody Published: Small-Message NCCL Latency Between Two DGX Sparks
Every dual-DGX-Spark writeup benchmarks bandwidth — GB/s of busbw, ~190 Gbps of RDMA. None of them publish the one figure that actually decides whether a latency-bound multi-node workload is viable: the small-message NCCL all-reduce latency over the ConnectX-7 RoCE link. So I measured it on two GB10 Sparks: ~2 µs RDMA write floor, and ~40 µs for a 16–32 KB all-reduce. Plus the firmware, NCCL, and OpenMPI traps that silently wreck the result.
nccl rdma roce infiniband dgx-spark gb10 networking gpu distributed benchmarks
June 24, 2026
From a Student Side Project to a Google Success Story
Google featured Sangiorgi SRL in a Publisher Success Story. Here's the longer version — how a university experiment became an app with 165M+ downloads, and what I've learned building free software that has to pay for itself.
sangiorgi-srl android entrepreneurship admob story
April 18, 2026
FLAG_MUTABLE PendingIntent in DeviceAsWebcam Allows Foreground Activity Hijack via fillIn() Injection
A mutable notification PendingIntent in DeviceAsWebcam enables fillIn() intent injection and forced foreground launch of a system-UID activity from a NotificationListenerService app.
android security vrp aosp pendingintent
April 8, 2026
Retrieving the ARP Table on Android SDK 30+ via Netlink
Google blocked netlink socket bind in Android 11 (targetSDK 30), breaking ARP table access for apps. I wrote a JNI library that bypasses the restriction by sending RTNetlink dump requests without binding — until SELinux closed the door for good. Ubiquiti wanted to buy it for WiFiMan; I open-sourced it instead.
android netlink jni networking arp open-source
April 7, 2026
Blocking WiFi De-Auth Attacks in the Kernel with eBPF and XDP
I patched the Linux mac80211 kernel module to support XDP on wireless interfaces and built an eBPF program that detects and drops 802.11 de-authentication floods — reducing detection time by 60% vs libpcap and improving throughput stability over 802.11w. Published at IEEE NetSoft 2025.
ebpf xdp security linux kernel wifi research ieee
April 6, 2026
Intercepting Android's ManagedProvisioning: A PendingIntent Vulnerability in AOSP
I found a vulnerability in Android's ManagedProvisioning that lets any unprivileged app intercept privileged provisioning callbacks. Google classified it as low severity.
android security vrp aosp pendingintent