<?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: codecraft</title>
    <description>The latest articles on DEV Community by codecraft (@codecraft154).</description>
    <link>https://dev.to/codecraft154</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%2F3647884%2F7fc43a5d-6394-42d5-b210-e72719b82921.png</url>
      <title>DEV Community: codecraft</title>
      <link>https://dev.to/codecraft154</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codecraft154"/>
    <language>en</language>
    <item>
      <title>Code Review was never built for this much code</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 28 Aug 2026 12:21:46 +0000</pubDate>
      <link>https://dev.to/codecraft154/code-review-was-never-built-for-this-much-code-2ga2</link>
      <guid>https://dev.to/codecraft154/code-review-was-never-built-for-this-much-code-2ga2</guid>
      <description>&lt;p&gt;Review as a practice carries a hidden assumption, which is that writing is slower than reading. A developer spent two days on a change, so spending forty minutes reading it felt proportionate. That ratio held for as long as code came out of a human at human speed, and it silently underwrote every quality gate we built on top of it.&lt;/p&gt;

&lt;p&gt;Generation is now effectively free, but comprehension costs exactly what it always did. The ratio has inverted, and no process was updated to reflect it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens to review under AI-assisted development ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It degrades quietly rather than visibly. Reviewers still open the diff, still leave comments, and still approve, but the depth of the read drops as volume rises, because attention does not scale the way generation does. Approval starts to mean "nothing looked wrong" instead of "I understand this."&lt;/p&gt;

&lt;p&gt;That drift is where most &lt;a href="https://vrize.com/insights/blogs/why-ai-is-rewriting-the-economics-of-technical-debt" rel="noopener noreferrer"&gt;AI technical debt&lt;/a&gt; originates, and notably it does not show up in any metric you currently track. Delivery speeds up, review times drop, and the debt accumulates underneath perfectly healthy numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debt now has a distribution mechanism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The older, slower version of this problem stayed local, since a bad pattern lived in the file where someone wrote it until a human copied it somewhere else. That was the natural rate limit.&lt;/p&gt;

&lt;p&gt;Assistants removed it. A pattern in the codebase is a pattern the model reads as intent, and it will reproduce that pattern everywhere it seems to fit, without ever distinguishing a deliberate design decision from a random compromise. As a result, a single shortcut stops being a shortcut and becomes a convention, usually within a sprint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehension is the gate, not correctness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Review the pattern rather than the diff, because the diff is no longer the unit of risk. Make the reviewer state what the change does in one sentence before approving, since a reviewer who cannot do that has not reviewed anything. Track how often you generate code in areas nobody on the team can currently explain, and treat that as a real signal.&lt;/p&gt;

&lt;p&gt;The uncomfortable part is that none of this is a tooling gap. The tools work. What has not kept pace is the assumption that somebody, somewhere, still understands the system.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Churn is a prediction problem, and most teams treat it as a reporting one</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Thu, 20 Aug 2026 13:02:14 +0000</pubDate>
      <link>https://dev.to/codecraft154/churn-is-a-prediction-problem-and-most-teams-treat-it-as-a-reporting-one-4jif</link>
      <guid>https://dev.to/codecraft154/churn-is-a-prediction-problem-and-most-teams-treat-it-as-a-reporting-one-4jif</guid>
      <description>&lt;p&gt;Most retention work starts too late. A customer cancels, the number lands in a monthly report, and someone opens a ticket about win-back emails. The useful signal was there weeks earlier, sitting in event logs nobody was scoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with the metrics that actually move&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retention rate on its own tells you what happened, not what to do. Pair it with the ones that carry a next step. Churn rate flags where to look, but lifetime value tells you which accounts justify an intervention. Engagement data, meaning logins, sessions, feature use, and support contacts, gives your model something to learn from. Net Promoter Score is useful mostly as a label for supervised training, not as a headline number.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does data science for customer retention actually work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You build a classifier that scores each account on its likelihood to leave in the next 30, 60, or 90 days. The features are boring and effective: days since last meaningful action, change in usage against that account's own baseline, support ticket volume and sentiment, and payment history. Sentiment comes from running NLP over tickets and reviews, which turns free text into a feature instead of a quote in a slide. Practical guides to &lt;a href="https://vrize.com/whitepapers/effective-use-of-data-science-for-loyalty-customer-retention" rel="noopener noreferrer"&gt;customer churn retention&lt;/a&gt; tend to stress the same thing engineers learn the hard way: the model is the easy part, and the pipeline feeding it is where projects die.&lt;/p&gt;

