AI / Agentic · 5 min read
Prediction: Clear Acceptance Criteria Will Outlast Faster Code Generation
A conditional forecast about agentic development, tested through a retry-rejected-rows feature and explicit counterexamples.
Editorial date
Writing
React interfaces, Node.js and Python APIs, CRM data models, and AI-assisted development. Each note includes an illustrative example and a related project.
Subscribe via RSSCards follow an assigned editorial timeline. Publication dates appear in each article.
AI / Agentic · 5 min read
A conditional forecast about agentic development, tested through a retry-rejected-rows feature and explicit counterexamples.
Editorial date
Architecture · 5 min read
A prediction about AI application APIs: durable operation status and explicit recovery actions will matter as much as the initial submit response.
Editorial date
Frontend · 5 min read
A conditional forecast: more saved CRM configuration could make compatibility review and migration design part of everyday frontend work.
Editorial date
AI / ML · 5 min read
Trace a vendor price through AI extraction, source review, catalogue storage, and project selection in an illustrative Sheet Parser workflow.
Editorial date
AI / ML · 5 min read
Explore why source-linked review could become a stronger product feature as extracting draft data becomes easier, and how to test that idea.
Editorial date
AI / Agentic · 5 min read
Use the documented Claude Code origin as inspiration for a small, observable coding-agent exercise with synthetic CRM fixtures.
Editorial date
AI / Agentic · 4 min read
Review a proposed CRM note-pinning feature through its behaviour contract, connected diff, evidence, data change, and handoff.
Editorial date
AI / Agentic · 4 min read
Use a CRM tag filter to expose correlated implementation and test mistakes, with explicit expected records and a discriminating fixture.
Editorial date
AI / Agentic · 5 min read
Verify generated changes with behavior-based assertions, failure cases, boundary tests, and deliberate checks that the tests can fail.
Editorial date
AI / Agentic · 5 min read
Review the decisions hidden inside a generated CRM title edit, from trimming and defaults to update semantics and error handling.
Editorial date
AI / Agentic · 4 min read
Choose agent count by task independence, using a source-reference change to explain coordination, handoffs, and integration evidence.
Editorial date
AI / Agentic · 5 min read
Compare generating a review-panel scaffold with deciding who owns draft acceptance, using an illustrative Sheet Parser workflow.
Editorial date
AI / Agentic · 5 min read
Write an agent brief for an archived-notes filter, with observable outcomes, repository context, scope, and evidence for review.
Editorial date
AI / Agentic · 6 min read
Use a coding agent to inspect constraints, compare architecture options, and plan a React and Node.js feature before generating code.
Editorial date
AI / ML · 5 min read
Build eight small vendor-sheet fixtures that expose missing values, unit confusion, identity loss, CSV errors, and injected instructions.
Editorial date
AI / ML · 5 min read
Build a useful evaluation set for price-sheet extraction, with row matching, field accuracy, abstentions, and document-level failure analysis.
Editorial date
Security · 5 min read
Treat vendor documents and model responses as untrusted inputs, while keeping permissions, destinations, and acceptance outside the model.
Editorial date
AI / ML · 5 min read
Design OpenRouter fallback behavior around compatible schemas, approved providers, bounded attempts, and draft integrity.
Editorial date
Architecture · 5 min read
Choose a progress transport around how quickly users need updates, while keeping a recoverable import status behind either option.
Editorial date
Architecture · 5 min read
Separate durable job state, temporary ownership, and accepted output so interrupted parsing can recover without stale workers overwriting results.
Editorial date
Backend · 5 min read
Use request context to connect events across awaits, then distinguish request IDs, job identities, and distributed trace propagation.
Editorial date
Architecture · 5 min read
Plan database changes around overlapping application versions, resumable backfills, and the point where rollback stops being simple.
Editorial date
Backend · 4 min read
A tenant-aware cache key is part of data isolation. Follow a hypothetical CRM request through identity, authorisation, and cached representation.
Editorial date
Databases · 5 min read
Page through CRM activity using a stable boundary, while making ordering, permissions, and changes between requests explicit.
Editorial date
Backend · 5 min read
A practical acceptance checklist for reservation boundaries: permissions, concurrency, retries, cancellation, time zones, and uncertain provider effects.
Editorial date
Architecture · 5 min read
A repeated request and two competing reservations are different problems. Model their identities separately before choosing a constraint.
Editorial date
Backend · 5 min read
A booking request may succeed even when its response is lost. Give retries a durable identity and a clearly bounded promise.
Editorial date
React · 5 min read
Treat microphone access as an asynchronous workflow with pending, denied, unavailable, and abandoned outcomes before recording starts.
Editorial date
React · 5 min read
Model idle, permission request, recording, finalization, ready audio, and failure so a browser recorder offers the right action at each stage.
Editorial date
React · 4 min read
Separate network, transformation, and rendering costs in a price-review table, then apply pagination, stable row identity, or virtualization.
Editorial date
Frontend · 5 min read
Make loading, completion, and retry behavior understandable without disrupting keyboard focus or overwhelming screen-reader announcements.
Editorial date
React · 5 min read
Separate transmitted bytes from processing completion, cancel the current upload, and keep late events from replacing a newer attempt.
Editorial date
Frontend · 5 min read
Build diagram history around complete editing actions, including grouped movement, connected deletions, and predictable redo behavior.
Editorial date
Frontend · 5 min read
React Flow began inside Datablocks. Its origin offers a practical way to think about useful abstractions, extraction, and maintenance.
Editorial date
Frontend · 5 min read
Compare interaction ownership, physical coordinates, accessibility, and export requirements before choosing an AV editor foundation.
Editorial date
Architecture · 5 min read
Separate equipment identity from its floor-plan, rack, and signal-diagram placements so edits and engineering documents stay coherent.
Editorial date
Frontend · 4 min read
Evolve a configurable form format while preserving field identity, old submissions, editor drafts, and a recoverable save path.
Editorial date
Frontend · 5 min read
A smaller set of supported blocks and rules can make CRM customization easier to validate, migrate, and explain when old layouts reopen.
Editorial date
Backend · 5 min read
Use a record revision to detect stale CRM edits atomically, then help the user resolve the conflict without losing their draft.
Editorial date
React · 5 min read
Keep local edits, compare fresh server values with the editing baseline, and expose conflicts without resetting a CRM form.
Editorial date
React · 5 min read
Coordinate tenant, project, and vendor requests with explicit query identities, dependency gates, and recovery states.
Editorial date
AI / ML · 5 min read
Make extracted data reviewable with source evidence, field-level corrections, revision checks, and an explicit transition into accepted records.
Editorial date
AI / ML · 5 min read
Separate response shape, business rules, and source agreement when reviewing AI-extracted prices, using a valid but incorrect row.
Editorial date
AI / ML · 5 min read
Model missing vendor prices explicitly so an empty cell remains a review task and a genuine zero retains its meaning.
Editorial date
AI / ML · 5 min read
Preserve selling units and pack quantities when interpreting vendor sheets so price comparisons keep their original meaning.
Editorial date
Architecture · 4 min read
Choose configured mapping, LLM interpretation, or a combined route by examining the actual uncertainty in each vendor file.
Editorial date
Product engineering · 5 min read
Use Simon Willison’s museum-data example to plan a small, useful vendor catalogue prototype with clear source relationships.
Editorial date
AI / ML · 6 min read
Design an LLM price-sheet workflow with OpenRouter, Node.js, Prisma, and PostgreSQL, including source review, job states, and safe retries.
Editorial date
Databases · 5 min read
Keep vendor prices traceable to their source without silently changing the prices already selected for a project.
Editorial date
Architecture · 5 min read
Use Ryan Dahl’s documented reflection on Node.js as a prompt for testing old assumptions, without turning reflection into a rewrite mandate.
Editorial date
Architecture · 5 min read
Use explicit ownership and small module interfaces first. Split deployment when an observed constraint justifies the network boundary.
Editorial date
Architecture · 6 min read
Design a React and Node.js SaaS application with clear boundaries for UI state, business rules, database access, and background work.
Editorial date
TypeScript · 2 min read
Types aren't bureaucracy — they're the cheapest documentation and the fastest feedback loop you can buy.
Editorial date
React · 2 min read
The framework matters less than the ecosystem around it. Here's the checklist I run before committing.
Editorial date
Backend · 5 min read
Compare TypeScript APIs and Python services through workload, validation, background jobs and deployment tradeoffs in a SaaS application.
Editorial date
AI / Agentic · 4 min read
AI tools help with repetitive implementation; architecture, review, and verification still need engineering judgment.
Editorial date
AI / Agentic · 2 min read
Three tools, three jobs. The trick is knowing which one to reach for and where to draw the line.
Editorial date
Architecture · 1 min read
Agree on the contract before anyone writes a line of implementation. Frontend and backend then move in parallel.
Editorial date
Architecture · 6 min read
In-memory, distributed, and HTTP caching each solve a different problem. Layer them deliberately.
Editorial date
Databases · 1 min read
Postgres is my starting point for relational data. Workload and operational constraints decide when to use something else.
Editorial date
Databases · 1 min read
Two Postgres extensions that let you scale without abandoning the database you already trust.
Editorial date
Frontend · 6 min read
When users need to build their own layouts, describe the UI as data and render it dynamically.
Editorial date
Frontend · 6 min read
Smooth drag-and-drop is mostly about state, coordinates, and not fighting the browser.
Editorial date
Frontend · 1 min read
React Flow handles the graph plumbing so you can focus on domain logic — floor plans, racks, and signal flow.
Editorial date
AI / ML · 2 min read
Generic speech-to-text falls apart in noisy, multi-speaker rooms. Domain tuning is the whole game.
Editorial date
AI / ML · 2 min read
Validate the shape of model output, preserve its source and design a review path for unsupported or missing information.
Editorial date
Security · 1 min read
In healthcare, the model is the easy part. Protecting patient data end to end is the real engineering.
Editorial date
Security · 1 min read
Real access control isn't a single role check — it's layered, and it belongs in one place.
Editorial date
React · 1 min read
Most 'state' is really server cache. Separate the two and the hard problem mostly disappears.
Editorial date
React · 1 min read
Uncontrolled inputs, schema validation, and typed errors — forms stop being the worst part of the app.
Editorial date
Architecture · 2 min read
Shared code and atomic changes are great — until your build graph and CI become the bottleneck.
Editorial date
Productivity · 1 min read
The gains are real but they're earned through process, not magic. Here's the loop I run.
Editorial date