<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michael F</title>
    <description>The latest articles on DEV Community by Michael F (@firstprimal).</description>
    <link>https://dev.to/firstprimal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4212616%2Fb9bb2998-4c45-4d01-a264-9dbb81f22c18.png</url>
      <title>DEV Community: Michael F</title>
      <link>https://dev.to/firstprimal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/firstprimal"/>
    <language>en</language>
    <item>
      <title>ClaudeArena, one week after my first post: what the data showed, and what I changed</title>
      <dc:creator>Michael F</dc:creator>
      <pubDate>Wed, 04 Nov 2026 17:58:38 +0000</pubDate>
      <link>https://dev.to/firstprimal/claudearena-one-week-after-my-first-post-what-the-data-showed-and-what-i-changed-4oil</link>
      <guid>https://dev.to/firstprimal/claudearena-one-week-after-my-first-post-what-the-data-showed-and-what-i-changed-4oil</guid>
      <description>&lt;p&gt;On 28 October I posted about &lt;strong&gt;ClaudeArena&lt;/strong&gt;, the free practice engine I built for Anthropic's Claude Certified Architect exams (CCAR-F and CCAR-P). Then people started using it, and real usage turned out to be a much better reviewer than I am.&lt;/p&gt;

&lt;p&gt;In the first week: 67 sessions from visitors without an account, 14 new callnames, and a handful of people who used up all 120 free questions in a day. Small numbers, but enough to learn from.&lt;/p&gt;

&lt;h3&gt;
  
  
  The data pointed at the hardest topics
&lt;/h3&gt;

&lt;p&gt;The site counts right and wrong answers per exam objective. These are anonymous daily totals with nothing about who answered. The lowest-scoring Foundations objectives right now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixing truncated structured output: &lt;strong&gt;62%&lt;/strong&gt; right&lt;/li&gt;
&lt;li&gt;Tool use and &lt;code&gt;tool_choice&lt;/code&gt; for structured output: &lt;strong&gt;65%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Parallel tool calls in one turn: &lt;strong&gt;66%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Session resumption and forking: &lt;strong&gt;66%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Agentic loop control and safety bounds: &lt;strong&gt;68%&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Iterative refinement workflows: &lt;strong&gt;68%&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a few hundred answers, so I wouldn't read too much into any single line. What stands out is the pattern: most of these are about &lt;strong&gt;constraining and sequencing an agent&lt;/strong&gt;, not remembering a fact. That matches what people say about the real exam. The facts are the easy part, and the judgment calls are not.&lt;/p&gt;

&lt;p&gt;At the other end, a few objectives score over 90%. That probably means their wrong options are too easy to spot, so those are next in line for rework.&lt;/p&gt;

&lt;h3&gt;
  
  
  "You chose B"
&lt;/h3&gt;

&lt;p&gt;When you got a question wrong, the site showed the right answer and the explanation, but never &lt;em&gt;your&lt;/em&gt; answer. And the trap you fell for is the thing you most need to understand.&lt;/p&gt;

&lt;p&gt;Now the correction says "You chose B" above the right answer, and the results review shows both. It's a small change, and one I should have made on day one.&lt;/p&gt;

&lt;p&gt;The site also counts &lt;strong&gt;which wrong option&lt;/strong&gt; people pick, anonymously. Once there's a month of data, I want to publish a "where people struggle" page built from real answers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phone first, because that's where people study
&lt;/h3&gt;

&lt;p&gt;A review at phone width was humbling. The header and menu took about 40% of the screen, and the start button sat at the bottom of a 3,000-pixel setup page.&lt;/p&gt;

&lt;p&gt;What changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Focus mode&lt;/strong&gt; during a session: the header folds into one slim bar with progress, timer and exit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick start:&lt;/strong&gt; a 10-question practice button right under the exam choice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your last settings are remembered&lt;/strong&gt; on your device&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A one-row menu&lt;/strong&gt; on phones, and shorter intros&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The leaderboard bug that wasn't a bug
&lt;/h3&gt;

&lt;p&gt;The rule was: finish a full exam while signed in and you're on the board. On a quiet board, that put someone who answered 5 of 60 questions in first place, with a 0% run in second. Technically correct, and terrible.&lt;/p&gt;

