Aranet
Full-stack sensor monitoring from BLE to dashboards, with offline storage and IoT integrations
Rust libraries and tools for Aranet environmental sensors (CO2, temperature, humidity, radon, radiation) via Bluetooth Low Energy.
Software Engineer & Architect
I connect legacy protocols and real-world systems to modern AI — author of open-source MCP servers for Bluesky, the Fediverse, and even Gopher. 15+ years shipping production software in TypeScript and .NET.
Full-stack sensor monitoring from BLE to dashboards, with offline storage and IoT integrations
Rust libraries and tools for Aranet environmental sensors (CO2, temperature, humidity, radon, radiation) via Bluetooth Low Energy.
Interactive mathematical art across six platforms from shared algorithms
Cross-platform spiral visualization app for Web, iOS, iPadOS, macOS, and watchOS. Generate mesmerizing animated spirals from ten mathematical algorithms with real-time customization.
Reference implementation for studying distributed state management and Electron security patterns
A virtualized dual-head point-of-sale system built with Electron, demonstrating enterprise-grade architecture patterns for distributed state management, secure IPC, and offline-first retail operations.
Read and write to Bluesky from any MCP client, with zero-config public reads
Lets AI assistants read and write to Bluesky over the AT Protocol: zero-config public reads, OAuth-scoped writes, and full social graph access.
This site is built for machines too. Point an agent at this domain and it finds its own way around — here's what it sees.
{
"serverInfo": {
"name": "rye.dev",
"version": "1.0.0",
"title": "Cameron Rye Portfolio MCP Server",
"description": "Read-only access to Cameron Rye's published blog posts, projects, resume, and other portfolio content. Useful for agents answering questions about the author or summarising/searching published writing."
},
"transport": {
"type": "streamable-http",
"endpoint": "https://rye.dev/mcp"
},
"capabilities": [
"tools"
],
"tools": [
{
"name": "search_posts",
"description": "Full-text search across blog posts. Returns up to 10 matches with slug, title, date, and excerpt."
},
{
"name": "get_post",
"description": "Fetch a single blog post by slug. Returns frontmatter and full markdown body."
},
{
"name": "list_posts",
"description": "List recent blog posts in reverse-chronological order."
},
{
"name": "list_projects",
"description": "List portfolio projects with brief descriptions."
},
{
"name": "get_project",
"description": "Fetch a single project by slug. Returns frontmatter and full markdown body."
},
{
"name": "get_about",
"description": "Return the public profile / bio in markdown."
}
],
"documentation": "https://rye.dev/.well-known/agent-skills/index.json"
} We keep blaming AI-generated content for poisoning the web. But the slop is downstream of a market shift: search stopped sending users to publishers, publishers stopped being able to fund human writing, and AI filled the gap. The diagnosis matters.
How I built a seven-crate Rust workspace to connect to Aranet CO2, radon, and radiation sensors over Bluetooth LE — from raw BLE packets to Grafana dashboards, without a cloud dependency in sight.
In an era of algorithmic feeds and AI slop, RSS offers radical simplicity: you choose what you read. Miniflux is the minimalist, privacy-first reader that gets it right.
I'm not looking for new roles right now, but I'm always happy to talk shop — my open-source projects, MCP servers, or anything you've read here.