main*
WELCOME.md

Justin Scroggins

Infrastructure โ†’ SDET & Automation โ†’ Software Developer

Privacy enthusiast. Building censorship-resistant systems. Breaking things to understand them. Currently obsessed with distributed systems and making the web more decentralized.

posts43
stackTS, Rust, Go
focusInfra, Privacy
โ–ธLATEST POSTS
โ–ธci-cd-control-planes-ai.md

CI/CD Platforms Are Becoming the AI Control Plane

In the age of AI agents, CI/CD is no longer just where code gets built. It is where intent, identity, policy, feedback, and deployment all meet.

June 29, 2026โ”‚todayโ”‚ci-cd, github-actions, bitbucket, ai-agents, devops, control-plane
โ–ธkimi-k2-max-opencode-local-delegation.md

Kimi K2.6 Max in OpenCode With Devcontainers and Local Ollama Workers

Kimi K2.6 Max just landed, and my early OpenCode testing with a devcontainer-first workflow plus background delegation to local Ollama workers is promising enough that it feels like a real glimpse of where hybrid AI coding stacks are headed.

April 20, 2026โ”‚Apr 20, 2026โ”‚opencode, kimi, ollama, devcontainers, ai-agents, fullstack, local-models
โ–ธai-hooks-guardrails-for-coding-agents.md

Building ai-hooks: Guardrails for AI Coding Agents

The real challenge with AI coding agents is not code generation. It is making sure they act with the right product context, boundaries, and feedback loops.

April 9, 2026โ”‚Apr 9, 2026โ”‚ai-hooks, ai-agents, guardrails, mcp, developer-tools
โ–ธevaluating-ai-coding-agents-in-practice.md

Evaluating AI Coding Agents in Practice

Most AI agent evaluations are measuring optimism, not capability. Useful evaluation starts with real tasks, explicit acceptance criteria, and a hard look at where autonomy actually breaks down.

April 6, 2026โ”‚Apr 6, 2026โ”‚ai-agents, evaluation, developer-tools, testing, automation
โ–ธai-coding-agents-need-product-context.md

AI Coding Agents Need Product Context, Not Just Repo Context

Giving an AI agent access to your codebase is useful. Giving it access to the why behind the code is what makes it consistently effective.

March 14, 2026โ”‚Mar 14, 2026โ”‚ai-agents, product-management, context-engineering, mcp, plannable
โ–ธstateful-agent-workflows-and-recovery.md

Stateful Agent Workflows and Recovery

The hard part of agent automation is not making the first step happen. It is making the tenth step recover cleanly when the seventh step partially succeeded.

March 8, 2026โ”‚Mar 8, 2026โ”‚ai-agents, automation, workflow-design, reliability, state-machines
โ–ธplannable-autonomous-pm-ai-agent.md

Building Plannable: Autonomous PM-AI Agent

How I'm building an autonomous PM-AI agent that syncs issues, PRs, and conversations from your tools into a semantic knowledge base, with 5 AI agents continuously analyzing your work.

February 18, 2026โ”‚Feb 18, 2026โ”‚plannable, ai-agents, product-management, autonomy
โ–ธArcInfer-Examples-Reference.md

Arcium Examples Reference - Complete Source Code

Complete source code reference from Arcium's official examples repository covering Blackjack, Sealed Bid Auction, Voting, Coinflip, and more.

February 16, 2026โ”‚Feb 16, 2026โ”‚arcinfer, arcium, examples, reference, source-code
โ–ธArcInfer-Build-Journal.md

ArcInfer Build Journal

A chronological log of what I built, in what order, and what I learned at each step.

February 12, 2026โ”‚Feb 12, 2026โ”‚arcinfer, build-journal, tutorial, mpc, solana
โ–ธArcInfer-Arcium-RAG-Notes.md

Arcium Developers Docs - RAG Notes

