Writing
Research, engineering notes, product decisions and lessons from the work.
-
TutorialUsing AI to Ship Software Without Accumulating Technical DebtA practical review process for AI-assisted engineering: define boundaries, constrain changes, test behaviour and keep generated code maintainable.
-
TutorialBuilding Reliable AI-Assisted Developer WorkflowsA practical architecture for coding agents: explicit task state, scoped tools, isolated changes, validation, review and safe CI automation.
-
TutorialAstro Navigation, DOM Lifecycle and Scroll-Reveal EffectsHandle Astro client-side navigation safely with lifecycle-aware initialisation, observer cleanup, progressive enhancement and reduced-motion support.
-
ArticleDiagnosing OpenClaw Gateway Delays on Windows: A Debugging Case StudyA historical Windows debugging investigation comparing gateway HTTP health checks with slower CLI checks, and the value of repeatable diagnostics.
-
TutorialExternal Memory and State Verification for Long-Running AI AgentsDesign reliable agent workflows with explicit task state, decision records, checkpoints and verification instead of relying on conversation history alone.
-
ArticleBuilding an ARC Raiders Loadout Planner: A Prototype Case StudyA retrospective on a game companion prototype: ingesting weapon data, separating sourced stats from estimates, and building a testable React and TypeScript interface.
-
TutorialBuilding Accessible Themes with CSS and Persistent PreferencesImplement light and dark themes with semantic tokens, system preferences, accessible contrast, a no-flash preference script and resilient controls.
-
TutorialDeploying Astro: Vercel vs Cloudflare vs NetlifyChoose an Astro host by rendering mode, adapter support, deployment workflow and real usage costs. A practical comparison of Vercel, Cloudflare and Netlify.
-
TutorialREST vs tRPC vs GraphQL: Choosing an API ContractCompare REST, tRPC and GraphQL by client boundaries, type safety, caching, tooling and operational complexity—not by trend.
-
TutorialPractical TypeScript Patterns for Safer Application CodeUse discriminated unions, exhaustive checks, unknown, branded types and runtime validation to make TypeScript boundaries more reliable.
-
TutorialSecurity Boundaries for AI-Assisted Developer WorkflowsProtect coding agents and CI pipelines with least privilege, untrusted-input handling, isolated execution, secret controls and human approval gates.
-
guideXbox APIs for Developers: Official Access and Unofficial LibrariesUnderstand the limits of public Xbox API access, Microsoft's developer programmes and the risks of relying on unofficial Xbox Live libraries.