&lt;p&gt;Now &lt;strong&gt;only full exams that reach the 72% practice target go on the leaderboard&lt;/strong&gt;. A run below that still counts for your own progress, XP and objective scores. It just doesn't take a place. Medals already worked this way, so the whole site now follows one rule: the leaderboard shows what you cleared, not that you showed up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exam guide vs today, rebuilt
&lt;/h3&gt;

&lt;p&gt;This is the change I care most about.&lt;/p&gt;

&lt;p&gt;The exam is built from its &lt;strong&gt;exam guide&lt;/strong&gt;, and the CCAR-F guide is version 1.0 from July 2026. Claude Code, the Agent SDK and the API kept shipping after that. If you study from today's documentation, some of it won't match the answer the exam marks right. If you study only the guide, a few things you learn are already out of date at work.&lt;/p&gt;

&lt;p&gt;So the site has two jobs: teach the answer the exam expects, &lt;em&gt;and&lt;/em&gt; show where the real tools have moved on. That's what the &lt;strong&gt;Exam guide vs today&lt;/strong&gt; page is for, and this week I rebuilt it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Three columns:&lt;/strong&gt; &lt;em&gt;Topic&lt;/em&gt;, &lt;em&gt;Exam guide (July 2026)&lt;/em&gt; and &lt;em&gt;Today&lt;/em&gt;, so you see how the guide describes it next to how it works now&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every change is dated&lt;/strong&gt; from Anthropic's own release notes: the Claude Code changelog, the Agent SDK changelog and the Claude Platform release notes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Changes that came before the guide are marked as such.&lt;/strong&gt; The guide still teaches its own version, so that's still the exam answer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only topics the guide actually teaches.&lt;/strong&gt; Anything the guide never covers isn't an exam gap, so it moved to "Beyond the exam guide" notes on the study pages. Foundations is down to 16 rows, and every one matters on exam day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Forcing a tool.&lt;/strong&gt; &lt;em&gt;Guide:&lt;/em&gt; &lt;code&gt;tool_choice&lt;/code&gt; &lt;code&gt;"any"&lt;/code&gt; or a named tool forces a tool call. &lt;em&gt;Today:&lt;/em&gt; Opus 5.5 (since 22 Sept) and Sonnet 5.5 (since 28 Sept) reject it with a 400 error, so you use &lt;code&gt;auto&lt;/code&gt; with strict tool use or structured outputs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The subagent tool.&lt;/strong&gt; &lt;em&gt;Guide:&lt;/em&gt; &lt;code&gt;Task&lt;/code&gt;. &lt;em&gt;Today:&lt;/em&gt; &lt;code&gt;Agent&lt;/code&gt;, since Claude Code 2.1.69 in March 2026, which is before the guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subagents spawning subagents.&lt;/strong&gt; &lt;em&gt;Guide:&lt;/em&gt; the coordinator spawns every subagent (hub-and-spoke). &lt;em&gt;Today:&lt;/em&gt; up to 3 layers below the main agent by default, since Claude Code 2.1.219 (24 July 2026).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When subagents run.&lt;/strong&gt; &lt;em&gt;Guide:&lt;/em&gt; several &lt;code&gt;Task&lt;/code&gt; calls in one response run in parallel. &lt;em&gt;Today:&lt;/em&gt; subagents run in the background by default, since Claude Code 2.1.198 (1 July 2026).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule of thumb: &lt;strong&gt;answer the exam the guide's way, and know today's way for real work.&lt;/strong&gt; The practice questions always follow the guide. Where today differs, the explanation adds one sentence starting with "Today, ..." so you learn both, and you're never marked wrong for answering the way the exam will mark you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Studying, not just testing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;usage guide&lt;/strong&gt; from my second post now lives on the site: read a domain, practise it straight away, drill your weakest objectives, then sit timed mocks until you're steady&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2-week and 4-week study plans&lt;/strong&gt; for Foundations, day by day. They're a suggested order, not a gate&lt;/li&gt;
&lt;li&gt;Signed in, your account page lists your &lt;strong&gt;last sessions&lt;/strong&gt;, so you can see whether you're actually improving&lt;/li&gt;
&lt;li&gt;The site now says &lt;strong&gt;difficulty&lt;/strong&gt; for Normal / Hard / Expert, instead of "mode"&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  If you're booking an exam
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The cancel/reschedule window is 48 hours.&lt;/strong&gt; The exam guides say 24, but Pearson VUE's page for Anthropic exams says 48, and late changes forfeit the fee&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CCAR-P is changing.&lt;/strong&gt; Anthropic publishes updated exam guides on &lt;strong&gt;17 November&lt;/strong&gt;, and the Professional exam changes on &lt;strong&gt;7 December&lt;/strong&gt;. I'll read the new guide the day it's out and update the Professional questions and study pages before 7 December. Exam guide vs today will get a Professional table built the same way&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A few technical details
&lt;/h3&gt;