Condensed, query-friendly notes from Arcium's official documentation for debugging ArcInfer.

February 8, 2026โ”‚Feb 8, 2026โ”‚arcinfer, arcium, documentation, reference
โ–ธArcInfer-Setup-Deploy.md

Setup, Deploy, and Operate

Quick start guide, prerequisites, localnet dev loop, devnet deployment, and critical implementation notes for ArcInfer.

February 4, 2026โ”‚Feb 4, 2026โ”‚arcinfer, deployment, solana, arcium, devnet
โ–ธArcInfer-Quantization-PCA-Classifier.md

Quantization, PCA, and the Classifier

The three modules that sit on top of the math foundation โ€” weight quantization, PCA dimensionality reduction, and the production classifier architecture.

February 1, 2026โ”‚Feb 1, 2026โ”‚arcinfer, quantization, pca, machine-learning, rust
โ–ธArcInfer-Inference-Pipeline.md

The Client-Side Inference Pipeline

Everything in this doc runs on the user's machine, before encryption. It's the bridge between human-readable text and the encrypted 16-dimensional input that enters the MPC cluster.

January 29, 2026โ”‚Jan 29, 2026โ”‚arcinfer, inference, onnx, tokenizers, rust
โ–ธArcInfer-Fixed-Point-Arithmetic.md

Fixed-Point Arithmetic: The Foundation of MPC Inference

How and why I built Q16.16 fixed-point from scratch, what each operation costs in MPC, and why I chose accumulate-then-truncate for dot products.

January 26, 2026โ”‚Jan 26, 2026โ”‚arcinfer, fixed-point, mpc, rust, math
โ–ธArcInfer-Neural-Network-Layers.md

Neural Network Layers: From Linear Algebra to MPC Circuits

Building Linear layers with const generics, the square activation lesson that broke my first test, and why argmax replaces softmax.

January 23, 2026โ”‚Jan 23, 2026โ”‚arcinfer, neural-networks, mpc, rust, square-activation
โ–ธArcInfer-Overview.md

Building ArcInfer: Confidential AI Inference on Arcium's MPC Network

How I built a confidential sentiment analysis demo that runs neural network inference on encrypted data using Arcium's Multi-Party Computation network.

January 20, 2026โ”‚Jan 20, 2026โ”‚arcium, mpc, ai-inference, privacy, solana, rust
โ–ธmcp-servers-ai-agents.md

Building MCP Servers: Giving AI Agents Real Tools

How Model Context Protocol servers let Claude and GPT interact with your actual systems, not just talk about them.

December 8, 2025โ”‚Dec 8, 2025โ”‚AI, MCP, agents, LLM, Claude
โ–ธs3cli-custom-aws-signature.md

Building s3cli: A CLI for Any S3-Compatible Storage

With the CLI vs MCP debate heating up, I built s3cli - a lean CLI tool that AI agents can use directly instead of requiring an MCP server. Here's how it works.

November 15, 2025โ”‚Nov 15, 2025โ”‚rust, cli, s3, cloudflare, backblaze, minio
โ–ธai-tools-universal-engine.md

Building ai-tools: Universal Configuration for AI Coding Tools

How I built an open-source framework that lets you define hooks, MCP servers, agents, skills, and rules once โ€” works across Claude Code, Cursor, Codex, Gemini CLI, and 9 others.

September 10, 2025โ”‚Sep 10, 2025โ”‚ai-tools, open-source, typescript, mcp, guardrails, premierstudio
โ–ธwhat-good-mcp-tools-look-like.md

What Good MCP Tools Look Like

Most MCP tool design problems are not protocol problems. They are interface problems. Good tools are narrow, legible, low-ambiguity, and designed around what models actually do well and badly.

August 22, 2025โ”‚Aug 22, 2025โ”‚mcp, ai-agents, tooling, developer-experience, api-design
โ–ธe2e-testing.md

AI-Powered E2E Testing: Shift-Left with Playwright CLI