&lt;p&gt;Then wire the score to an action. A rising risk score should trigger something automatic, like alerting an account owner or releasing a targeted offer, not just repainting a chart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why the pipeline matters more than the algorithm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retention data is scattered by default. Orders live in one system, tickets in another, product events in a third, and none of them share a customer key. Build the unified customer view first, with clean identity resolution, or every downstream model inherits the mess. A gradient-boosted tree on good joined data will beat a clever architecture on fragmented data every time.&lt;/p&gt;

&lt;p&gt;Acquiring a customer costs several times more than keeping one. That gap is the entire business case, and it is one of the few places where a modest model with reliable inputs pays for itself quickly.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Instrument the legacy path before you rewrite it</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Thu, 13 Aug 2026 12:38:56 +0000</pubDate>
      <link>https://dev.to/codecraft154/instrument-the-legacy-path-before-you-rewrite-it-4239</link>
      <guid>https://dev.to/codecraft154/instrument-the-legacy-path-before-you-rewrite-it-4239</guid>
      <description>&lt;p&gt;Every plan to retire a legacy system carries an unstated assumption, which is that once the new implementation exists, somebody will be able to tell whether it is right. That assumption is where most migrations quietly go wrong, because the new service usually ships on time and then sits behind a flag for months while nobody can produce evidence strong enough to justify flipping it. The architecture was never the hard part. Proving equivalence was.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do migrations stall after the replacement is written?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because equivalence is a claim about behaviour under real inputs, and the only place those inputs exist in useful quantity is production. Unit tests encode what the team believes the system does, which is exactly the belief the migration is meant to test, so a green suite tells you very little about a random eight-year-old branch that fires for one customer segment on the last business day of the quarter. Teams that skip the comparison step end up negotiating the cutover in a meeting rather than settling it with data, and meetings tend to resolve in favour of whatever is already running.&lt;/p&gt;

&lt;p&gt;The cheapest fix is to make the legacy path emit its inputs and outputs before you write a line of the replacement, then run the candidate against a sample of that traffic and compare the two results. Two constraints keep this from becoming a liability: the candidate must execute off the request path, so a slow or hanging implementation cannot add latency to anything a customer is waiting on, and its exceptions must be caught and recorded rather than propagated, because a comparison harness that degrades production will be switched off within a week and never switched back on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where should incremental legacy modernization actually begin?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It begins with the seam and the sampling, rather than the target architecture, because you cannot safely move what you cannot yet observe in both places at once. Pick the narrowest call boundary that fully contains the behaviour you intend to replace, wrap it, and start recording before anything is rewritten, since the recorded traffic then doubles as your specification, your test corpus, and your cutover evidence. Most of the practical difficulty in a &lt;a href="https://vrize.com/whitepapers/incremental-legacy-modernization" rel="noopener noreferrer"&gt;legacy system modernization&lt;/a&gt; turns out to be plumbing of this kind, and teams that treat it as the first deliverable rather than an afterthought tend to reach a decision far sooner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nondeterminism will generate most of your early mismatches&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Timestamps, generated identifiers, map iteration order, float accumulation, and anything reading a clock or a random source will all differ loudly while telling you nothing, so inject those dependencies and normalise them before comparison rather than estimating the noise. Precision deserves particular attention, because a legacy engine doing binary floating-point arithmetic and a replacement using decimals will disagree in the last place on a meaningful fraction of records, and you have to decide up front whether that is a bug in the old system, a bug in the new one, or a tolerance you are prepared to write down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mismatches need a taxonomy and an owner&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Group differences by their shape rather than counting them one by one, since a hundred thousand mismatches usually collapse into six distinct causes once grouped, and a count per cause with a named owner is something a team can actually burn down. Give each class a disposition of new-system bug, legacy bug, or accepted difference, and require that the accepted ones carry a written rationale, because those are the entries someone will read during an incident review years from now.&lt;/p&gt;

