# I want to help products drive themselves

> A speculative application to PostHog from Robbie Palmer, backed by working product infrastructure, public decisions, and shipped code.

- HTML version: https://robbiepalmer.me/posthog
- Location: Belfast, UK

## I was already building the machine around the coding agent.

PostHog Desktop combines a multiplayer product editor, parallel agents, multiple models, and cloud sandboxes. I got here because my tools kept failing me in different ways. Since November 2025 I have coded from my phone with Claude Code for web, added Codex on my Mac and then t3-code, and set up a Hetzner server because I wanted agents to keep running when I stepped away. In parallel, the pain of sharing context while running a team led to Work Graph. Reading endless AI prose was doing my head in, so I started building an editor to unslop it.

[See the PostHog Desktop parallel](https://posthog.com/desktop)

### 01 · Persistent K3s workspaces

Each person gets a private namespace, durable home directory, provider identities, and resource limits. They can leave from a phone or laptop without stopping the work.

### 02 · t3-code runs the room

Repos, worktrees, terminals, browser tools, and agent sessions stay together while several coding harnesses work in parallel.

### 03 · One plan, many workers

The agents should share priorities, dependencies, accepted knowledge, and expensive compute instead of rediscovering everything inside each session.

### Coding harnesses

- **Claude Code:** Subscription
- **Codex × 2:** Two accounts
- **OpenCode:** GLM 5.3 Flash
- **Grok Build:** Subscription

- [Work Graph](/projects/work-graph): Ready work, dependencies, leases, and requests for attention
- [Agent-first Writing Editor](/projects/agent-first-writing): Plans and prose refined with models running on my local GPUs
- [Knowledge graph](/projects/personal-knowledge-graph): Decisions and accepted context available to every workspace

Clear prose is an execution tool. If an agent cannot state the plan cleanly, I do not want it rushing into the code.

The harness and model are routing choices. Use the best tool for the job, use subscription capacity first, then move work when quality, limits, or cost change. Keep an escape hatch across providers.

## What the weirdness looks like

#### [Whole-slide pathology viewer](/projects/pathology-viewer)

![A whole-slide pathology viewer showing a colorectal tissue section](https://robbiepalmer.me/images/home/pathology-viewer.jpg)

A browser interface for navigating proprietary whole-slide images and inspecting model output

#### [Autonomic satellite swarm](/satellite-swarm)

![A CesiumJS globe showing three cooperating satellite nodes](https://robbiepalmer.me/images/home/satellite-swarm.jpg)

A deterministic mission replay where satellites negotiate leadership and assignment over a simulated network

#### [The site as a knowledge graph](/projects/personal-knowledge-graph)

![The site's knowledge graph with hundreds of coloured connected nodes](https://robbiepalmer.me/images/posthog/knowledge-graph.png)

Projects, ideas, decisions, roles, and technologies stored as a graph that people and agents can query

#### [A financial twin](/assettracker)

![A personal finance chart plotting net worth and account balances over time](https://robbiepalmer.me/images/home/asset-tracker-chart.jpg)

Accounts, assets, debts, transfers, and forecasts combined into a working model of household finances

#### [A yard that sees what is moving](/projects/real-time-multi-camera-video-analytics)

![Terminal Industries computer vision identifying a truck and its lane in a logistics yard](https://a.storyblok.com/f/337048/2882x1574/cb9f2cde65/y.webp)

At Terminal, I have helped turn camera detections into a live record across gates and yards. My work covers the event plane, cross-camera fusion, cloud infrastructure, observability, analytics, and technical leadership

[Public product footage · Terminal Industries](https://terminal-industries.com/terminal-ai-computer-vision)

#### [The home lab that runs my projects](/projects/homelab)

**01 · Physical topology**

```mermaid
flowchart LR
Phone["Phone or laptop"] -->|"Tailscale"| Mini["Mac mini<br/>Home hub"]
Router["Home router"] -->|"Primary DNS"| Mini
Router -->|"Fallback DNS"| Pi["Raspberry Pi<br/>Fallback host"]
Pi -->|"Metrics"| Mini
Mini --> Drive[("10TB HDD")]
Mini --> TV["Fire TV Stick"]
Mini --> Slack["Slack alerts"]
Mini --> VPN["VPN egress"]
VPN --> Internet["Internet"]
Pi --> Printer["Canon printer"]

classDef hub fill:#f5c842,color:#1d1f1f,stroke:#1d1f1f,stroke-width:3px
classDef fallback fill:#f05b52,color:#1d1f1f,stroke:#1d1f1f,stroke-width:3px
classDef access fill:#1490e8,color:#fffdf8,stroke:#1d1f1f,stroke-width:2px
classDef device fill:#fffdf8,color:#1d1f1f,stroke:#1d1f1f,stroke-width:2px
classDef data fill:#4e9b75,color:#fffdf8,stroke:#1d1f1f,stroke-width:2px
class Mini hub
class Pi fallback
class Phone,VPN access
class Drive data
class Router,TV,Slack,Internet,Printer device
linkStyle default stroke:#1d1f1f,stroke-width:2px
```

**02 · Inside the Mac mini**

```mermaid
flowchart TB
subgraph mini["Mac mini"]
DNS["AdGuard Home<br/>Primary DNS"]
VPN["Hotspot Shield<br/>Outbound traffic"]
Dev["t3-code<br/>Coding agents"]
Backup["Ente sync<br/>Photo backup"]
Monitor["Netdata<br/>Monitoring"]
KeepAlive["keep-running agent<br/>Stack supervisor"]
Media["Jellyfin<br/>Media server"]
Storage[("10TB HDD")]

subgraph media["Media automation · Docker Compose"]
Prowlarr["Prowlarr<br/>Indexer proxy"]
Sonarr["Sonarr<br/>TV"]
Radarr["Radarr<br/>Movies"]
QBit["qBittorrent<br/>Downloads"]
Recyclarr["Recyclarr<br/>Quality profiles"]
end
end

Trakt["Trakt<br/>Watchlist and tracking"]
FireTV["Fire TV Stick"]
Internet["Internet"]

KeepAlive -.->|"Starts only while<br/>VPN is up"| media
Backup --> Storage
Media --> Storage
Media --> FireTV
Trakt -->|"Watchlist"| Sonarr
Trakt -->|"Watchlist"| Radarr
Media -->|"Scrobbles"| Trakt
Prowlarr -->|"Indexers"| Sonarr
Prowlarr -->|"Indexers"| Radarr
Recyclarr -->|"Profiles"| Sonarr
Recyclarr -->|"Profiles"| Radarr
Sonarr -->|"Releases"| QBit
Radarr -->|"Releases"| QBit
QBit -->|"Completed"| Storage
DNS -->|"Quad9 DNS"| VPN
Dev -->|"Code and agent APIs"| VPN
Backup -->|"Ente sync"| VPN
Monitor -->|"Slack alerts"| VPN
VPN --> Internet

classDef service fill:#1490e8,color:#fffdf8,stroke:#1d1f1f,stroke-width:2px
classDef mediaService fill:#f05b52,color:#1d1f1f,stroke:#1d1f1f,stroke-width:2px
classDef supervisor fill:#f5c842,color:#1d1f1f,stroke:#1d1f1f,stroke-width:3px
classDef data fill:#4e9b75,color:#fffdf8,stroke:#1d1f1f,stroke-width:2px
classDef external fill:#fffdf8,color:#1d1f1f,stroke:#1d1f1f,stroke-width:2px
class DNS,VPN,Dev,Backup,Monitor service
class Media,Prowlarr,Sonarr,Radarr,QBit,Recyclarr mediaService
class KeepAlive supervisor
class Storage data
class Trakt,FireTV,Internet external
linkStyle default stroke:#1d1f1f,stroke-width:2px
```

Switch between the hardware topology and the Mac mini service graph: DNS, photo backup, coding agents, monitoring, media, storage, and a VPN-gated automation stack that supervises its own download pipeline.

## The subjects vary. The passion for building is consistent.

> I am the sort of person who builds a recipe platform, an autonomic satellite-swarm simulation, cancer-research software, a Kubernetes-based homelab, and a Jira replacement at the same time.
>
> One review of this repository

I like building things that do not fit neatly on a roadmap. I like discovering novelty. I like shipping value. I like locking in on a different perspective.

- Data architecture
- Machine learning
- Digital twins
- Adaptive planning
- Networks and infrastructure
- A shared go-to-market stack

The domains change; but the patterns repeat: model a real system, connect its data, make it adaptive, then build whatever infrastructure is missing. I see things that should exist and keep going until they do. I do not want the project list to look normal.

![PostHog's turquoise DeskHog developer toy smiling beneath a shower of confetti](https://res.cloudinary.com/dmukukwp6/image/upload/deskhog_smiling_36bb2647ff)

[You encourage this kind of innovative exploration. DeskHog is a developer toy built for joy.](https://posthog.com/deskhog)

- [Recipe platform](/projects/recipe-site)
- [Satellite swarm](/projects/autonomic-satellite-swarm)
- [Cancer research](/initiatives/personalized-medicine)
- [Kubernetes homelab](/projects/homelab)
- [Jira replacement](/projects/work-graph)

### Outside the repository

If [pineapple-on-pizza telemetry](https://posthog.com/careers#pizza) belongs on a company page, then my weird hobbies belong on a job application

#### [I connected the philosophy of mathematics to data science and data mesh](/blog/2022-03-02-the-philosophy-of-data-science)

The essay asks what data scientists mean by knowledge, then brings in Gödel, Popper, Kuhn, postmodernism, and organisational architecture. Concluding we should practice Post-positivist Domain Driven Data Science.

#### [I perform jazz dance](https://linktr.ee/flyingfeetjazzdancecollective)

![Flying Feet Jazz Dance Collective logo showing two dancers](https://ugc.production.linktr.ee/4f88d739-d63c-434e-9683-0ca5142a4358_FF-CIRCULAR-DOUBLE-OUTLINE-SALMON-OUTER.png?io=true&size=avatar-v3_0)

I've started performing a mixture of Charleston, Lindy Hop and Swing. The sillier the move the better. Most hilarious move: 'the bird'

#### I watch Marxist analyses of Shrek for fun.

The Shrek essay is a brisk 20 minutes. The Barbie deconstructionist essay runs for an hour and a half. I watched both for fun.

- [Watch the Shrek analysis](https://youtu.be/V9NlA628lRw)
- [Watch the Barbie essay](https://youtu.be/DqIYPCemZ38)

## The culture I keep trying to build already exists here

PostHog's culture is the model I have repeatedly tried to build inside companies that were not designed for it. Managers who still do real work. Small teams trusted with whole products. Context instead of task assignment. High standards without approval theatre. Weird people given room to ship.

### I took the management job to prove a different way of doing it.

I am a Principal Software Engineer and an Engineering Manager at the same time. I took on management to remove obstacles, share context, and keep standards high while continuing to design systems and ship code. PostHog asks managers to spend significant time doing individual-contributor work. That is already the job I built for myself.

[How PostHog manages cracked engineers](https://newsletter.posthog.com/p/hiring-and-managing-cracked-engineers)

### I argued against Kubernetes. Then I made room for the engineer to prove me wrong.

I thought the proposed Kubernetes work could become a black hole, and I argued my case. I also fought to give the engineer enough room to try it. He proved me wrong. The company now has a much stronger CI/CD and GPU-inference platform, with rising throughput and lower costs. I am prouder of creating the conditions for him to succeed than I would have been of winning the argument.

[PostHog's version of letting engineers own the plan](https://newsletter.posthog.com/p/youre-doing-quarterly-planning-wrong)

### I inherited the team nobody wanted to be on.

At Terminal, I inherited the team with the lowest morale in the company. It became the happiest, most productive, and most ambitious team. With others desperate to join. This was the natural result of high trust, clear context, high standards, and removing everything that slowed good people down. I work on weaknesses when they harm other people, *only* until they are good enough. Then I invest hard in strengths. People are investment centres, not cost centres.

[Why PostHog invests in people's strengths](https://newsletter.posthog.com/p/hiring-and-managing-cracked-engineers)

### Tiny teams leave nowhere to hide. Good.

Most of my career has been spent in teams too small for narrow job boundaries. I have talked to customers, made product decisions, built ML and data systems, written backends and frontends, owned infrastructure, delivered projects, and led the team. That is the job I want: engineers owning the customer, the product, its quality, and its economics.

[How PostHog's small teams work](https://newsletter.posthog.com/p/the-magic-of-small-engineering-teams)

### The repository hides nothing

It contains products, source code, architectural decisions, experiments, negative results, initiatives, and current thinking. I built it because I want these things to exist. And the best way to do that is by holding high standards in public, and enabling others to join you on the journey. Don't hide ideas; and encourage execution!

[Inspect the repository](https://github.com/Robbie-Palmer/hq)

### The agent-tooling market is unsettled. I am building anyway.

A lot of people I know are frightened by what coding agents can now do and want to step away. I am addicted to the possibility. I am building the missing review, planning, context, knowledge, and coordination systems now, [even though better commercial products will eventually replace some of them](/blog/2026-08-18-crossing-the-chasm-with-ai-platform-teams). Agents have made ideas economical that once needed large teams and budgets.

### Cracked-engineers

PostHog writes about people whose work speaks for itself, who love the craft, who do not have a FAANG name on the CV, and who have held together failing companies. I have held together teams, products, and startups that lacked product-market fit, sufficient capital, or a healthy operating culture.

I have spent years burning political capital to create this way of working. I would like to find out what I can do when it is the starting point, inside a company with real product-market fit.

[Read PostHog's cracked-engineer essay](https://newsletter.posthog.com/p/hiring-and-managing-cracked-engineers)

![PostHog's muscular cracked-engineer hedgehog labelled PostHog/posthog with 39,817 GitHub stars beside the smaller also-cracked hedgehog labelled Robbie-Palmer/hq with zero stars](/images/posthog/cracked-engineer-repositories.png)

[Adapted from PostHog's cracked-engineer essay](https://newsletter.posthog.com/p/hiring-and-managing-cracked-engineers)

## Direct evidence

### PostHog as operating data

Recipe Site sends product events, traces, and correlated application logs to PostHog. Terraform owns its dashboards, insights, and log alerts. A user action can be followed from the browser through Workers and a durable workflow, then tied back to a replay and product outcome.

- [Read the tracing decision](/projects/recipe-site/adrs/062-direct-otlp-export-to-posthog)
- [Open the live product](/recipes)

### Work that agents can share

Work Graph is a deployed API and installable CLI backed by PostgreSQL. It derives ready work from dependencies, prevents concurrent owners with fenced leases, and records human decisions so people and agents can coordinate without a central dispatcher. I used it to coordinate the work on this page.

- [Inspect the Work Graph](/projects/work-graph)
- [Inspect the source](https://github.com/Robbie-Palmer/hq/tree/main/packages/work-graph-cli)

### Review that learns

A live GitHub App runs independent model scouts, reconciles structured findings, and keeps each finding's lifecycle. It records outcomes, latency, token use, and cost so the system can optimise for useful defects found per pound without turning comment volume into the goal.

- [Read the product thesis](/projects/agentic-code-review)
- [Inspect the source](https://github.com/Robbie-Palmer/hq/tree/main/ai-review)

## What I bring

- **Applied ML:** Computer vision in pathology and logistics, semantic search, document intelligence, and production ML pipelines.
- **Product engineering:** TypeScript / React frontends, Python services, real-time event-driven streaming systems, infrastructure, and observability.
- **Users and outcomes:** Customer discovery, technical consulting, rapid prototypes, product ownership, and success metrics.
- **Technical leadership:** Currently a Principal Software Engineer and Engineering Manager, producing more code than ever while setting direction and unblocking teams.

[Read the full career history](/experience).

## Where I might fit

I could be especially useful working on Self-Driving, AI Observability, Workflows, MCP and developer experience, or on another small team turning product context into action.

I do my best work between disciplines: talking to users, building applied ML systems, shipping full-stack products, and helping a small team make good technical decisions.

Belfast is home. I have bought a house here, built a social life I care about, and have a wedding here next year. There is also a cat who would object to the move. I work on UK time and am looking for a remote role, with travel when being together matters.

## The ask

I see a company that is the perfect fit. I do not see an advertised role that *cleanly* matches me.

The shape of the AI Research Team's Q3 2026 plan is extremely familiar:

- Data labeling suite
- Session replay text renderer
- Write data prep pipeline
- Build the sampling pipeline
- Train the Replay encoder model
- Train the end-to-end agent
- Build the model observability suite
- Build an eval dataset

[Read the AI Research Team's Q3 2026 plan](https://github.com/PostHog/posthog.com/blob/master/contents/teams/ai-research/objectives.mdx#q3-2026-objectives)

Across pathology, document intelligence, logistics, and my own agent tooling, I have built the constituent parts of that plan, in different combinations, multiple times over: labelling suites and annotated datasets, data-preparation and sampling pipelines, trained models, evaluation datasets and benchmarks, production integrations, and model observability.

Not with a PhD, a strong background in maths, or experience in low-level Rust, C, or CUDA. But with relentless curiosity, fast learning, and a focus on delivering customer value.

- [Read my initiatives](/initiatives/semi-autonomous-software-development)
- [Inspect my projects](/projects)
- [Try Recipe Site](/recipes)
- [Run the satellite swarm](/satellite-swarm)
- [Read my resume and experience](/experience)
- [View GitHub](https://github.com/Robbie-Palmer)
- [Connect on LinkedIn](https://www.linkedin.com/in/robertjohnpalmer/)

---

Markdown index of this site: https://robbiepalmer.me/llms.txt
