From the Lab
Research notes, engineering deep dives, and honest reflections on building AI-device interaction tooling.
Field Notes: How Drengr's Architecture Aligns with (and Diverges from) Current Research
After ten years of writing Android UI tests that broke every sprint, I started building something different. Turns out researchers at Google, Meta, Microsoft, and Princeton were asking the same questions. Here's where our paths cross — and where they don't.
Why Not Python? The Language Everyone Expected Me to Use for Drengr
Every AI agent project is Python. LangChain, CrewAI, AutoGen — Python everywhere. I went with Rust. Here's the honest reason, and what it cost me.
Giving Claude a Phone: How I Built an MCP Server for Mobile Devices
AI agents can write perfect code but can't tap a button on a real device. I built an MCP server to bridge that gap — here's how Drengr gives Claude eyes and hands on Android and iOS.
Why I Chose Rust for a Mobile Testing Tool (And What I Learned the Hard Way)
Every AI agent project is Python. I went with Rust for Drengr and shipped a 15MB static binary with zero runtime dependencies. Here's what that decision cost me — and why I'd do it again.
The OODA Loop: How I Taught an AI Agent to Navigate Apps It Has Never Seen
Military strategy from the 1960s turned out to be the perfect framework for AI mobile testing. Here's how the Observe-Orient-Decide-Act cycle gives Drengr's agent situational awareness.
What Happens When You Let AI Test Your App for a Week
I pointed Drengr's autonomous agent at three different apps and let it run for a week. It found a bug I'd missed for months, flagged an accessibility issue, and also reported a lot of false positives.
From ADB Shell to AI Agent: The Quiet Revolution in Mobile Automation
Mobile test automation has evolved from raw shell commands to AI-driven exploration. I trace the journey from ADB to Appium to Maestro to Drengr — and where I think it's heading.
Building in Public: The Architecture of a Solo Rust Project
No VC, no team, no timeline pressure. Just curiosity and a problem that felt important. Here's the architecture of Drengr, what 6,300 lines of Rust taught me, and the hardest bug I've hit so far.
Why I Chose Rust Over C and C++ for Drengr
Everyone asks why Rust instead of Python. The more interesting question is why not C or C++. Here's what drove that decision — and what I'd do differently.