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
Author of open-source MCP servers for Bluesky, the Fediverse, and even Gopher. 20+ years shipping production software in TypeScript and .NET.
hiring → the resumefellow engineer → the labbuilding with agents → llms.txt
→ GET /.well-known/api-catalog 200 8ms · api-catalog links 5 resources → GET /llms.txt 200 13ms · 7 top-level sections → GET /.well-known/mcp/server-card.json 200 18ms · 11 tools — search_posts, get_post, list_posts… → GET /blog/making-my-portfolio-agent-readable.md 200 23ms · "Making My Portfolio Agent-Readable: From Files to an Interface Agents Can Act On" → GET /openapi.json 200 28ms · 6 documented paths ▮ agent found its way around in 90ms
POST /mcp// click a tool above — the live JSON-RPC response shows here
A replay of an AI agent reading this site; the tool buttons make real MCP calls, not canned ones.
01 — Production systems
02 — Selected work
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.
03 — Built for agents
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.1.0",
"title": "Cameron Rye Portfolio MCP Server",
"description": "Access to Cameron Rye's published blog posts, projects, resume, and other portfolio content, plus his current focus (/now), reading list, and live PII-free site stats. Two write tools (contact form, newsletter signup) share the same validation and per-IP rate limits as the site's own forms. Read-only resources mirror the hand-authored markdown page variants. Useful for agents answering questions about the author, summarising/searching published writing, checking what he's up to right now, or getting in touch."
},
"transport": {
"type": "streamable-http",
"endpoint": "https://rye.dev/mcp"
},
"capabilities": [
"tools",
"resources"
],
"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."
},
{
"name": "get_now",
"description": "Return what Cameron is currently working on, learning, building, reading, and up to in life (the /now page sections)."
},
{
"name": "get_reading",
"description": "Return Cameron's reading list — books currently reading, finished, or abandoned, with notes. Optional status filter."
},
{
"name": "get_pulse",
"description": "Return live, PII-free site stats: Core Web Vitals p75s, 30-day pageviews, uptime %, top-reacted pages, and last deploy."
},
{
"name": "submit_contact",
"description": "Send Cameron a message through the site contact form. Same validation and per-IP rate limits as the form itself."
},
{
"name": "subscribe_newsletter",
"description": "Subscribe an email address to the newsletter. Sends a confirmation email; subscription activates only once confirmed."
}
],
"resources": [
{
"uri": "https://rye.dev/index.md",
"name": "index",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/about.md",
"name": "about",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/now.md",
"name": "now",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/uses.md",
"name": "uses",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/colophon.md",
"name": "colophon",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/reading.md",
"name": "reading",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/resume.md",
"name": "resume",
"mimeType": "text/markdown"
},
{
"uri": "https://rye.dev/blogroll.md",
"name": "blogroll",
"mimeType": "text/markdown"
}
],
"documentation": "https://rye.dev/.well-known/agent-skills/index.json"
}Web vitals (28-day p75): LCP good, INP good, CLS good. Pageviews last 30 days: 1887 total. Uptime 100 percent.
Live telemetry from this site: page speed, traffic, and uptime.
04 — Expertise
05 — Writing
I stopped publishing files for agents to discover and built an interface they can act on: markdown mirrors, an A2A agent card, and verifiable skills.
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.
06 — What colleagues say
“He led our .NET Framework to .NET 6 migration without pausing feature work. Deploys went from monthly to weekly and stayed there.”
“The code reviews were the actual mentorship — specific, patient, always about the code. Three of the four of us he mentored were promoted within eighteen months.”
“We stopped rebuilding the same components in every app. His Storybook library became the starting point for twelve-plus applications, and UI work that took a week now takes about three days.”
Placeholder quotes while the real ones are collected.
07 — Contact
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.