Skip to content
HomeInsights

Insights

Ideas for building
better software.

Engineering perspectives on architecture, product development, AI, and the everyday decisions behind useful software.

From the engineering desk

Browse practical articles or follow the latest technology updates.

Subscribe via RSS →

Curated links from external sources — not 360Softy original articles.

ExternalSoftware Engineering
DEV Community

The 1.4 Seconds That Weren't on Any Span

On the morning of June 3rd, a customer on a live call sat through 1.4 seconds of dead air after she finished a sentence, long enough that she said "hello?" before the agent answered. I had the trace open in Honeycomb forty seconds later. Every span was green. End-to-end p95 read 980ms, comfortably under our budget, and not one span in that waterfall was longer than 400ms. The dashboard told me everything was fine while the customer was, in fact, talking to silence. TL;DR: End-to-end voice latenc

opentelemetrypythonobservability
DEV CommunityRead original
ExternalSoftware Engineering
DEV Community

Exit intent that works on mobile, not just desktop

Originally published on my site, arafatcro.dev/guides. You copy the exit-intent snippet, it fires nicely when the cursor heads for the close button, and you ship. Then you check the data and half your traffic never triggered it, because they were on phones and a phone has no cursor to chase. Exit intent is not one trick. It is a different signal on each device, fired once, and built so it does not become the thing people leave over. The standard snippet listens for the mouse leaving the top of t

javascriptwebdevabtesting
DEV CommunityRead original
ExternalSoftware Engineering
DEV Community

Stop building custom wrappers for your ML models.

I spent three days last month building a specialized API wrapper for a simple Scikit-learn model. Not because the logic was hard—it wasn't. Because I wanted Cursor to be able to run inference on our churn prediction data without me having to manually copy-paste JSON results into the chat. It is a classic engineering trap: the 'Integration Tax.' You have a working Modelbit workspace, you have your weights deployed, and you have an AI agent that could theoretically use it. But instead of using the

aimlopspython
DEV CommunityRead original
ExternalSoftware Engineering
DEV Community

Collect client feedback on a website without endless revision rounds

Most revision rounds don't spiral because the client is picky. They spiral because the feedback lost context on the way to you. Here's why that happens, what agencies try, and how to make each note clear enough to fix the first time. A revision round is supposed to be one loop: client looks at the site, says what's off, you fix it, they look again. The trouble is that most of the feedback you get can't be acted on as-is. "The hero feels cramped on mobile." Which phone. Which section. Cramped how

webdevaidesign
DEV CommunityRead original
ExternalSoftware Engineering
DEV Community

Sync a mailbox into your own database with Nylas

You want your app to have its own copy of a user's email: to search it fast, run analytics over it, or feed it to a model without hitting the provider on every query. The naive version is a one-time pull that's stale the moment it finishes, because new mail keeps arriving and old mail gets read, moved, and deleted. A real sync is two jobs working together: backfill the history once, then track changes forever after. This post builds that out with the Email API and shows the CLI shortcuts for tes

apiemailwebhooks
DEV CommunityRead original
ExternalSoftware Engineering
DEV Community

How much does context cost an AI coding agent? grep vs graph vs LSP, measured across 936 runs

In my last post I described graphlens — what it does, how it works — and along the way I casually claimed that an agent "burns tokens grepping around a repo." I gave exactly zero numbers to back that up. This post fixes that. Here are the measurements, the data, and a reproducible harness. Spoiler: the conclusion is not the one I expected going in, and that's the interesting part. I took one agent (Claude Code), changed exactly one thing — which MCP server feeds it code context — and ran it over

aillmpython
DEV CommunityRead original

Let’s start with a conversation

Tell us what you’re working on.

An idea, a challenge, or a system that needs to work better. We’ll help you understand the next step.