If you’re looking for the About page, that’s here.

What I’m Focusing On Now#

Alright, so it’s been a minute. A quick glance at the previous version of this page reveals someone who was last coherent in early 2025 and then just… stopped updating. We’re going to fix that right now.

Professional Life#

  • SVP, Engineering at Lark, March 2023 - May 2025.
  • VP Engineering at Strive Health. Joined October 2025. Leading engineering for a platform doing important work in kidney care.
  • Chief Tentacle Officer, Groktopus LLC. Still alive, still writing about AI and the future of work over at groktop.us.

What Changed Since I Last Updated This Page#

Look, I know the whole point of a /now page is “right now, not back then.” But given that my last update was “I really need to re-learn Python” (a sentence so 2024 it hurts), you’re getting the highlights reel.

May 28, 2026#

Full cover rebrand for magnus919.com. Spent the better part of a day bringing every article on the blog into one visual language. All 90-some covers are now gonzo ink illustrations: frantic dip-pen linework, ink splatter, warm parchment backgrounds, amber highlights. No more random mix of photos, vectors, watercolors, and pixel art.

The approach was straightforward. For articles that already had covers, I fed the existing image back through the generator with the gonzo template. For the oldest posts that never had a cover at all, I generated one from scratch. Every single image got standardized to 1600px wide JPEG at quality 85. The whole thing went from about 300MB of covers down to about 50MB.

It’s one of those projects that was visible to nobody until it was done, but the difference is real when you scroll the archives. Same blog, same words. Just a consistent visual thread running through it now.

May 27, 2026#

Upgraded my GPU server to Qwen3.6. The homelab inference box now runs Alibaba’s latest: Qwen3.6-35B-A3B, a Mixture-of-Experts model with 35 billion parameters and only 3 billion active per token. Fits comfortably on a single RTX 5070 Ti.

This handles auxiliary agent tasks: vision analysis, approval checks, and title generation. The previous Qwen model was solid, but the MoE architecture here is genuinely a different class of capability: same active parameter count, much larger pool of expertise to draw from. First few sessions have been smooth.

Wrote a guide to running this whole setup. The upgrade process turned into an unexpectedly deep investigation: the first quantization I tried forced a GPU/CPU split that triggered a llama.cpp kernel bug, leaving GPU utilization at 14%. Switching to the APEX Nano quantization got all 40 layers on GPU and brought generation speed from 33 to 121 tokens per second. The article is a full walkthrough: which model file to download, what every llama.cpp flag does, where the 32K context window shines and where it doesn’t, and a systemd unit you can copy-paste. If you’ve got a 16 GB consumer GPU and want to run a 35B MoE model locally, this is the guide I wish I’d had three hours ago.

Canceled my Beautiful.ai subscription. Had been paying for an AI presentation tool that auto-designs slides with “Smart Slides” and guided outlines. Then I realized I could have Hermes Agent build slide decks for me: self-contained HTML with full branding, speaker notes, progressive reveals, the works. No ongoing cost, no proprietary format, no drag-and-drop. Just iterate via text prompts. The gap between what I was paying for and what my own stack could do narrowed to nothing, so Beautiful.ai got the axe.

Skills Bundles for Hermes Agent. I’ve been publishing standalone skills for a while. The agent-skills repo has a pretty solid collection by now. But Skills Bundles are a different animal. They let you pull related skills together in a structured way, turning a scattered library into something you can actually navigate and apply as a set. Makes it way easier to bring a whole workflow into a session without hunting down individual skills. Still early in the exploration but it’s clicking in a way I didn’t expect.

Refreshed the RDUMesh warrant canary. Updated the canary page with the latest affirmation: no secret demands, no gag orders, no backdoors, no surveillance orders. The canary is the community’s way of saying the infrastructure is still clean. It gets updated regularly, and if it ever stops, that’s the signal to ask questions.

May 26, 2026#

Deep dive into Hermes Agent contributions. Spent a session grinding through my open PR backlog on the Hermes Agent repo. Had seven open PRs in various states of disrepair. Some had been sitting for two weeks without a look, a couple had review feedback I hadn’t addressed yet. Went through them one by one.

The highlight was the remote_run SSH tool PR. austinpickett from the core team gave it an incredibly thorough code review. He found three shell injection vulnerabilities, two security architecture issues, and seven code quality warnings. The kind of review that makes the code genuinely better. Spent the rest of the session addressing every finding: switched from inline password interpolation to channel-based sudo auth, replaced AutoAddPolicy with WarningPolicy, added shlex.quote() everywhere, and wrote six new security regression tests. That one feels good.

A few others I’m particularly hoping get picked up:

  • The packaging fix PR already has maintainer approval. Just needs CI to run and it’s ready to merge. Fixes real bugs where pip installs were silently missing subpackages and the TUI wouldn’t start.
  • The TUI shell exec security fix closes two command injection vectors in the TUI gateway. Got a review that caught a regression I’d introduced, fixed that, waiting on a re-review.
  • The claude-import skill is a bigger one. Lets anyone migrate their Claude.ai conversation history into any Hermes memory provider. Streaming JSON parser handles 175MB exports, preflight guard protects against overloading the filesystem provider. No reviews yet, but it’s thoroughly tested.