&lt;p&gt;Do this, and the cutover stops being a decision about confidence and becomes a threshold you agreed on in advance, which is the whole point of incremental legacy modernization in the first place.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Agent on the Other end of your API</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Wed, 05 Aug 2026 15:30:49 +0000</pubDate>
      <link>https://dev.to/codecraft154/the-agent-on-the-other-end-of-your-api-5ab2</link>
      <guid>https://dev.to/codecraft154/the-agent-on-the-other-end-of-your-api-5ab2</guid>
      <description>&lt;p&gt;Most software carries a hidden assumption in its bones: the thing calling it is a human. Nobody writes it down. It just lives in the session model, the redirect flows, the helpful little tooltips. For thirty years, that assumption held. It is now quietly breaking. A growing share of the traffic hitting your endpoints comes from AI agents acting on someone's behalf, and they read your product nothing like a person does.&lt;/p&gt;

&lt;p&gt;An agent does not scan a page or hesitate over a button. It parses whatever structure you expose, obeys the permissions you grant, and repeats the call with a precision no user can match. That precision is exactly what trips up systems tuned for "human forgiveness".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The stateless trap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with the humblest assumption of all: the session. Log in, do a thing, log out, context gone. A person shrugs and signs back in. An agent running a task across three days and eight services cannot. When a state lives only inside a session token, you have all but guaranteed that any long-horizon agent will fail somewhere in the middle, and the stack trace will point everywhere except the real cause. This is the first wall most teams hit when they get serious about designing for AI agents. Context has to graduate from a session property into real infrastructure: durable, portable across channels, and legible to both the human and the software acting for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why outcomes should replace navigation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Human interfaces exist to guide. Menus, wizards, breadcrumbs, all of it is there to walk a person toward the right action. An agent wants none of it. It arrives with intent and wants a contract it can call. The more of your product that can take a high-level instruction and return a deterministic result, the better it serves an agent. The more it demands a march through manual steps, the more friction you have quietly baked in. In practice, that means fewer clever flows and more clean, idempotent endpoints whose responses need no interpretation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you enforce agent permissions safely?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here, casualness turns dangerous. A human can sense when something is off and stop. An agent, boxed inside the scopes you handed it, cannot. So the boundaries cannot be advisory. An agent cleared to book a meeting must be technically incapable of cancelling a contract, not merely discouraged from trying. Serious &lt;a href="https://vrize.com/whitepapers/from-ux-to-ax-the-design-imperative-for-the-agentic-enterprise" rel="noopener noreferrer"&gt;designing for AI agents&lt;/a&gt; treats this as architecture: scopes enforced at the system level, every action logged with the reasoning behind it, and an obvious path to reverse an outcome. Exercise those limits under realistic load before anything ships, because a permission you never tested is a permission you never actually had.&lt;/p&gt;

&lt;p&gt;None of this throws out good design. It extends it. The teams that come out as winners in this perspective will not be the ones wiring up agents fastest, but the ones who built for delegation on purpose, well before a live system turned the mistakes expensive to unwind.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why AI in aged care is an Integration problem, not a model problem</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Thu, 30 Jul 2026 13:20:03 +0000</pubDate>
      <link>https://dev.to/codecraft154/why-ai-in-aged-care-is-an-integration-problem-not-a-model-problem-1j45</link>
      <guid>https://dev.to/codecraft154/why-ai-in-aged-care-is-an-integration-problem-not-a-model-problem-1j45</guid>
      <description>&lt;p&gt;Most demos of care technology fail in the same quiet way. The model works, but the pipeline behind it does not. A caregiver still burns the first ninety minutes of a shift on documentation before speaking to a single resident, and no amount of model accuracy changes that arithmetic.&lt;/p&gt;

