Latest writing
Config-driven RPA with Playwright: why I stopped writing one bot per website
Why one bot per website doesn't scale, what goes in a portal config, a minimal Playwright engine in TypeScript, and three rules for keeping it clean.
RPA success rate: the same jobs, two honest-looking numbers
Success ÷ (success + failed), why user-stopped jobs don't count either way, bot time vs wall-clock time, and why every failure needs a label.
Token sort matching, explained: when you don't need a fuzzy threshold
Token sort with real RapidFuzz scores, a Python key function, strictest-key-first fallback, and when exact keys beat a fuzzy threshold.
Playwright vs Blue Prism and UiPath: when code-first RPA wins
What platform RPA gives you, what Playwright gives you, what you have to build yourself with code-first automation, and a short decision guide.
Design the human steps in: OTPs, CAPTCHAs and uploads in RPA
Why some steps belong to a person, how pause-and-resume works in a browser bot, bounded retries, and the questions to ask before automating a step.
LLM-assisted data validation: what the AI is allowed to do alone
Draft vs decide, exact matches only, versioned prompts, model choice per run, and verifying once then applying everywhere. Lessons from two tools in production.