Frederick Douglas Pearce

From Earth Science to AI Engineering — Scientific rigor, production ML, human-centered AI

prof_pic.jpg

Portland, OR 97212

I’m an ML and AI engineer and data scientist with a PhD from MIT who has a lifelong drive to understand how the world works: drawn to the patterns hiding in data, skilled at building the systems that distill signal from noise, and committed to bridging the gap between technical know-how and the people it informs. That drive has led from imaging subducting tectonic plates to understand the forces that shape the Earth and drive damaging earthquakes, through building the data foundation behind the U.S. healthcare system’s shift from pay-for-quantity to pay-for-quality, to deploying autonomous AI pipelines that evaluate the sustainability efforts of global sportswear brands. The domain changes, but the approach hasn’t: find a hard, ambiguous question, build a system that answers it honestly, and communicate results that matter to the people who have to act on them.

The emergence of AI coding tools, and Claude Code in particular, poured fuel on my problem-solving fire. I’ve been building with it daily since soon after it launched, and what started as curiosity about a new tool quickly became something more: a focused effort to understand not just how to use AI effectively, but how to measure whether it is being used well. That question has produced several production systems, and recently led me to complete Anthropic’s AI Fluency Framework certification, a formal grounding in the research behind what effective human-AI collaboration actually looks like.

The project at the center of that commitment is the AI Fluency Suite, two complementary open-source tools for evaluating AI effectiveness at both layers of the engagement stack: autonomous agents and the humans collaborating with them. AgentFluent (PyPI-published, v1.1) works with both Claude Code and the Claude Agent SDK, scoring agent configuration against Anthropic’s documented best practices across four dimensions (i.e. description, tools, model, and prompt) and correlating observed behavior (e.g. retry loops, tool errors, token spend) back to specific gaps with prioritized recommendations. The table below is agentfluent config-check grading the five agents in my own Claude Code setup — a 0–100 score for each, broken out by dimension, with the recommendations still open on each one.

Terminal table titled Agent Configuration Scores, listing five agents -- architect, marketer, pm, anthropic-research and candidate-verifier -- each scored from 90 to 100 out of 100, broken out across description, tools, model and prompt columns, with a count of outstanding recommendations for each.
agentfluent config-check, run against my own agent definitions.

CodeFluent (VS Code extension and web app) evaluates both human-AI conversation quality and project configuration: scoring 11 fluency behaviors and 6 coding interaction patterns against Anthropic’s published research, while helping users discover and activate the full range of Claude Code features that make collaboration more effective.

My early development approach with Claude Code used a hand-run agent team: a pm agent scoped the work, an architect agent reviewed the design, and Claude wrote the code, but every handoff waited on me to remember it. claude-code-loop makes that team a repeatable process. It’s a Claude Code plugin that works through a GitHub issue backlog the way a human dev team would, with the same roles and handoffs: the pm scopes each issue, the architect reviews the plan before any code is written, independent agents review the diff, and a QA agent that didn’t write the code checks it against the issue’s acceptance criteria. Every step runs in order, every time, and no agent checks its own work, so I trust the output more. Its state lives on disk, so a new session picks up where the last one stopped. I’m the team’s owner: I approve plans and merges and settle what the agents can’t. That’s where I think software development is heading, with developers as owners of agent teams modeled on human ones and accountable for what those teams produce.

The Sportswear ESG News Classifier is a fully automated production AI and ML pipeline monitoring ESG news for 50+ global sportswear brands. A hybrid architecture, two ML pre-filter classifiers ahead of Claude-based ESG scoring, cuts inference costs by roughly 10% while preserving recall, and a RAG pipeline with OpenAI embeddings and pgvector retrieves article passages as traceable evidence for every classification. The pipeline runs autonomously at roughly $0.15/day, publishing a live Sustainability Scorecard to this site.

The Sustainability Scorecard, ranking global sportswear brands by an overall ESG score alongside separate environmental, social, governance and digital transformation columns derived from classified news coverage.
The Sustainability Scorecard, republished daily as new coverage is classified.

The US Presidential Voting Data API takes a different angle: two centuries of Electoral College and popular vote data, reconciled from primary sources into a live public API and a data explorer for browsing it by election or by state. Most people have a general sense of how U.S. presidential elections work, but the historical record tells a more nuanced story, including how often the two measures have diverged and what a more balanced approach to determining the winner might look like. The project is as much a data journalism exercise as an engineering one, and exactly the kind of question I have always been drawn to.

Terminal output of a curl request to the API's 2000 election summary: George W. Bush with 271 electoral votes and 50,456,169 popular votes took office; Albert Gore Jr. with 266 electoral votes and 50,996,062 popular votes did not. A note below reads that 271 of 538 electors were appointed and the runner-up led the popular vote by 539,893, followed by the response's coverage and license provenance.
The API's summary of 2000, one of five elections where the Electoral College and the popular vote disagreed.

Translating my projects into accessible writing is a core part of the mission. The blog carries three active series: one documenting the Claude Code session format powering the AI Fluency Suite; “Counted, Not Assumed,” which examines what the presidential election data actually shows when you go back to the primary sources; and “A Cross-Functional Team of One,” on giving coding agents the structure human teams rely on, with claude-code-loop as the working example.

My earlier career spans novel algorithm development and quantitative modeling in seismic imaging research at MIT, healthcare data science supporting CMS’s Quality Payment Program at Semanticbits, and security anomaly detection at Tripwire. I’m based in Portland, OR and open to remote or hybrid roles at startups and mid-size companies where technical depth and clear thinking about AI’s human impact both matter.

activity