&lt;p&gt;Page errors are now &lt;strong&gt;counted, not described&lt;/strong&gt;. When something fails in a visitor's browser, only a fixed error code (like &lt;code&gt;SESSION_CHECK_FAILED&lt;/code&gt;) is sent and counted per day. There's no message, no user and no IP, and the counts expire after 90 days. A console nobody reads isn't a log, but I didn't want a log that could hold personal data either.&lt;/p&gt;

&lt;p&gt;The Cloudflare &lt;code&gt;workers.dev&lt;/code&gt; address kept switching itself back on after every deploy, because Wrangler re-enables it unless &lt;code&gt;wrangler.toml&lt;/code&gt; says &lt;code&gt;workers_dev = false&lt;/code&gt;. Now it does, and a build check fails if anyone removes that line.&lt;/p&gt;

&lt;p&gt;That check joins the others that run before every deploy, guarding question fairness, contrast, privacy and page titles. There are 70 of them now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try it
&lt;/h3&gt;

&lt;p&gt;Still free and unofficial: 950+ questions, 120 free practice questions a day without an account, and an 8-question demo if you just want a look.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://claudearena.dev" rel="noopener noreferrer"&gt;https://claudearena.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've sat the real exam, I'd love to know two things: how it compared to Hard and Expert here, and which topic surprised you most.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>ClaudeArena Usage Guide</title>
      <dc:creator>Michael F</dc:creator>
      <pubDate>Fri, 30 Oct 2026 16:40:37 +0000</pubDate>
      <link>https://dev.to/firstprimal/claudearena-usage-guide-4b84</link>
      <guid>https://dev.to/firstprimal/claudearena-usage-guide-4b84</guid>
      <description>&lt;p&gt;&lt;em&gt;(Optimized for CCAR-F and CCAR-P)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ClaudeArena is a free, focused practice platform for the Claude Certified Architect exams (Foundations and Professional). This guide shows the most effective way to use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Create a free callname (recommended)
&lt;/h3&gt;

&lt;p&gt;Creating a callname is &lt;strong&gt;optional but strongly recommended&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;It unlocks progress tracking, badges, medals, leaderboard ranking, and the ability to save results across devices — all of which help you train more efficiently and clearly see your improvement over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Work through the Study Guide domain by domain
&lt;/h3&gt;

&lt;p&gt;Go to &lt;strong&gt;Study Guide&lt;/strong&gt; and study one domain at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For each domain:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the full domain page carefully (including any amber &lt;strong&gt;“Exam guide vs today”&lt;/strong&gt; notes inside it).&lt;/li&gt;
&lt;li&gt;Immediately click &lt;strong&gt;“Practise Domain X”&lt;/strong&gt; at the bottom.&lt;/li&gt;
&lt;li&gt;Do the practice in &lt;strong&gt;Normal&lt;/strong&gt; mode.&lt;/li&gt;
&lt;li&gt;After the session, review the &lt;strong&gt;Score by objective&lt;/strong&gt; breakdown and click &lt;strong&gt;“Practice my weakest objectives”&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Drill the weak objectives until they improve.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When to move to the next domain:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Aim for roughly &lt;strong&gt;75%+ on the domain&lt;/strong&gt; and no major weak objectives left before continuing. Once you have completed all domains this way, proceed to step 3.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Review the full “Exam guide vs today” list
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;(Only after finishing all domains)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use this as a final clarification reference — &lt;strong&gt;do not start here&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Move to mixed practice and higher difficulty
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Do mixed-domain sessions.&lt;/li&gt;
&lt;li&gt;Start in &lt;strong&gt;Normal&lt;/strong&gt; mode.&lt;/li&gt;
&lt;li&gt;Move to &lt;strong&gt;Hard&lt;/strong&gt; mode once you can consistently score above &lt;strong&gt;75%&lt;/strong&gt; in Normal.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Expert&lt;/strong&gt; mode only if you want extra challenge.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Full timed mock exams
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Switch to &lt;strong&gt;Full exam mode&lt;/strong&gt; (always timed, 120 minutes).&lt;/li&gt;
&lt;li&gt;After every full mock, review domain + objective scores and immediately drill the weakest objectives again.&lt;/li&gt;
&lt;li&gt;Repeat until you are consistently solid in &lt;strong&gt;Hard&lt;/strong&gt; mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Final readiness check
&lt;/h3&gt;