&lt;p&gt;The interesting engineering problem here is not prediction. It is where the data goes, who it reaches, and whether it closes a loop or vanishes into a report nobody opens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where the burden actually lives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aged care documentation was architected around manual processes and never rethought. Caregivers enter data in the formats the system dictates, using tools that were never designed with cognitive load as a constraint. A faster form is still a form. Shaving keystrokes off data entry optimizes the wrong layer, because the cost is not typing speed. It is context-switching, interruptions, and compliance work bolted on beside the actual job rather than folded into it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What should AI in aged care optimize for?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not throughput. But Role quality. The useful question for anyone building &lt;a href="https://vrize.com/insights/blogs/workforce-sustainability-in-aged-care-starts-with-reducing-administrative-burden" rel="noopener noreferrer"&gt;AI in aged care&lt;/a&gt; is blunt: what would the shift look like if compliance overhead were halved, and what if the data caregivers generate fed back into care planning instead of dead-ending in a reporting sink? The strongest implementations treat documentation as a byproduct of care events already happening, not a separate path. Think continuous capture over retrospective batch entry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ship admin before clinical&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Regulatory frameworks for automated decisions in this sector are still forming, and the gap between what is technically deployable and what is compliantly deployable is real. The defensible sequence is phased: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with low-risk administrative surfaces&lt;/li&gt;
&lt;li&gt;Build governance capability in parallel with technical capability&lt;/li&gt;
&lt;li&gt;Extend into clinical inference only once both mature together&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Speed is not a virtue when the rollback cost is a resident's safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trust is a system property&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consent, privacy, and data governance carry a higher threshold here than in almost any other deployment environment, because the trust between residents, families, and providers has no clean equivalent elsewhere. Treat it as a first-class constraint in the schema, not a compliance checkbox stapled on at review.&lt;/p&gt;

&lt;p&gt;The tools already exist. The remaining work is deciding whether caregiver time is worth designing around, and building the integration to prove it.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Your Supply Chain doesn't have a Data Problem. It has a Schema Problem.</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 24 Jul 2026 12:58:10 +0000</pubDate>
      <link>https://dev.to/codecraft154/your-supply-chain-doesnt-have-a-data-problem-it-has-a-schema-problem-11e6</link>
      <guid>https://dev.to/codecraft154/your-supply-chain-doesnt-have-a-data-problem-it-has-a-schema-problem-11e6</guid>
      <description>&lt;p&gt;Most teams building toward autonomous operations start with the model. That is usually the wrong end of the pipeline.&lt;/p&gt;

&lt;p&gt;The failure I keep seeing is not a bad forecast. It is one system marking a shipment complete the moment it leaves the dock, while the planning layer only counts it once it is scanned at the destination. Both are correct, and neither can be joined without a human deciding which definition wins. Multiply that across suppliers, carriers, and three ERPs inherited from three acquisitions, and you have a system that generates noise faster than it resolves it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What has to exist before autonomy is possible?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Six things, and they are not phases. They are simultaneous dependencies.&lt;/p&gt;

&lt;p&gt;Instrumentation gives you the sensory layer, meaning telemetry on inventory, transit, and equipment rather than nightly batch snapshots. Standardization makes that telemetry interpretable across the network, which in practice means shared schemas and contract testing between systems. Interconnection turns partners into event publishers instead of email senders. Integration aligns processes, because integrating systems without integrating processes just gives you faster silos.&lt;/p&gt;

&lt;p&gt;Then comes the part people call automation. Rule engines are not what is meant here. A static ruleset handles the conditions its author imagined and fails hard on the ones they did not. What autonomy needs is a decision layer that evaluates trade-offs at runtime against constraints it can read. Finally, intelligence, which is where an &lt;a href="https://vrize.com/whitepapers/autonomous-supply-chains" rel="noopener noreferrer"&gt;AI-driven supply chain&lt;/a&gt; starts detecting anomalies before they become disruptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where does this actually break?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Guardrails. Autonomy is not the absence of control; it is control expressed as policy rather than approval. If your allocation logic can be manually overridden without an audit trail, you have not built autonomy; you have built a system that will confidently optimize for something nobody signed off on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The unglamorous sequence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Visibility first, meaning canonical models and tagging standards, then accountability, with forecasts stress-tested and tooling embedded in real workflows. Only then, continuous optimization, with cost per order and cost per exception as live inputs rather than something thats done periodically. &lt;/p&gt;

