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.

posts42
stackTS, Rust, Go
focusInfra, Privacy
LATEST POSTS
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, 2026todayopencode, 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, 202611d agoai-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, 202614d agoai-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, 202637d agoai-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, 202643d agoai-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, 2026Feb 18, 2026plannable, 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, 2026Feb 16, 2026arcinfer, 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, 2026Feb 12, 2026arcinfer, 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, 2026Feb 8, 2026arcinfer, 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, 2026Feb 4, 2026arcinfer, 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, 2026Feb 1, 2026arcinfer, 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, 2026Jan 29, 2026arcinfer, 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, 2026Jan 26, 2026arcinfer, 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, 2026Jan 23, 2026arcinfer, 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, 2026Jan 20, 2026arcium, 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, 2025Dec 8, 2025AI, 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, 2025Nov 15, 2025rust, 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, 2025Sep 10, 2025ai-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, 2025Aug 22, 2025mcp, 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, 2025Jun 20, 2025e2e-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, 2025Mar 15, 2025agentful, 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, 2025Feb 1, 2025e2e-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, 2025Jan 25, 2025e2e-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, 2025Jan 12, 2025e2e-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, 2025Jan 5, 2025e2e-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, 2024Dec 15, 2024e2e-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, 2024Dec 1, 2024e2e-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, 2024Nov 22, 2024e2e-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, 2024Nov 15, 2024e2e-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, 2024Nov 8, 2024e2e-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, 2024Nov 1, 2024e2e-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, 2024Oct 22, 2024e2e-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, 2024Oct 15, 2024e2e-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, 2024Oct 10, 2024healthcare, 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, 2024Aug 3, 2024multi-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, 2024Jul 20, 2024kubernetes, 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, 2024Jun 15, 2024logarr, 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, 2024Apr 15, 2024testing, 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, 2023Nov 16, 2023postgresql, 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, 2023Jun 8, 2023api-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, 2022Sep 14, 2022logging, 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, 2022Apr 28, 2022docker, docker-compose, developer-experience, local-dev, infrastructure