Paul Welty, PhD AI, WORK, AND STAYING HUMAN

What shipped today

Started the session with a codebase scout that explored templates, hooks, and infrastructure end-to-end. The audit surfaced five actionable issues: missing Open Graph/Twitter Card meta tags (GH-28), no JSON-LD structured data (GH-29), silent pre-commit hook failures (GH-30), unnecessary Hugo rebuilds on every commit (GH-31), and 3MB unoptimized images (GH-32). All five were filed with detailed specs and acceptance criteria.

Then tackled three tasks from the carry-over and scout findings. The reflection post retitling from yesterday had a URL bug — the aliases used /posts/dev-reflection-YYYY-MM-DD/ but the permalink config (posts = "/:title/") puts content at root level, so the old URLs were actually /dev-reflection-YYYY-MM-DD/. Fixed all 31 aliases and verified the redirects work on Cloudflare after deploy. GH-26 cleaned up stale CLAUDE.md references — removed the Notion sync documentation that no longer applies, fixed the config filename from config.yaml to hugo.toml, and removed a reference to a nonexistent content/newsletters/ directory. GH-30 added error handling to the pre-commit hook so failed audio generation now aborts the commit with a clear message, plus a SKIP_AUDIO=1 escape hatch for emergencies.

Completed

  • GH-26 — Update CLAUDE.md: remove stale paulos newsletter and blog sync references
  • GH-30 — Pre-commit hook silently swallows audio generation failures
  • Fixed reflection post aliases (wrong /posts/ prefix in all 31 files)
  • Filed GH-28 (OG meta tags), GH-29 (JSON-LD), GH-31 (hook rebuild perf), GH-32 (image optimization)

Carry-over

  • GH-27 — Add newsletter send automation as polymathic-h hook
  • GH-28 — Add Open Graph and Twitter Card meta tags for social sharing
  • GH-29 — Add JSON-LD structured data for blog posts
  • GH-31 — Post-commit hook runs full Hugo rebuild on every commit
  • GH-32 — Optimize static images (3MB PNGs)
  • Newsletter edition 11 (“The work that remains”) — scheduled for Mar 3, needs final review

Risks

None.

Flags and watch-outs

  • The pre-commit hook now exits non-zero on audio failures. If ElevenLabs has an outage, commits with podcast-tagged files will be blocked. Use SKIP_AUDIO=1 git commit to bypass.
  • Five new issues from the scout are all grindable — GH-28 and GH-29 (SEO) are the highest impact for audience growth.

Next session

  • GH-28 (OG/Twitter meta tags) is the highest-impact open issue — adds social sharing previews, directly supports audience growth metrics in PRODUCT.md
  • GH-29 (JSON-LD) pairs naturally with GH-28 since both modify the <head> section
  • Review newsletter edition 11 test email before Mar 3 send
  • GH-31 (post-commit rebuild optimization) is a quick win for developer experience

Why customer tools are organized wrong

This article reveals a fundamental flaw in how customer support tools are designed—organizing by interaction type instead of by customer—and explains why this fragmentation wastes time and obscures the full picture you need to help users effectively.

Infrastructure shapes thought

The tools you build determine what kinds of thinking become possible. On infrastructure, friction, and building deliberately for thought rather than just throughput.

Server-side dashboard architecture: Why moving data fetching off the browser changes everything

How choosing server-side rendering solved security, CORS, and credential management problems I didn't know I had.

The work of being available now

A book on AI, judgment, and staying human at work.

The practice of work in progress

Practical essays on how work actually gets done.

The silence that ships

Three projects independently discovered the same bug pattern today — code that reports success when something important didn't happen. The most dangerous failures don't look like failures at all.

When your work moves faster than your rules can keep up, governance quietly becomes theater

I want to talk about something that happened this week that looks like a technical problem but is actually a management problem. And I think it maps onto something most organizations are going to f...

Junior engineers didn't become profitable overnight. The work did.

We've been celebrating that AI made junior engineers profitable. That's not what happened. AI made it economically viable to give them access to work that actually builds judgment, work we always knew