&lt;p&gt;Teams that skip to step three end up integrating capabilities onto a foundation that cannot carry them. The rebuild costs more than the patience would have.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The sepsis model that learned to predict the doctor</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 17 Jul 2026 07:22:03 +0000</pubDate>
      <link>https://dev.to/codecraft154/the-sepsis-model-that-learned-to-predict-the-doctor-407a</link>
      <guid>https://dev.to/codecraft154/the-sepsis-model-that-learned-to-predict-the-doctor-407a</guid>
      <description>&lt;p&gt;In 2021, a team at Michigan Medicine ran an external validation of the Epic Sepsis Model across 38,455 hospitalizations. Epic's own documentation put the model's AUC somewhere between 0.76 and 0.83. Michigan measured 0.63. Sensitivity was 33%, meaning it missed about two-thirds of septic patients, and it still managed to fire alerts on 18% of everyone admitted.&lt;/p&gt;

&lt;p&gt;The detail that should bother you as an engineer is in the inputs. One of the model's features was whether a clinician had ordered antibiotics. Ordering antibiotics means somebody has already suspected an infection. So the model was, in part, learning to predict a decision that had already been made, then congratulating itself on the prediction.&lt;/p&gt;

&lt;p&gt;That is textbook leakage. It ran in production at hundreds of hospitals for years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do healthcare AI pilots fail at scale?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nobody caught it because the environment had no mechanism for catching it. There was no external validation until researchers did it on their own initiative, no post-deployment monitoring worth the name, and no owner whose job it was to ask whether the thing was still working.&lt;/p&gt;

&lt;p&gt;This is the pattern underneath most stalled healthcare AI. The model is rarely the constraint. The real constraint is everything it plugs into: patient records spread across EHR instances that different departments bought in different decades, imaging sitting in a system that speaks to nothing, duplicate MRNs, coding standards that drifted three reorganizations ago, and operational data (scheduling, staffing, supply) that has never been joined to clinical data in any usable way.&lt;/p&gt;

&lt;p&gt;Train on a curated dataset, and you get a demo. Point the same weights at live ingestion, and performance degrades quietly, which is the worst way for it to degrade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What AI-ready infrastructure means&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Four things, and they're all boring:&lt;/p&gt;

&lt;p&gt;Interoperability. Data can actually move between clinical, operational, and administrative systems without a human exporting a CSV.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance:&lt;/strong&gt; Someone owns data quality, someone owns access, while someone's name is on the model's performance next quarter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow integration:&lt;/strong&gt; Output lands where the clinician already works. If it creates a parallel process, it creates one that gets eventually ignored.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A scalable operating model:&lt;/strong&gt; Monitoring, retraining, and drift detection exist before you need them, not after a JAMA paper.&lt;/p&gt;

&lt;p&gt;Miss one and you get pilot purgatory. Organizations that assess &lt;a href="https://vrize.com/insights/blogs/the-foundation-of-scalable-healthcare-ai" rel="noopener noreferrer"&gt;AI-ready infrastructure&lt;/a&gt; before procurement end up making very different buying decisions than those who discover the gaps at integration time, which is roughly when the budget is already committed.&lt;/p&gt;

&lt;p&gt;Aged care shows the failure mode at its bluntest. Fall detection works fine in a lab. Deploy it into a facility where half the documentation is still paper, and the notification pathway was never wired into anyone's actual shift; also, the alert fires into a void. The system produces the appearance of intervention but the resident is still on the floor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questions worth asking before the demo:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can you access the same patient consistently across systems, or are you resolving identity by hand?&lt;/li&gt;
&lt;li&gt;Who owns data quality, by name?&lt;/li&gt;
&lt;li&gt;Have the alert escalation paths been tested with real people on shift?&lt;/li&gt;
&lt;li&gt;Is there a monitoring framework, or are you planning to find out from a study?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The unglamorous work is the real work. Nobody puts an interoperability audit in a board deck. It's still the difference between a system a nurse trusts at an unexpected time and one she's learned to click through.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Nobody would ship this Protocol</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:21:35 +0000</pubDate>
      <link>https://dev.to/codecraft154/nobody-would-ship-this-protocol-4pf9</link>
      <guid>https://dev.to/codecraft154/nobody-would-ship-this-protocol-4pf9</guid>
      <description>&lt;p&gt;Consider a message passed between two processes. No acknowledgment. No schema. No retry. The sender is throttled, the receiver is saturated, and the channel drops packets under load. &lt;/p&gt;

&lt;p&gt;You would not merge that. Hospitals run it every twelve hours.&lt;br&gt;
Communication failures during care transitions sit behind most serious adverse events, and that share has held flat while the industry shipped template after template.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do clinical handovers keep failing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The remediation always lands on the human. Better forms, more training, and another mandatory field. Each assumes the sender skipped an instruction.&lt;/p&gt;