A practical series on direct API coverage, fluent seeding, and short UI tests that stay readable under real complexity.

June 20, 2025โ”‚Jun 20, 2025โ”‚e2e-testing, playwright, ai-testing, test-coverage, series, realworld
โ–ธagentful-parallel-agent-orchestration.md

Building Agentful: Parallel Agent Orchestration for Claude Code

How I built a pre-configured development toolkit that orchestrates specialized agents in parallel with inter-agent communication to build features from product specs.

March 15, 2025โ”‚Mar 15, 2025โ”‚agentful, claude-code, ai-agents, mcp, typescript
โ–ธe2e-testing/12-two-line-tests.md

Putting It Together: 2-Line E2E Tests That Stay Honest

The point is not literally two lines. The point is small, readable tests whose setup is deliberate because lower layers already did their jobs.

February 1, 2025โ”‚Feb 1, 2025โ”‚e2e-testing, 2-line-tests, fluent, aaa
โ–ธe2e-testing/11-as-seeding.md

Inline Data Seeding: The .as() Method

Seed test data inline before page interactions - the .as() method that makes 2-line tests possible.

January 25, 2025โ”‚Jan 25, 2025โ”‚e2e-testing, seeding, data-preparation, test-data
โ–ธe2e-testing/10-form-builders.md

Fluent Form Builders: The FormBuilder Pattern

Form builders are the UI-side equivalent of seeding builders: they turn repetitive browser input into a small, readable vocabulary.

January 12, 2025โ”‚Jan 12, 2025โ”‚e2e-testing, form-builders, fluent-interface, automation
โ–ธe2e-testing/09-page-components.md

Page Components: Beyond Simple POM

Once setup is handled elsewhere, page objects can get smaller, clearer, and much more honest about what the browser layer is actually doing.

January 5, 2025โ”‚Jan 5, 2025โ”‚e2e-testing, page-object-model, pom, components
โ–ธe2e-testing/08-more-builders.md

Expanding Coverage: CommentBuilder & UserBuilder

Once setup is local, you need more than one builder. Add user and comment seeding so higher-level API and UI tests stay short and readable.

December 15, 2024โ”‚Dec 15, 2024โ”‚e2e-testing, builder-pattern, comments, users
โ–ธe2e-testing/07-destroywithalldeps.md

One-Line Cleanup: The destroyWithAllDeps Pattern

Safe cascade deletion with proper ordering. Ensure no orphaned data remains in your test database.

December 1, 2024โ”‚Dec 1, 2024โ”‚e2e-testing, cleanup, cascade-delete, teardown
โ–ธe2e-testing/06-withalldeps.md

Builders as Seeding: Replace beforeEach Sprawl with One Line

Once lower-level APIs are covered directly, builders can do what they are actually good at: local, fluent setup for higher-level tests.

November 22, 2024โ”‚Nov 22, 2024โ”‚e2e-testing, builder-pattern, seeding, automation
โ–ธe2e-testing/05-category-builder.md

Negative Cases, Boundary Coverage, and a bugs.md That Actually Helps

Negative tests should not be an afterthought. Split them out, drive them from data, and keep a bug ledger that helps the next person.

November 15, 2024โ”‚Nov 15, 2024โ”‚e2e-testing, api-testing, negative-testing, bugs
โ–ธe2e-testing/04-post-builder.md

Stop Hand-Writing Giant API Specs

Lower-level API coverage gets better when request helpers, validations, types, and scenarios stop living in one giant spec file.

November 8, 2024โ”‚Nov 8, 2024โ”‚e2e-testing, api-testing, data-driven, playwright
โ–ธe2e-testing/03-testdefaults.md

The Foundation: TestDefaults & TestDataHelper

Building the random data generation foundation with TestDefaults and cleanup management with TestDataHelper.

