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.
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.
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.
ArcInfer Build Journal
A chronological log of what I built, in what order, and what I learned at each step.
Arcium Developers Docs - RAG Notes
Condensed, query-friendly notes from Arcium's official documentation for debugging ArcInfer.
Setup, Deploy, and Operate
Quick start guide, prerequisites, localnet dev loop, devnet deployment, and critical implementation notes for ArcInfer.
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.
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.
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.
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.
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.
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.
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.
Building ai-hooks: A Universal Hook Engine for AI Coding Tools
How I built an open-source framework that lets you write policy once and enforce it across every AI coding tool — Claude Code, Cursor, Codex, Gemini CLI, and more.
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.
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.
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.
Inline Data Seeding: The .as() Method
Seed test data inline before page interactions - the .as() method that makes 2-line tests possible.
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.
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.
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.
One-Line Cleanup: The destroyWithAllDeps Pattern
Safe cascade deletion with proper ordering. Ensure no orphaned data remains in your test database.
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.
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.
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.
The Foundation: TestDefaults & TestDataHelper
Building the random data generation foundation with TestDefaults and cleanup management with TestDataHelper.
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.
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.
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.
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.
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.
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%.