&lt;p&gt;Look closer at what the sender is doing. A doctor, nineteen hours into a shift, is running lossy compression on twelve patients, deciding what to drop, pulling from records with holes, inside a rank structure where contradicting a senior costs something real. Exhaustion, uneven experience, rank, scattered records. Those conditions are the runtime, not an exception path.&lt;/p&gt;

&lt;p&gt;A protocol that degrades under expected load was specified incorrectly. A finished SBAR form confirms that the payload left the sender. It reveals nothing about parsing, nothing about the downstream effect. Whether the receiving clinician read the critical field, whether anything happened in the next six hours, is entirely unobserved.&lt;/p&gt;

&lt;p&gt;So the status page reports healthy while the service quietly loses data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What real instrumentation would capture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Signal lives after the exchange, not during it. Did the care plan execute? Did escalation fire within the threshold? Did drift accumulate before anyone queried the state?&lt;/p&gt;

&lt;p&gt;Wire those events back into the loop, and you have telemetry. Skip them, and you have an audit trail. Reframing the &lt;a href="https://vrize.com/insights/blogs/why-clinical-handovers-are-an-engineering-problem-not-a-process-problem" rel="noopener noreferrer"&gt;clinical handover&lt;/a&gt; as a system to instrument rather than a ritual to enforce is what makes the failure mode addressable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why the tooling never reaches production&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Electronic I-PASS functions. Model-generated summaries from existing notes function. Most sit indefinitely in a pilot. Rollouts fragment across sites, enablement trails deployment, and regulatory validation under HIPAA and EU MDR run slower than any clinical timeline tolerates.&lt;/p&gt;

&lt;p&gt;A structured field clinician's bypass becomes overhead. The actual exchange moves out of band, unlogged, unreplayable.&lt;br&gt;
We have world-class metrics on this, and metrics were never the constraint.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Fulfillment is just another API now</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 03 Jul 2026 13:06:02 +0000</pubDate>
      <link>https://dev.to/codecraft154/fulfillment-is-just-another-api-now-2b08</link>
      <guid>https://dev.to/codecraft154/fulfillment-is-just-another-api-now-2b08</guid>
      <description>&lt;p&gt;For most of software history, the supply chain was the thing nobody wanted to touch. A monolith in the basement. Order in, inventory pulled, package out. It worked fine right up until e-commerce raised the overall demand and customers started expecting two-day delivery from a five-person shop.&lt;/p&gt;

&lt;p&gt;That old model cracked because it assumed the world sat still. It doesn't. So teams stopped treating fulfillment as a locked black box and started treating it like something you can actually call from code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does an API-driven fulfillment architecture look like?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You break the monolith into pieces that each do one job well. Inventory visibility, order routing, carrier selection, and last-mile coordination. Each one lives behind a documented API. Instead of a single rigid system, you get modular services you can swap, reroute, or reconfigure without a full rebuild. If that pattern feels familiar, it should. It's basically the thinking behind microservices applied to physical goods.&lt;/p&gt;

&lt;p&gt;The nice part is what opens up once those endpoints exist. Your storefront can check real inventory before it confirms an order, while your CRM shows a delivery window without a human looking for it. Logistics reroutes around a carrier delay automatically, and data that used to rot in isolated systems becomes something every touchpoint can query in real time. That single move is what pushes real &lt;a href="https://vrize.com/insights/blogs/how-api-driven-supply-chains-are-powering-modern-customer-experience" rel="noopener noreferrer"&gt;supply chain digital transformation&lt;/a&gt; from a slide deck into production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do teams move faster with composable fulfillment?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the boundaries get porous. Logistics no longer owns one silo while the e-commerce team waits three sprints for IT to broker an integration. The people closest to a problem can ship a fix against a component without triggering a system-wide change request. That's less a logistics upgrade and more an org-chart upgrade disguised as architecture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What breaks when you go modular?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Plenty, if you're honest about it. More APIs mean more entry points, so auth and API security stop being optional. Independently deployed services drift, so you need real contract testing, or a small change in one place quietly breaks another. And most of you aren't greenfield. You're basically wiring modern services into a legacy ERP that predates REST. Expect coexistence, not a clean cutover.&lt;/p&gt;

