<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Todd Schiller</title><link>https://toddschiller.com/</link><description>Human ✘ Artificial Intelligence</description><lastBuildDate>Wed, 03 Jun 2026 00:00:00 -0400</lastBuildDate><item><title>agent-browser-shield June 3 update: 14 new rules and the Chrome Web Store listing</title><link>https://toddschiller.com/blog/agent-browser-shield-june-03-update.html</link><description>14 new rules shipped in agent-browser-shield, now installable from the Chrome Web Store, and using it for daily driving.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Wed, 03 Jun 2026 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-06-03:/blog/agent-browser-shield-june-03-update.html</guid><category>AI</category><category>AI</category><category>agents</category><category>browser security</category><category>prompt injection</category><category>dark patterns</category><category>PixieBrix</category></item><item><title>Introducing agent-browser-shield (alpha): keeping AI agents safe in the browser</title><link>https://toddschiller.com/blog/agent-browser-shield-alpha.html</link><description>Announcing the alpha of agent-browser-shield — a source-available defense layer (also available as an OpenClaw skill) that blocks prompt injection and dark patterns before they reach your agent.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Mon, 01 Jun 2026 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-06-01:/blog/agent-browser-shield-alpha.html</guid><category>AI</category><category>AI</category><category>agents</category><category>browser security</category><category>prompt injection</category><category>PixieBrix</category><category>OpenClaw</category></item><item><title>Letting OpenClaw loose on Boston's open data</title><link>https://toddschiller.com/blog/openclaw-boston-open-data.html</link><description>At the Boston OpenClaw 2026 hackathon, I let an agent autonomously connect to the city's open-data MCP server, devise its own corruption-signal queries on contract data, and package the workflow as a reusable Claude skill.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Sat, 30 May 2026 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-05-30:/blog/openclaw-boston-open-data.html</guid><category>AI</category><category>civic tech</category><category>open data</category><category>AI</category><category>hackathon</category><category>Boston</category></item><item><title>Did Google sneak a local LLM model into Chrome?</title><link>https://toddschiller.com/blog/chrome-local-ai-linkedin-filter.html</link><description>A response to FUD around Chrome's new Local AI models, plus a demo using PixieBrix + Local AI to filter my LinkedIn feed.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 26 May 2026 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-05-26:/blog/chrome-local-ai-linkedin-filter.html</guid><category>Browser Extensions</category><category>AI</category><category>Chrome</category><category>browser extensions</category><category>PixieBrix</category><category>local AI</category></item><item><title>ACH as Bayesian reasoning in disguise</title><link>https://toddschiller.com/blog/ach-bayesian-reasoning.html</link><description>The Analysis of Competing Hypotheses worksheet is naive Bayes with a friendlier UI. An interactive artifact to explore.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Sun, 24 May 2026 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-05-24:/blog/ach-bayesian-reasoning.html</guid><category>Reasoning</category><category>ACH</category><category>Bayesian reasoning</category><category>analysis</category><category>epistemics</category></item><item><title>Making AI coding work for enterprise-grade browser extensions</title><link>https://toddschiller.com/blog/ai-coding-browser-extensions.html</link><description>Lessons learned using AI coding tools to build PixieBrix, an enterprise-grade browser extension with a complex architecture spanning content scripts, background workers, and React UI.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Fri, 27 Feb 2026 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-02-27:/blog/ai-coding-browser-extensions.html</guid><category>Browser Extensions</category><category>browser extensions</category><category>AI</category><category>speaking</category><category>transcript</category></item><item><title>Speaking at AI Coding Summit 2026: making AI coding work for enterprise-grade browser extensions</title><link>https://toddschiller.com/blog/ai-coding-summit-2026.html</link><description>&lt;p&gt;I'll be speaking at the
&lt;a href="https://aicodingsummit.com/"&gt;AI Coding Summit&lt;/a&gt; on February 26, 2026.&lt;/p&gt;
&lt;p&gt;My talk, &lt;strong&gt;Making AI Coding Work for Enterprise-Grade Browser Extensions&lt;/strong&gt;,
covers the unique challenges of applying AI coding workflows to browser
extension development.&lt;/p&gt;
&lt;p&gt;Mainstream &amp;quot;vibe coding&amp;quot; workflows weren't designed for browser extensions.
Extensions have distributed architectures spanning tabs …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Wed, 25 Feb 2026 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2026-02-25:/blog/ai-coding-summit-2026.html</guid><category>Browser Extensions</category><category>browser extensions</category><category>AI</category><category>speaking</category></item><item><title>The agentic opportunity: value, not hours</title><link>https://toddschiller.com/blog/agentic-value-not-hours.html</link><description>Focusing on hours (or FTEs) misses the point of the agentic opportunity.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Sun, 26 Oct 2025 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2025-10-26:/blog/agentic-value-not-hours.html</guid><category>AI</category><category>AI</category><category>agentic</category><category>PixieBrix</category><category>enterprise</category></item><item><title>Co-pilots, not chatbots: highlights from a TaskUs Forward webinar</title><link>https://toddschiller.com/blog/operationalizing-ai-at-scale-highlights.html</link><description>Highlights from the September 2024 TaskUs Forward webinar with Manish Pandya and host Alp Uguray on what it takes to operationalize generative AI in CX.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Mon, 02 Sep 2024 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2024-09-02:/blog/operationalizing-ai-at-scale-highlights.html</guid><category>Machine Learning</category><category>webinar</category><category>pixiebrix</category><category>generative ai</category><category>llm</category><category>customer experience</category><category>taskus</category></item><item><title>AI frees humans to be more human: highlights from Success League Radio</title><link>https://toddschiller.com/blog/generative-ai-customer-success-highlights.html</link><description>A few moments from my conversation with Kristen Hayer on Success League Radio about where generative AI fits in customer success.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 19 Sep 2023 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2023-09-19:/blog/generative-ai-customer-success-highlights.html</guid><category>Machine Learning</category><category>podcast</category><category>pixiebrix</category><category>generative ai</category><category>llm</category><category>customer success</category></item><item><title>Compliance, low-code, and the user as hero: highlights from Drata's podcast</title><link>https://toddschiller.com/blog/compliance-uncomplicated-highlights.html</link><description>Highlights from my conversation with Drata's Helina Medhin and Arlo Guthrie on Compliance Uncomplicated about low-code, AI, user experience, and SOC 2.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Thu, 09 Mar 2023 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2023-03-09:/blog/compliance-uncomplicated-highlights.html</guid><category>Browser Extensions</category><category>podcast</category><category>pixiebrix</category><category>low-code</category><category>compliance</category><category>user experience</category></item><item><title>Everything is UI/UX: highlights from Masters of Automation</title><link>https://toddschiller.com/blog/masters-of-automation-2022-highlights.html</link><description>A few moments from my August 2022 conversation with Alp Uguray on Masters of Automation about PixieBrix, low-code, and putting humans at the center of the future of work.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 09 Aug 2022 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2022-08-09:/blog/masters-of-automation-2022-highlights.html</guid><category>Browser Extensions</category><category>podcast</category><category>pixiebrix</category><category>low-code</category><category>user experience</category><category>browser extensions</category><category>automation</category></item><item><title>A brief history of browser extensibility</title><link>https://toddschiller.com/blog/history-browser-extensibility.html</link><description>&lt;p&gt;Web browsers are the modern operating system.
Google's &lt;a href="https://en.wikipedia.org/wiki/Chrome_OS"&gt;Chrome OS&lt;/a&gt;, an operating
system that runs the Chrome Browser
exclusively, &lt;a href="https://arstechnica.com/gadgets/2021/02/the-worlds-second-most-popular-desktop-operating-system-isnt-macos-anymore/"&gt;is now the second most popular desktop operating system&lt;/a&gt;.
Additionally, the rise of &lt;a href="https://www.electronjs.org/"&gt;Electron&lt;/a&gt; and similar
cross-platform frameworks means that many of the applications we use every day
(e.g., Slack …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Thu, 04 Mar 2021 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2021-03-04:/blog/history-browser-extensibility.html</guid><category>Browser Extensions</category><category>web browsers</category><category>browser extensions</category><category>history</category></item><item><title>7 bite-sized tips for reliable web automation and scraping selectors</title><link>https://toddschiller.com/blog/reliable-web-scrapers.html</link><description>&lt;p&gt;If you're like most developers, you've probably
encountered &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors"&gt;Cascading Style Sheet (CSS) selectors&lt;/a&gt;
for styling webpages.&lt;/p&gt;
&lt;p&gt;For example, the following CSS rule combines a paragraph element selector &lt;code&gt;p&lt;/code&gt;
with a class name selector &lt;code&gt;.lead&lt;/code&gt; to set the font size:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;lead&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;We can mix-and-match CSS selectors to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Thu, 03 Dec 2020 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2020-12-03:/blog/reliable-web-scrapers.html</guid><category>Browser Extensions</category><category>web browsers</category><category>automation</category><category>scraping</category></item><item><title>The PixieBrix manifesto: web customization for the masses</title><link>https://toddschiller.com/blog/pixiebrix-manifesto.html</link><description>&lt;p&gt;My freshman year of college, I interned as an &amp;quot;equities analyst&amp;quot;. What this
meant in practice was that I was supposed to look up numbers in a terminal, and
then type them into an Excel spreadsheet. The software provider hadn't gotten
around to implementing export for the data yet.&lt;/p&gt;
&lt;p&gt;Not …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Wed, 02 Sep 2020 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2020-09-02:/blog/pixiebrix-manifesto.html</guid><category>Browser Extensions</category><category>web browsers</category><category>customization</category><category>browser extensions</category></item><item><title>Three interviewing mistakes that sabotage your diversity and inclusion initiatives</title><link>https://toddschiller.com/blog/diversity-inclusion-mistakes.html</link><description>Learn the three interviewing mistakes that sabotage your diversity and inclusion initiatives and how to prevent them</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Thu, 25 Jun 2020 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2020-06-25:/blog/diversity-inclusion-mistakes.html</guid><category>Talent Acquisition</category><category>talent acquisition</category><category>hiring</category></item><item><title>Effective debugging: the observe-hypothesize-test cycle</title><link>https://toddschiller.com/blog/debugging-steps.html</link><description>&lt;p&gt;Have you ever been stumped by a bug? Overwhelmed? Did it take hours, days, or
weeks to solve? How did you finally manage
to get yourself unstuck? Did you just get lucky, or was it skill?&lt;/p&gt;
&lt;p&gt;I certainly didn’t always follow a formal debugging process. My first
programming gig …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Wed, 02 Jan 2019 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2019-01-02:/blog/debugging-steps.html</guid><category>Software Engineering</category><category>debugging</category><category>software engineering</category></item><item><title>The MBA guide to software development</title><link>https://toddschiller.com/blog/the-mba-guide-to-software-development.html</link><description>This guide is for executives, managers, and entrepreneurs who want to make better strategic decisions about software. It’s designed to give you a baseline conceptual understanding of the software development process to help you buy software, build software, and interact with software development teams.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Wed, 04 May 2016 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2016-05-04:/blog/the-mba-guide-to-software-development.html</guid><category>Software Engineering</category><category>software development</category><category>software engineering</category></item><item><title>Markov logic networks for fun and profit: NBA playoffs edition</title><link>https://toddschiller.com/blog/markov-logic-network-nba-playoffs.html</link><description>&lt;p&gt;Markov Logic Networks (MLNs) are a tool for capturing your beliefs
about the world and then calculating the likelihood of outcomes based
on those beliefs. Since it's the NBA playoffs, let's use MLNs and our beliefs
about the NBA to predict the 2016 NBA championship.&lt;/p&gt;
&lt;h2&gt;Specific Beliefs (Predicates)&lt;/h2&gt;
&lt;p&gt;To get …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 19 Apr 2016 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2016-04-19:/blog/markov-logic-network-nba-playoffs.html</guid><category>Machine Learning</category><category>Markov Logic Networks</category><category>MLNs</category><category>sports</category><category>betting</category></item><item><title>Combating information failure during software development</title><link>https://toddschiller.com/blog/information-failure-software-development.html</link><description>&lt;p&gt;Developer productivity is a product of program understanding,
a developer's (1) mental model, and (2) access to information for
refining that model.&lt;/p&gt;
&lt;p&gt;Former Defense Secretary Donald Rumsfeld's famous intuition is
actually roughly correct for understanding program understanding:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There are known knowns. These are things we know that we know. There …&lt;/p&gt;&lt;/blockquote&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Mon, 16 Feb 2015 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2015-02-16:/blog/information-failure-software-development.html</guid><category>Software Engineering</category><category>information</category><category>mental model</category><category>software development</category></item><item><title>4 steps to effective development questions and bug reports</title><link>https://toddschiller.com/blog/bug-reports-development-questions.html</link><description>&lt;p&gt;Library use is common but documentation is scarce. Your ability to
ascertain information quickly about a library can mean the difference between
success and failure in time-sensitive projects.&lt;/p&gt;
&lt;p&gt;There are two cases where interaction with developers is the bottleneck: (1)
reporting a bug, and (2) learning to use a feature …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 23 Dec 2014 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2014-12-23:/blog/bug-reports-development-questions.html</guid><category>Software Engineering</category><category>bug reports</category><category>technical questions</category><category>developer questions</category><category>checklist</category></item><item><title>Making Wrong Code... Wrong</title><link>https://toddschiller.com/blog/java-hungarian-notation-checker.html</link><description>&lt;p&gt;Joel Spolsky has a popular post from 2005 on
&amp;quot;&lt;a href="http://www.joelonsoftware.com/articles/Wrong.html"&gt;Making Wrong Code Look Wrong&lt;/a&gt;&amp;quot;.
In this post, I'll address his suggestion to use
&lt;a href="https://en.wikipedia.org/wiki/Hungarian_notation"&gt;Hungarian Notation&lt;/a&gt;.
It turns out we can now do better: we can make wrong code... &lt;em&gt;wrong!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hungarian Notation is a naming scheme that conveys information about
methods …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Mon, 08 Dec 2014 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2014-12-08:/blog/java-hungarian-notation-checker.html</guid><category>Verification</category><category>verification</category><category>java</category><category>Hungarian Notation</category><category>Checker Framework</category></item><item><title>Enforcing memory allocation patterns with an effect system</title><link>https://toddschiller.com/blog/java-allocation-effect-system.html</link><description>&lt;p&gt;Writing performant Java software often means controlling allocation
patterns to prevent garbage collection. For example, a program for
processing
&lt;a href="https://en.wikipedia.org/wiki/Financial_Information_eXchange"&gt;financial FIX messages&lt;/a&gt;
in real-time might use a fixed buffer to avoid allocations altogether.&lt;/p&gt;
&lt;p&gt;In many cases, it's easy to determine whether code allocates
memory. However, manually verifying allocation patterns becomes …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Sun, 23 Nov 2014 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2014-11-23:/blog/java-allocation-effect-system.html</guid><category>Verification</category><category>verification</category><category>java</category><category>effect systems</category><category>Checker Framework</category></item><item><title>Improving unit testing with data provenance</title><link>https://toddschiller.com/blog/improving-unit-testing-with-data-provenance.html</link><description>&lt;p&gt;In an ideal world, each unit test would run in isolation. In practice,
environment setup (e.g., database schema setup) is expensive, so it's
common to share resources between tests.&lt;/p&gt;
&lt;p&gt;In the worst case, interference between tests can actually mask bugs
that the test suite would otherwise catch &lt;a href="#test-dependence"&gt;[1]&lt;/a&gt;. In …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Sun, 29 Dec 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:toddschiller.com,2013-12-29:/blog/improving-unit-testing-with-data-provenance.html</guid><category>Testing</category><category>testing</category><category>data provenance</category><category>C#</category></item><item><title>Financial DSL resources</title><link>https://toddschiller.com/blog/financial-dsl-resources.html</link><description>&lt;p&gt;I've been creating an annotated collection of financial
domain-specific language papers, talks, and webpages on the &lt;a href="http://www.dslfin.org/resources.html"&gt;DSLFIN
workshop resources page&lt;/a&gt;. Since
it's become a bit unwieldy, I'll be imposing some order on the listing
by host language and target application. If you have any suggestions
for resources, or would like …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Mon, 10 Jun 2013 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2013-06-10:/blog/financial-dsl-resources.html</guid><category>Domain Specific Languages</category><category>domain specific languages</category><category>finance</category></item><item><title>Financial DSL workshop at MODELS 2013</title><link>https://toddschiller.com/blog/financial-dsl-workshop-announce.html</link><description>Information about the Workshop on Domain-Specific Languages for Financial Systems (DSLFIN).</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Todd Schiller</dc:creator><pubDate>Tue, 21 May 2013 00:00:00 -0400</pubDate><guid isPermaLink="false">tag:toddschiller.com,2013-05-21:/blog/financial-dsl-workshop-announce.html</guid><category>Domain Specific Languages</category><category>domain specific languages</category><category>finance</category></item></channel></rss>