November 1, 2024โ”‚Nov 1, 2024โ”‚e2e-testing, test-data, faker, utilities
โ–ธe2e-testing/02-playwright-setup.md

Installing Playwright and Building Our Test Foundation

Setting up Playwright with TypeScript, configuring projects for API and UI testing, and writing our first baseline test.

October 22, 2024โ”‚Oct 22, 2024โ”‚e2e-testing, playwright, setup, typescript
โ–ธe2e-testing/01-vision.md

Why We're Building a 2-Line E2E Testing Framework

The real problem is not builders. It is giant bespoke API specs, hidden setup in before hooks, and UI tests written without an API-first strategy.

October 15, 2024โ”‚Oct 15, 2024โ”‚e2e-testing, playwright, test-automation, api-testing
โ–ธfhir-api-healthcare-lessons.md

FHIR APIs in Practice: Lessons from Healthcare Interoperability

Building FHIR-compliant APIs taught me more about REST design than any other project. Here's what I learned.

October 10, 2024โ”‚Oct 10, 2024โ”‚healthcare, FHIR, API, interoperability, HIPAA
โ–ธdesigning-multi-tenant-systems-without-regret.md

Designing Multi-Tenant Systems Without Regret

Multi-tenancy problems usually start as small convenience decisions. The systems that age well are the ones that treat tenant boundaries as architecture from day one, not a filter added later.

August 3, 2024โ”‚Aug 3, 2024โ”‚multi-tenancy, architecture, postgresql, backend, saas
โ–ธkubernetes-homelab-gitops.md

Kubernetes Homelab: From Zero to GitOps in a Weekend

Building a production-grade K8s cluster on consumer hardware with ArgoCD, Prometheus, and zero cloud costs.

July 20, 2024โ”‚Jul 20, 2024โ”‚kubernetes, infrastructure, homelab, gitops
โ–ธlogarr-media-server-mission-control.md

Building Logarr: Mission Control for Media Server Stacks

How I built a unified logging, intelligent issue detection, and AI-powered analysis platform for Plex, Jellyfin, Emby, Sonarr, Radarr, and more.

June 15, 2024โ”‚Jun 15, 2024โ”‚logarr, media-server, nestjs, nextjs, postgresql, docker
โ–ธself-healing-e2e-tests.md

From Manual to Autonomous: Building Self-Healing E2E Tests

How I built test suites that fix themselves when UI changes break them, reducing maintenance time by 73%.

April 15, 2024โ”‚Apr 15, 2024โ”‚testing, playwright, automation, SDET
โ–ธzero-downtime-postgres-migrations.md

Zero-Downtime PostgreSQL Migrations in Real Systems

Most database migration outages are self-inflicted. The fix is usually not fancy tooling. It is sequencing, patience, and a strict expand-contract workflow.

November 16, 2023โ”‚Nov 16, 2023โ”‚postgresql, database, migrations, backend, reliability
โ–ธcontract-first-api-testing-openapi.md

Contract-First API Testing with OpenAPI

Hand-written API tests drift for the same reason hand-written docs drift. The contract needs to become the source of truth for coverage, validation, and scenario planning.

June 8, 2023โ”‚Jun 8, 2023โ”‚api-testing, openapi, qa, backend, automation
โ–ธstructured-logging-for-root-cause-analysis.md

Structured Logging for Real Root Cause Analysis

Most logging is optimized for writing, not debugging. Structured logging forces teams to log in a way that makes production problems actually traceable.

September 14, 2022โ”‚Sep 14, 2022โ”‚logging, observability, debugging, backend, distributed-systems
โ–ธdocker-compose-for-real-dev-stacks.md

Docker Compose for Real Development Stacks

Docker Compose is still one of the fastest ways to create a dependable local platform, as long as you treat it like an integration contract instead of a pile of containers.

April 28, 2022โ”‚Apr 28, 2022โ”‚docker, docker-compose, developer-experience, local-dev, infrastructure