&lt;p&gt;Done right, fulfillment stops being the scary basement monolith. It becomes another layer you build on. An ongoing supply chain digital transformation turns delivery from a cost center into something that actually ships.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>software</category>
      <category>devops</category>
    </item>
    <item>
      <title>Latency is a Design Decision, Not a Performance Metric</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Thu, 25 Jun 2026 13:24:37 +0000</pubDate>
      <link>https://dev.to/codecraft154/latency-is-a-design-decision-not-a-performance-metric-2997</link>
      <guid>https://dev.to/codecraft154/latency-is-a-design-decision-not-a-performance-metric-2997</guid>
      <description>&lt;p&gt;Users rarely say an app is slow. They just leave. They bail on the cart, close the tab, jump to a competitor, and usually can't tell you why. The friction registers emotionally before it registers consciously.&lt;/p&gt;

&lt;p&gt;So if you're still treating latency as something to optimize after the build works, you're already behind.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is latency actually three problems, not one?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Latency" gets thrown around like a single number. It isn't. There are three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Analysis latency&lt;/em&gt;&lt;/strong&gt;: time to interpret incoming data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Decision latency&lt;/em&gt;&lt;/strong&gt;: the gap between analysis and action&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Action latency&lt;/em&gt;&lt;/strong&gt;: execution delay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At enterprise scale, these compound. A system that analyzes fast but acts slowly still ships a bad experience. Treat the stack as a chain where the weakest link sets your ceiling. Optimizing the visible stage while ignoring upstream or downstream delays is the classic trap, and the wins look real in isolation while the tail stays broken.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What reduces latency in a real-time data processing architecture?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No single fix solves this. A solid &lt;a href="https://vrize.com/insights/blogs/why-latency-is-the-new-competitive-advantage-in-enterprise-applications" rel="noopener noreferrer"&gt;real-time data processing architecture &lt;/a&gt;makes decisions at several levels at once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Geography. Data crosses physical distance. Edge nodes, distributed data centers, and PoP networks push processing closer to users and often decide whether you land under the threshold.&lt;/li&gt;
&lt;li&gt;Caching, still one of the highest-impact moves. Keep hot data near the user and kill repeated retrieval.&lt;/li&gt;
&lt;li&gt;APIs. The connective tissue. Lean, low-overhead APIs let data flow; sloppy ones turn every integration point into a bottleneck.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stop shipping averages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A clean average that hides a slow tail still burns a real chunk of your users. Watch behavioral signals, like bounce rate, session length, and engagement depth, not just synthetic numbers under controlled load. Lighthouse, New Relic, and Datadog give you continuous monitoring, but the real discipline is treating latency as an ongoing operational practice, not a quarterly audit.&lt;/p&gt;

&lt;p&gt;For context: past two seconds of page load, abandonment climbs sharply. In voice and video, anything over 50ms degrades quality before users consciously notice.&lt;/p&gt;