&lt;p&gt;When you are comfortably scoring well in &lt;strong&gt;Hard&lt;/strong&gt; mode on full mocks and your weakest objectives are under control, you &lt;strong&gt;should&lt;/strong&gt; be ready to book the real exam.  &lt;/p&gt;

&lt;p&gt;(No practice score can guarantee a pass on the actual scaled exam.)&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Simple daily loop (after initial study):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Weak objectives → short drill → longer mixed/full session → review mistakes.&lt;/p&gt;




&lt;p&gt;This approach keeps the focus on understanding first, then systematically closing gaps at both domain and objective level - the most efficient path to exam readiness on ClaudeArena - &lt;a href="https://claudearena.dev" rel="noopener noreferrer"&gt;https://claudearena.dev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>claude</category>
    </item>
    <item>
      <title>I built a free practice engine for Anthropic’s Claude Certified Architect exams</title>
      <dc:creator>Michael F</dc:creator>
      <pubDate>Wed, 28 Oct 2026 20:21:57 +0000</pubDate>
      <link>https://dev.to/firstprimal/i-built-a-free-practice-engine-for-anthropics-claude-certified-architect-exams-i4h</link>
      <guid>https://dev.to/firstprimal/i-built-a-free-practice-engine-for-anthropics-claude-certified-architect-exams-i4h</guid>
      <description>&lt;p&gt;I sat the Claude Certified Architect - Foundations exam (CCAR-F) in September and passed.&lt;/p&gt;

&lt;p&gt;Dedicated prep time was only a few hours. Not because the exam is easy - there just wasn’t much realistic material to practice on. Anthropic provides a handful of sample questions and no real practice exam.&lt;/p&gt;

&lt;p&gt;The exam is mostly judgment calls: when an agent should stop, how to isolate subagent context, which tool restrictions actually prevent a bad outcome, that kind of thing. Reading the docs helps, but it doesn’t give you the reps.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;ClaudeArena&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it includes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;950+ original scenario questions for both Foundations (CCAR-F) and Professional (CCAR-P)&lt;/li&gt;
&lt;li&gt;Questions tagged to individual exam objectives (not just domains)&lt;/li&gt;
&lt;li&gt;A “drill my weak spots” mode that builds short sessions from the objectives you’re weakest on&lt;/li&gt;
&lt;li&gt;Full timed mock exams in the real format (60 or 63 questions, 120 minutes)&lt;/li&gt;
&lt;li&gt;Three difficulty levels (Normal, Hard, Expert)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A few technical details
&lt;/h3&gt;

&lt;p&gt;Early on I noticed the longest answer option was correct far too often. I added a build check that tries to beat chance using only the shape of the options (length, punctuation, the one that stands out). Getting that check to pass forced a lot of rewrites.&lt;/p&gt;

&lt;p&gt;Grading happens on the server, so the browser never sees an answer key. No email is required, no analytics, and nothing is loaded from third parties.&lt;/p&gt;

&lt;p&gt;The questions are written with Claude and I built the site with Claude Code. Each question records what its answer rests on (Anthropic’s docs, the exam guide, or established practice). They were re-checked against the current documentation on 14 October and also reviewed independently by a second model.&lt;/p&gt;

&lt;p&gt;There’s also a short page that lists the places where the frozen exam guide and today’s documentation diverge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try it
&lt;/h3&gt;

&lt;p&gt;You can start with an 8-question demo or practice without creating an account (120 questions a day). Everything is free and unofficial.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://claudearena.dev" rel="noopener noreferrer"&gt;https://claudearena.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve taken the real exam, I’d be interested to hear how the difficulty compares.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
