I build developer tools, web applications, and the infrastructure that runs them. My work spans Kubernetes and GitOps, Python and TypeScript, self-hosted systems, and AI agents with access to real tools.
I like working across the whole system: the application, its deployment, the automation around it, and what happens when something breaks. That shows up in both the products I build and the ARM64 Raspberry Pi homelab where I run and experiment with services.
I share implementations, debugging notes, and lessons from that work on my blog. Recent writing covers homelab networking, Kubernetes, cluster cooling, and CI/CD.
| Project | What it's for |
|---|---|
| DevFeed · Code | Developer news, tutorials, and releases in one reading feed, with public MCP access for discovering content through agents. |
| Wardn AI | A control plane for AI agents and MCP tools: approved servers, scoped credentials, human approvals, execution, and audit trails. |
| Wardn Hub · Code | A catalog for discovering and evaluating agent skills, with scanning and validation tooling. |
| ShipyardHQ · Code | Product discovery beyond launch day, with directories, rankings, and launch analytics for apps, SaaS, AI tools, and APIs. |
| GetEnvelope | An early-stage project and service inbox with agent assistance; currently an application scaffold. |
| Open-LLM Router | An OpenAI-compatible gateway for routing requests across model providers, with failover, logging, and metrics. |
| NetBox SSOT | Compare, review, and synchronize infrastructure data between NetBox instances. |
| Firefly Importer | Bank, credit card, and mutual fund statement parsers and import workflows for Firefly III, with reconciliation checks. |
My homelab brings together ARM64 Raspberry Pis, Ansible, K3s, Rancher Fleet, custom container images, and development environments. It's where application work meets networking, storage, observability, backups, and recovery.
Alongside it, I maintain:
- Shared GitHub Actions for reusable CI, container builds, scanning, and release automation.
- Harbor ARM64 builds to build and publish upstream Harbor components for ARM64.
- Home Assistant configuration with GitOps, family dashboards, custom integrations, and reproducible setup.
- HA Sensors Gateway for narrowly scoped Home Assistant sensor and location webhooks.
- qBittorrent Smart Queues for queue, quota, and health control.
- Kubernetes Recommendation Engine and Music Assistant / YouTube Music tooling.
Experiments, libraries, earlier work, and supporting repositories
- Jarvis — a local-first multimodal agent scaffold with persistent memory.
- Agent Ops — an application and workflow platform experiment.
- Python Packer — a Python interface for Packer.
- setup-browser and setup-megacmd — GitHub Actions setup tools.
- WPimporter — move WordPress posts into October CMS.
User authentication · RBAC · System information · SMS · Installer · Enum helper · Database configuration · Blog startup kit · Advanced startup kit · Desk CMS · Tux Tips user plugin · Tux Tips forum plugin
nginx-proxy · docker-barman · Docker demo · Dotfiles · Coder dotfiles · Katacoda scenarios · GitHub Slideshow
Personal blog · Blog discussions · Portfolio · Wardn website · This profile and its generator
A fresh reading list from DevFeed: five recent articles on software, tools, and the systems behind them.
SiliconANGLE · News · Oct 26, 2026
Bedrock Robotics raised $600 million in a Series C led by CapitalG and Emergence Capital, with Nvidia, Bessemer and other investors participating; the company says it is valued at nearly $1 billion.
ProAndroidDev · Tutorial · Oct 26, 2026
Android AppFunctions can be disabled by default and enabled selectively when conditions are met, such as user consent, a paid feature, or a feature toggle. Set `isEnabled = false` in `@AppFunctionDeclaration`, then use `AppFunctionManager.setAppFunctionEnabled` with each function’s identifier to enable or disable it as needed.
ProAndroidDev · Tutorial · Oct 26, 2026
Material 3 dynamic color derives tonal palettes from the user’s wallpaper and maps them to semantic color roles that apps consume. The supplied article says full dynamic color support is available on Android 12+ (API 31+); Android 11 and below use static Material 3 schemes.
Google Developers Blog · Release
Google Docs now supports viewing, editing, and collaborating on Markdown files without converting them, preserving the underlying format for developer tools and Git repositories. Google Drive can show rendered previews for formatting review.
BleepingComputer · News · Oct 26, 2026
Hackers accessed a University of Copenhagen test environment containing personal data of 525,000 people; a later update added 20,000 staff and students whose PIN codes were exposed. The university says it contained the attack and blocked access.
Updated 2026-10-27 UTC · Refreshed daily through DevFeed's public MCP.