&lt;p&gt;The teams winning here pull latency into product planning early, measure infra against retention instead of raw benchmarks, and stop treating performance and UX as separate conversations. Build the experience that feels invisible, and speed stops being a feature. It becomes the reason people stay.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Treating Carbon as a Constraint in your Supply Chain Logic</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Fri, 19 Jun 2026 13:28:43 +0000</pubDate>
      <link>https://dev.to/codecraft154/treating-carbon-as-a-constraint-in-your-supply-chain-logic-1dn9</link>
      <guid>https://dev.to/codecraft154/treating-carbon-as-a-constraint-in-your-supply-chain-logic-1dn9</guid>
      <description>&lt;p&gt;Most carbon isn't decided in a sustainability report. Someone picks a supplier, weighs price and lead time, signs, and quietly locks in years of emissions nobody ever scored. The data existed. It just never entered the moment the choice got made.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why carbon never reaches the decision layer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In most orgs, two systems never talk to each other. One produces targets and disclosures, the other produces purchase orders and vendor contracts. The emissions leak out in the gap between them. And that gap is huge, because supply chains drive up to 80% of a company's total greenhouse gas footprint. The people deciding your real environmental impact are buyers and logistics leads, and most of them have never seen a carbon number in their workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Scope 3 is the hard part&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scope 1 and Scope 2 are direct and trackable. The real weight sits in Scope 3, the upstream emissions you don't control, which averages around 74% of an industry's footprint. The problem is that visibility falls off a cliff past your Tier 1 suppliers. This is exactly where most &lt;a href="https://vrize.rs/insights/blogs/carbon-as-a-constraint-embedding-sustainability-into-real-time-supply-chain-decisions" rel="noopener noreferrer"&gt;carbon emission reduction in supply chain&lt;/a&gt; efforts stall. Not at strategy, at the data pipeline. You can't weigh a number you can't get.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why mandates don't move the needle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The instinct is to hand suppliers a list of ESG requirements. That mostly generates email. The suppliers with the heaviest emissions are usually the ones with the least capacity to respond, running thin margins with no sustainability staff. The teams seeing real results invest in a few high-impact suppliers directly instead of pushing the whole base at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Making it real-time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IoT feeds, AI procurement platforms, and joined-up analytics can already surface carbon intensity at the point of purchase. The blocker isn't the tech. It's the discipline to act on the number once it's on screen. That last step, turning a visible value into a different choice, is the one almost everyone underestimates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your turn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you had to add one carbon signal to your sourcing decisions tomorrow, where would the data even come from? Drop how your stack handles Scope 3 visibility in the comments, because that pipeline is where most of us are stuck.&lt;/p&gt;

</description>
      <category>supplychain</category>
    </item>
    <item>
      <title>How enterprises are escaping platform lock-in</title>
      <dc:creator>codecraft</dc:creator>
      <pubDate>Wed, 10 Jun 2026 15:14:38 +0000</pubDate>
      <link>https://dev.to/codecraft154/how-enterprises-are-escaping-platform-lock-in-17j9</link>
      <guid>https://dev.to/codecraft154/how-enterprises-are-escaping-platform-lock-in-17j9</guid>
      <description>&lt;p&gt;Most enterprise commerce teams know the feeling. A feature your competitor shipped in two weeks takes your team three months, not because your engineers are slow, but because your platform won't get out of the way. That's the monolith problem. And composable commerce architecture is how enterprises are solving it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What composable commerce architecture looks like in practice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://vrize.com/whitepapers/composable-commerce-the-architecture-of-ownership" rel="noopener noreferrer"&gt;Composable commerce architecture&lt;/a&gt; applies MACH principles (Microservices, API-first, Cloud-native, Headless) across the entire stack, not just the frontend. Instead of one platform owning everything, each capability is a discrete, replaceable service.&lt;/p&gt;

&lt;p&gt;In practice, that looks like this: your PIM is Akeneo, search is Algolia, payments are Stripe, content lives in Contentful, and cart/checkout runs on commercetools. Each service exposes APIs. Each can be swapped, upgraded, or scaled independently without touching the others.&lt;/p&gt;

&lt;p&gt;The frontend consumes all of it through a composition layer. No single vendor owns your roadmap anymore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why enterprises are moving now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The numbers back the urgency. 91% of organizations are currently expanding their MACH infrastructure, and 61% expect to achieve a fully composable architecture by 2026. This isn't experimentation anymore. It's a structural shift in how enterprise commerce is built. &lt;/p&gt;

&lt;p&gt;The legacy systems problem is real, though. Organizations with more than 51% legacy systems face a demanding financial equation, with 48% of the budget going toward MACH software acquisition alone. The transition cost is high, and the cost of staying put compounds silently. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ownership question nobody asks early enough&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Composable commerce architecture isn't just a technical decision. It's a platform ownership decision.&lt;/p&gt;

&lt;p&gt;With a monolith, your vendor owns the upgrade cycle, the feature backlog, and by extension, your release velocity. With a composable stack, your team owns the assembly. You choose the best tool for each capability and integrate on your terms.&lt;/p&gt;

&lt;p&gt;The tradeoff is real: more surface area to manage, more integration complexity, more engineering discipline required. But for enterprises at scale, that tradeoff becomes worth it the moment a critical business need gets blocked by a vendor's quarterly release cycle.&lt;/p&gt;

&lt;p&gt;Start with the seams in your current platform, the places where your business needs outpace what the vendor delivers. That's where composable commerce architecture earns its value first.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
