---
title: "Latest reads"
description: "The engineering internet, summarised so you can actually read it."
---

# Latest reads
> The engineering internet, summarised so you can actually read it.

## Articles

### [Avoiding silent errors in your Stripe integration](https://yomu.fyi/post/avoiding-silent-errors-in-your-stripe-integration.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Abe Haskins
- Published: Nov 21, 2024
- Type: Tutorial

Stripe integrations can appear healthy while API and webhook failures accumulate unnoticed when applications lack robust logging and alerting. The post demonstrates Stripe Workbench, a Dashboard view that stores available information by default, obfuscates sensitive data, and provides searchable logs without code changes or additional software. In the example, about 50% of daily API calls fail; the Errors tab groups failures and connects each type to sample requests and related logs, revealing repeated card-verification errors and a request associated with an “Attacker Engineering Test Key” whose Go user-agent conflicted with the stated .NET backend. The investigation identifies a team testing attack-like API calls in production and recommends stopping production-key testing, avoiding test requests in production, and using Sandboxes.


### [Introducing eBay Evo: The Evolution of eBay’s Brand and Design System](https://yomu.fyi/post/introducing-ebay-evo-the-evolution-of-ebay-s-brand-and-design-system.md)
- Company: [Ebay](https://yomu.fyi/company/ebay.md)
- Author: eBay News Team
- Published: Nov 18, 2024
- Type: Announcement

eBay Evo is eBay’s new brand and design system, introduced to modernize and simplify customer experiences while creating a consistent global presence. The initiative reflects years of in-house work on a cohesive story that can still adapt to local markets and audience relevance, with an ongoing cycle of learning, product development, and enhancement aimed at discovery. Its accessibility focus includes the public Include accessibility annotations Figma plug-in, supporting inclusive design practices. The accompanying eBay Playbook gives internal teams and agency partners more than 280 pages of guidance, over 2,700 images and videos, and interactive tools for color selection, type testing, iconography, and accessibility. Evo’s new brand strategy is expressed through the creative platform “Things.People.Love.”


### [How Tinder Eased Development Pain With Ignis](https://yomu.fyi/post/how-tinder-eased-development-pain-with-ignis.md)
- Company: [Tinder](https://yomu.fyi/company/tinder.md)
- Author: Tinder
- Published: Nov 15, 2024
- Type: Problem & solution

Managing hundreds of microservices with disparate configurations forced Tinder engineers to deploy code to staging environments to verify every change, slowing development velocity. To shorten feedback loops, the team created Ignis, a Go-based CLI tool that lets engineers run an isolated service locally while proxying ingress and egress traffic through a multi-tenant development Kubernetes cluster. Ignis pairs with an API gateway for client testing and uses a custom Smart Router proxy to dynamically intercept downstream gRPC and HTTP requests via Kubernetes informers and header propagation. Since launching in 2019, the tool enabled Tinder to eliminate a dozen staging environments, decrease cloud spend, and accelerate onboarding, followed by a V2 release adding remote IDE support and monitoring.


### [Intercom vs Zendesk: Two AI agents put to the test](https://yomu.fyi/post/intercom-vs-zendesk-two-ai-agents-put-to-the-test.md)
- Company: [Intercom](https://yomu.fyi/company/intercom.md)
- Author: Sagar Joglekar
- Published: Nov 14, 2024
- Type: Benchmark

The post compares Intercom’s Fin AI Agent with Zendesk’s AI agent, focusing on answer quality, complexity, and resolution performance. In a test using 48 fictional bed-and-breakfast help articles and 200 questions, both systems answered the same dataset, while four AI models judged responses and an Elo rating system selected winners. It reports that Fin produced better answers in 80% of cases, answered 96% of multi-source questions versus Zendesk’s 78%, and delivered responses averaging 120 words versus 50. The analysis also found no statistical difference in hallucination levels and estimated that Fin was 66% more likely to provide a complete resolution when both agents answered. The post notes limitations including simulated data, AI judging, and differing product features, then describes Fin’s integrations and 99¢-per-resolution pricing.


### [Metasense V2: Enhancing, improving and productionisation of LLM powered data governance](https://yomu.fyi/post/metasense-v2-enhancing-improving-and-productionisation-of-llm-powered.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Nick Buhrer
- Published: Nov 14, 2024
- Type: Problem & solution

Metasense V2 addresses automated data governance by improving an LLM-powered metadata generation and classification system. It builds on an initial rollout that scanned more than 20,000 data entries at 300–400 entities per day, but retained human verification to catch misclassifications. Post-rollout owner feedback and manual classifications from the Data Governance Office supplied training and testing data, exposing failures involving PII in business email columns, nested JSON, and passenger communications. The revised approach splits PII and non-PII tagging, reduces the PII tag set from 21 to 8, shortens the prompt from 1,254 to 737 words, and divides tables exceeding 150 columns. LangChain and LangSmith support prompt development, evaluation across accuracy, latency, and error rate, deployment, and monitoring, while threshold-based alerts trigger a model-improvement protocol when misclassification rates rise.


### [Adding payments to your LLM agentic workflows](https://yomu.fyi/post/adding-payments-to-your-llm-agentic-workflows.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Steve Kaliski
- Published: Nov 14, 2024
- Type: Explainer

Agentic workflows combine large language models with function calling to turn prompts into sequences of actions, but connecting those actions to financial services requires controlled API access. The Stripe agent toolkit integrates Stripe with Vercel’s AI SDK, LangChain, and CrewAI, supports function-calling LLM providers, and is built on Stripe’s Node.js and Python SDKs. It exposes configurable tools for tasks such as invoicing, creating and sharing payment links, and using Issuing virtual cards with spending limits, authorization checks, and deactivation after purchase. Middleware can record input and completion token counts as billing events for usage-based customer billing. Because agent behavior is non-deterministic, the post recommends test mode, evaluations, restricted keys, limited tool sets, and reduced request and response shapes to improve focus and constrain failures.


### [Developing and investigating subscription data flow](https://yomu.fyi/post/developing-and-investigating-subscription-data-flow.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Hidetaka Okamoto
- Published: Nov 13, 2024
- Type: Tutorial

The article presents Stripe Sandboxes as isolated environments for developing and investigating subscription systems without affecting production data or settings. It explains how to create subscriptions, inspect dashboard actions through Workbench, and review API requests, JSON resource data, and webhook events such as customer.subscription.created and invoice.created. Test Clocks allow developers to advance time and examine subscription cancellation behavior, including the customer.subscription.deleted event after a scheduled cancellation. Workbench’s Shell tab, API Explorer, and Print SDK Request feature support testing requests in the browser and converting them into implementation code, while the article stresses testing plan changes, trial expirations, cancellations, and payment failures.


### [Supermaven joins Cursor](https://yomu.fyi/post/supermaven-joins-cursor.md)
- Company: [Cursor](https://yomu.fyi/company/cursor.md)
- Author: Michael Truell
- Published: Nov 12, 2024
- Type: Announcement

Cursor announces that Supermaven, a fast, context-aware coding copilot, is joining the company, bringing creator Jacob Jackson and the Supermaven team into the effort. The post says the combination is intended to accelerate development of a more useful product built around purpose-built models, a tailored editing experience, and other product ideas. It anticipates product improvements, including a future version of the Tab model designed to be fast, context-aware, and highly intelligent during sequences of long changes. The Supermaven plugin will remain maintained, although Cursor will be the team’s core focus. The shift follows Supermaven’s earlier move toward an editor because extension APIs were blocking further capabilities the team wanted to build.


### [U.S. elections readiness](https://yomu.fyi/post/u-s-elections-readiness.md)
- Company: [Anthropic](https://yomu.fyi/company/anthropic.md)
- Published: Nov 5, 2024
- Type: Announcement

Anthropic outlines its preparations for the 2024 U.S. election cycle, the first in which generative AI tools are widely available. Since July 2023, it has updated its Usage Policy, strengthened misuse detection, and redirected users toward authoritative voting information. The policy prohibits campaigning, lobbying, election misinformation, targeting voting machines, and interference with vote counting or certification, while Claude's text-only output prevents it from generating image, audio, or video deepfakes. Controls include prompt modifications, API audits, possible account suspensions, cloud-provider coordination, red-teaming, Policy Vulnerability Testing, and automated evaluations of political parity, harmful-query refusals, misinformation prevention, and voter-profiling risks; a TurboVote pop-up handles voting-information requests because models lack real-time election data, while the system prompt states Claude's knowledge cutoff.


### [Growing your Stripe integration With Event Destinations](https://yomu.fyi/post/growing-your-stripe-integration-with-event-destinations.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Ben Smith
- Published: Oct 31, 2024
- Type: Explainer

Stripe Event Destinations, now in general availability and rolling out to all accounts, lets companies extend payment workflows without changing existing integrations. The post explains how Stripe events can be sent either to an AWS account through Amazon EventBridge or to a webhook endpoint, with EventBridge routing selected events to services such as AWS Lambda, Step Functions, and SQS. Event filtering, logging, transformation, and built-in security reduce the need to operate webhook servers and verify signatures in application code. Serverless Lambda functions can add custom logic and connect to DynamoDB, S3, or SNS, supporting examples including date-limited memberships, partial student payments, and real-time tipping broadcasts through AWS IoT Core and WebSockets. The resulting architecture is presented as flexible and scalable for variable or growing event volumes while preserving the underlying Stripe integration.


### [Managing SaaS access control with Stripe’s Entitlements API](https://yomu.fyi/post/managing-saas-access-control-with-stripe-s-entitlements-api.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Hidetaka Okamoto
- Published: Oct 31, 2024
- Type: Tutorial

Managing access rights across multiple SaaS pricing plans can require maintaining feature lists, subscription and pricing relationships, and related database resources as plans or features change. The post presents Stripe’s Entitlements API as a way to register features, associate them with Stripe Products, and retrieve active entitlements for a customer’s subscriptions. Its example defines Free, Personal, and Business monthly products priced at $0, $98, and $980, then maps article-viewing and business-report features to those products using Stripe CLI commands in Workbench. Customer entitlement checks can support application authorization, while entitlements.active\_entitlement\_summary.updated webhooks expose before-and-after permission data for workflows triggered by plan changes or cancellations.


### [How we reduced peak memory and CPU usage of the product configuration management SDK](https://yomu.fyi/post/how-we-reduced-peak-memory-and-cpu-usage-of-the-product-configuration.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Ram Dilip Pradhan
- Published: Oct 30, 2024
- Type: Problem & solution

GrabX’s product configuration SDK used substantial memory and CPU because every client downloaded, decoded, and loaded a single JSON file containing configurations for all services, even when it needed only a small subset. The design also regenerated and fetched complete files every minute, while decoding a file larger than 100 MB could starve request handling and increase P99 latency. The proposed redesign partitions data by service, stores each configuration in its own JSON file and S3 prefix, and adds service-level changelogs so SDKs subscribe only to required services and apply targeted updates. Benchmarking across varied configuration sizes found potential reductions of up to 70% in memory utilisation and more than 50% in maximum CPU utilisation. Further work is planned to reduce SDK initialisation time.


### [How We Built the BFCM 2023 Globe](https://yomu.fyi/post/how-we-built-the-bfcm-2023-globe.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: Oct 30, 2024
- Type: Explainer

The 2023 BFCM Globe is a real-time visualization of purchases made through Shopify-powered merchants worldwide, with animated arcs, city dots, fireworks, camera movement, atmospheric noise, stars, and a custom material. Performance was a central concern because the earlier approach used a separate mesh and draw call for every arc, causing more than 1,000 simultaneous arcs to slow some mobile devices. The revised arc system uses instancing, interleaved per-arc attributes, and vertex-shader Bézier deformation, allowing tens of thousands of arcs in one draw call and an initial benchmark of up to one million arcs on an M1 laptop. Other effects were similarly consolidated, including billboarded point particles for cities and single-draw-call fireworks, while 2D psrdnoise and a stripped-down shader reduced rendering cost. The result combines richer visuals with substantially greater rendering capacity.


### [Preparing for Stripe API upgrades](https://yomu.fyi/post/preparing-for-stripe-api-upgrades.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Cecil Phillip
- Published: Oct 24, 2024
- Type: Tutorial

Upgrading a third-party API can bring new features and fixes but may also introduce breaking changes, so applications should be evaluated before production changes. Stripe Sandboxes provide isolated test accounts with separate API keys and access controls, optionally copying production configuration without copying products, customers, or transaction data. The workflow uses Dashboard Workbench to inspect and upgrade the sandbox API version, then runs the application with sandbox credentials and forwards webhook events through the Stripe CLI. In the example, Stripe.net 41.0.0 rejected an event because it expected API version 2022-11-15 while the sandbox delivered 2024-09-30.acacia; upgrading the SDK to 46.0.0 resolved the mismatch.


### [How to Build Secure Okta Node.js Integrations with DPoP](https://yomu.fyi/post/how-to-build-secure-okta-node-js-integrations-with-dpop.md)
- Company: [Okta](https://yomu.fyi/company/okta.md)
- Author: Ram Gandhi
- Published: Oct 23, 2024
- Type: Tutorial

Okta management API integrations can use a Node.js service app with OAuth 2.0 client credentials, but a bearer access token can be replayed by anyone who obtains it during its one-hour lifetime. The tutorial configures Okta for private\_key\_jwt authentication, grants the okta.users.read scope and Read-only Administrator role, and builds a Node.js service that requests and caches an access token. It then enables Demonstrating Proof of Possession (DPoP), handles an initial use\_dpop\_nonce response by retrying the token request with a nonce-bound proof, and generates a fresh proof for each API call. Each request binds the proof to the access token through the SHA-256-based ath value and uses DPoP rather than Bearer authorization. The demonstrated service successfully lists users through Okta Admin Management API endpoints.


### [LLM-assisted vector similarity search](https://yomu.fyi/post/llm-assisted-vector-similarity-search.md)
- Company: [Grab](https://yomu.fyi/company/grab.md)
- Author: Md Riyadh
- Published: Oct 23, 2024
- Type: Benchmark

Vector similarity search can struggle with queries containing negation, constraints, or conceptual requirements, even though it efficiently retrieves semantically similar records. The proposed method uses FAISS and OpenAI text-embedding-ada-002 embeddings to shortlist 15 candidates, then asks GPT-4o to rank the candidates against the original query and return the top three. On two GPT-4o-curated synthetic datasets—100 food dishes and 100 Asian tourist spots—the assisted method matched raw search on straightforward queries but produced more relevant results for complex ones, including excluding fish or shrimp and identifying wildlife-related places. The authors note limits from the small datasets and query set, report similar relevance improvements in an internal deployment involving more than 4,500 relational-database rows, and identify shortlist size and added LLM latency as areas for further evaluation.


### [Optimize payment flow while reducing code complexity with Stripe's A/B Testing](https://yomu.fyi/post/optimize-payment-flow-while-reducing-code-complexity-with-stripe-s-a-b.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Hidetaka Okamoto
- Published: Oct 23, 2024
- Type: Explainer

Payment method choices affect ecommerce conversion, and the post notes that 81% of surveyed customers frequently abandon carts when their preferred method is unavailable. It explains how Stripe’s dynamic payment methods in Elements and Dashboard settings can apply country, region, and amount rules without embedding those conditions in PaymentIntent code. The proposed workflow uses Dashboard experiments to enable methods such as Klarna, set display rules and traffic allocation, then uses Workbench Inspector, Logs, and Events tabs to inspect presented payment\_method\_types, API requests, and webhook history. A Klarna example reports a 16% increase in average order value, while new payment methods were deployed within four days.


### [Easily debug your 3DS authentication with Stripe Workbench](https://yomu.fyi/post/easily-debug-your-3ds-authentication-with-stripe-workbench.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Hidetaka Okamoto
- Published: Oct 22, 2024
- Type: Tutorial

Stripe Workbench provides browser-based tools for investigating EMV 3DS authentication and related payment flow behavior in the Stripe dashboard. It lets developers inspect Payment Intent and Charge data, including payment\_method\_details.card.three\_d\_secure.authentication\_flow and result, to determine whether authentication used a challenge UI and whether it completed successfully. The Inspector also exposes API history and webhook events, while the Events tab can filter historical payment\_intent.requires\_action events and show their frequency over a selected period. In the Shell tab, stripe trigger payment\_intent.requires\_action simulates a 3DS-related flow and generates event data without installing additional tools, allowing webhook handling to be tested and investigated from the dashboard.


### [Creating reusable developer environments with Stripe Sandboxes](https://yomu.fyi/post/creating-reusable-developer-environments-with-stripe-sandboxes.md)
- Company: [Stripe](https://yomu.fyi/company/stripe.md)
- Author: Cecil Phillip
- Published: Oct 20, 2024
- Type: Tutorial

Setting up development machines with the correct tools, permissions, and dependencies can take weeks for new engineers, so the setup combines Stripe Sandboxes with development containers. Stripe Sandboxes provide isolated accounts with full Stripe API access for testing without real transactions, while sandbox settings remain independent and production customer, product, and transaction data is not copied. A C# example uses Bogus to generate ten fake products and Stripe.net’s ProductService to create them with metadata in the sandbox, and the text notes that SDKs can populate additional account data. The containerized workspace uses Docker development containers, a .NET 8 image, Redis via Docker Compose, environment variables, VS Code customizations, and a post-create script that installs Stripe CLI. Configuration files can then be checked into source control, giving team members an isolated and consistent workspace for exploring payment workflows without affecting live data.


### [How Shopify improved consumer search intent with real-time ML](https://yomu.fyi/post/how-shopify-improved-consumer-search-intent-with-real-time-ml.md)
- Company: [Shopify](https://yomu.fyi/company/shopify.md)
- Author: 2023-10-18
- Published: Oct 18, 2024
- Type: Explainer

Shopify describes how it built near-real-time text and image embedding pipelines to support semantic search, replacing keyword matching with representations that enable similarity-based retrieval. Using Google Cloud’s Dataflow and Apache Beam, the pipelines process roughly 2,500 embeddings per second, preprocess images, run GPU-backed inference, and write outputs to both a data warehouse and an event topic for downstream ingestion. The engineering discussion focuses on trade-offs among memory, throughput, latency, and cost: reducing harness threads cut memory use about 2.6x and allowed a return to cheaper workers, while model sharing reduced throughput. For batching, bursty input produced bundles of one, and stateful batching was rejected because its shuffle increased latency; Dataflow’s per-process model instances instead provided enough parallelism to saturate GPUs.


[Newer posts](https://yomu.fyi/posts/page/183.md) · [Older posts](https://yomu.fyi/posts/page/185.md)