Also reviewed a PR from another contributor. SandroHub013’s fix for the opencode api_mode routing bug I’d reported. Clean fix, good tests. Feels good to see someone else pick up an issue I filed and ship it.

Filed the omnibus PR for per-task auxiliary fallback. There’s been this cluster of about 12 open PRs on the repo, all trying to fix different symptoms of the same gap: auxiliary tasks (compression, vision, web extraction) have no configurable fallback mechanism when their provider fails. People kept submitting fixes for auth errors, endpoint overrides, vision fallback ordering, website extraction failover, each one patching one tiny slice. None of them were getting merged.

Spent a session untangling the landscape, filed an issue mapping all 12 PRs and showing which duplicated which, then implemented a consolidating PR that adds a fallback_providers config key to every auxiliary task. The approach uses a transparent failover client that catches 429s, 5xx errors, auth failures, and connection timeouts, then walks the user’s configured fallback list. Same pattern the top-level provider already uses, just extended to side tasks.

Felt good to close the loop on that one. A dozen competing PRs consolidated into one clean solution, and hopefully the right pattern to encourage more of the same.

hermes-cashew v0.10.2. Pushed a patch release with a pile of accumulated fixes. The is_available() contract no longer probes the real Hermes home when it doesn’t know the path. The sleep cycle got concurrent-access protection via fcntl.flock and a 5-second SQLite busy timeout so it doesn’t immediately bail on lock contention. Fixed the embedding dimension hardcoding — was float[384], now dynamically detects gte-large. Also made embedding model configuration actually propagate to the upstream extraction calls. Moved the sleep cycle to cron so it doesn’t block session teardown. Plus a full config table rewrite and some repo root cleanup. Release notes.

There’s something satisfying about working the upstream side of an open source project you use every day. Hermes Agent has been good to me, and it’s nice to be able to give some back.

Rick & Morty season 9 is here. Premiered on Adult Swim last night. I genuinely don’t understand how a show this deep into its run keeps finding new ways to stay fresh, but I’m not going to question it. Just grateful it’s back.

Published an ELI5 guide to RDUMesh. Put up a simplified explainer on rdumesh.org that walks through how mesh radio works from the ground up. Tin cans and string, why walkie-talkies can’t reach across a city, what happens when you put a repeater on The Eastern at North Hills, and how mesh networks find alternate paths when something blocks the signal. Illustrated the whole thing with crayon drawings. Every section gets its own picture. The cover is a crayon drawing of the American Tobacco Campus in Durham with a biplane skywriting “RDUMesh.” This one was fun to make.

Started sketching out GroktoDash. A native macOS desktop client for Hermes Agent. Uses a Tahoe Citizen architecture approach, which is a fancy way of saying it’s designed to be a good desktop citizen rather than a web wrapper. MIT licensed. Still very early, just getting the foundation laid. Repo is here.

MeshCore observability stack. I’ve been deep in RDUMesh infrastructure monitoring lately. Got the MeshCore observer feeding telemetry into Prometheus, a Grafana dashboard showing the whole network at a glance. Node connectivity, signal quality, hop counts. Having some promising early results with a 15-minute polling cycle on the home repeater that gives me uptime, packet counts, and even a view of its neighbors.

The interesting tension is that we’re monitoring radio, not internet services. A LoRa mesh is noisy, intermittent, and failure-tolerant in ways that web services aren’t. A repeater with a -9 dB SNR link and 40,000 receive errors can still be functionally fine for the mesh’s purposes. Developing the right sensibilities about what constitutes a real problem versus normal RF behavior is a different muscle from what I’m used to with conventional infrastructure monitoring. It’s worth the work. Makes the invisible visible, and that’s the whole point.

Open Source Projects#

I’m maintaining a few things right now:

  • hermes-cashew. A thought-graph memory provider for Hermes Agent. Gives AI agents persistent, structured memory across sessions instead of starting from zero every conversation. Apache 2.0, built in Python, getting real use.

  • groktocrawl. Self-hosted web scraping and research stack. What started as a Firecrawl alternative turned into something more capable: multi-page crawling, JS-rendered content, LLM-friendly output. Runs on Docker, works with any agent framework.

  • agent-skills. A growing library of reusable skill modules for Hermes Agent. Reference patterns, workflow templates, and standalone skills I’ve extracted from real use. If you’re running Hermes, there’s probably something useful in here.

  • hermes-council. A multi-agent debate framework that composes panels of expert personas to surface hidden assumptions and stress-test ideas. MIT licensed, open source from day one. I use it for everything from editorial review to strategic analysis.

What I’m Reading (or Rather, Listening To)#

I’m not actively reading anything at the moment, but the audiobook pipeline has been strong:

  • “Different Kind of Power” by Jacinda Ardern. Recently finished. Her leadership during the Christchurch response and COVID was remarkable, and her reflection on what principled leadership looks like in practice is worth anyone’s time.
  • “107 Days” by Kamala Harris. Just wrapped this up. A focused, personal account of a compressed political campaign that offers a fascinating behind-the-scenes look at how modern presidential campaigns actually operate. I wish she’d won. Hard not to think about what a different world we’d be in right now.

I should probably pick up a physical book again at some point. We’ll see.


This is my now page, inspired by Derek Sivers. It’s a snapshot of what I’m focused on at this point in my life. I promise not to let another four months go by before the next update.

More research on my about Now Pages note.

I update this page when my focuses change significantly.