Benjamin Cane
@madflojo.bsky.social
š¤ 17
š„ 61
š 84
Distinguished Engineer @ American Express. Thoughts and Opinions are my own.
Need to migrate from one database to another without downtime? TL;DR: Dual writes can keep old and new databases aligned during a live migration, but partial failures are where the real complexity starts.
bencane.com/posts/2026-0...
about 4 hours ago
0
0
0
Glue Services: Part Two ā Data Synchronization TL;DR: When old and new systems must run in parallel, synchronization glue services are often what make safe migrations possible.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-06-25/
7 days ago
0
0
0
When modernizing legacy systems, donāt be afraid to build glue services. TL;DR: Donāt let legacy integrations dictate your modern architectureāuse glue services to isolate the old world from the new one.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-06-18/
14 days ago
0
0
0
Coding agents canāt see your architecture diagramsāfix that. TL;DR: If your architecture diagrams are images, agents canāt reason about themāmake them code instead.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-06-11/
21 days ago
0
0
0
Building resilient systems isn't about preventing failures. It's about ensuring that when failures occur, the entire system isn't impacted.
americanexpress.io/cell-based-a...
loading . . .
American Express Technology
American Express Technology Open Source and Blog
https://americanexpress.io/cell-based-architecture-for-resilient-payment-systems/%0A
22 days ago
0
0
0
A few people have asked if I'm going to start a newsletter. After dismissing the idea for a while, I finally gave in.
madflojo.substack.com
Itās the same content I share hereādistributed systems, architecture, leadership, and the occasional hot takeādelivered to your inbox. Hit subscribe!
loading . . .
Benjamin Cane | Substack
Practical notes on building fast, reliable software systems that scale. Posts are a mirror of my LinkedIn & Blog content. Click to read Benjamin Cane, a Substack publication. Launched 21 days ago.
http://madflojo.substack.com/
24 days ago
0
2
0
Most teams put low-level architecture in the wrong placeāif they document it at all. TL;DR: Put low-level architecture in your codebaseābecause that's where both engineers and agents actually need it.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-06-04/
28 days ago
0
0
0
Your coding agent is missing one thing: architectural context. TL;DR: Give your coding agent access to your architecture decisionsāwithout that context, itās just guessing.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-05-28/
about 1 month ago
0
0
0
Who would have thought that the most important problem to solve for AI-assisted software engineering would be CI/CD pipelines? š¤
about 1 month ago
0
0
0
One of the easiest ways to break a gRPC service in production is health-checking the wrong listener.⨠TL;DR: If production traffic uses gRPC, your primary health checks should tooāan HTTP listener being healthy doesnāt mean your gRPC service is.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-05-21/
about 1 month ago
0
0
0
Weighted load balancing has saved me more times than I can count. TL;DR: Weighted load balancing lets you shift traffic by percentage, making migrations, canaries, and production changes far safer than all-at-once cutovers.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-05-14/
about 2 months ago
0
0
0
Cut a new release of madflojo/tasks over the weekend. Mostly focused on maintainability improvements, cleanup, and hardening the codebase a bit more. Shout out to the friendly neighborhood LLMs for taking up most of the grunt work.
github.com/madflojo/tas...
loading . . .
Release v1.3.0 Ā· madflojo/tasks
1.3.0 (2026-05-10) Features recover panics from task callbacks (62a350c) Bug Fixes avoid nil recover panic reports (321b1fc) ci: remove stale goveralls install (00f2bf7) guard delayed interval s...
https://github.com/madflojo/tasks/releases/tag/v1.3.0
about 2 months ago
0
0
0
YOLO Is a Terrible Strategy for Validating Production Changes. TL;DR: Validate production changes in layersācanary, shadow traffic, synthetic traffic, and smoke testsāso customers donāt become your QA team.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-05-07/
about 2 months ago
0
0
0
Deterministic routing is one of the most effective ways for distributed systems to reduce consistency problems at scale. tl;dr: Route requests for the same data to the same place to scale systems while reducing stale reads and coordination overhead.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-04-30/
2 months ago
0
1
0
I was looking up a configuration for HA Proxy and came across an article that had all the answers I needed. But it seemed familiar somehow⦠Oh, wait, I wrote it 10 years ago. š
2 months ago
0
0
0
Running the same microservice in multiple platforms can sometimes be better than centralizing it. TL;DR: Reuse the codebase locally to reduce coupling, latency, and the impact of failures.
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-04-23/
2 months ago
0
0
0
Recently, I published a few of my personal agent skills that Iāve been using for a while now. š Review This Review a codebase, docs, or even blog content. Get a quality score and recommendations.
github.com/madflojo/rev...
loading . . .
GitHub - madflojo/review-this: Agent skill for reviewing code or docs
Agent skill for reviewing code or docs. Contribute to madflojo/review-this development by creating an account on GitHub.
https://github.com/madflojo/review-this
2 months ago
1
0
0
Every time a credit card is swiped, a correlation problem has to be solved in real time. In low-latency systems, you canāt wait for each request to finish. I wrote a deep dive comparing how payment systems and modern distributed systems handle this. š
loading . . .
https://madflojo.dev/posts/in-flight-request-tracking-in-asynchronous-systems
3 months ago
0
0
0
If youāre migrating a system without shadow traffic, youāre taking on unnecessary risk. tl;dr: Traffic mirroring lets you send real production traffic to a new system without affecting users. Itās one of the safest ways to validate behavior before a cutover. š
bencane.com/posts/2026-0...
loading . . .
https://bencane.com/posts/2026-04-16/
3 months ago
0
0
0
Agent Skills arenāt just for actions; theyāre for institutional knowledge tl;dr: Most institutional knowledge lives in docs no one reads. Agent Skills let you capture that knowledge (frameworks, patterns, constraints) so agents can discover and apply it automatically. š
loading . . .
https://bencane.com/posts/2026-04-09/
3 months ago
0
0
0
Saved prompts are dead. Agent Skills are the next step. āØtl;dr: Instead of manually calling prompts, agents can now discover and execute skills based on intent. Skills bundle prompts, scripts, and context into reusable capabilities. āØš
loading . . .
https://bencane.com/posts/2026-04-02/
3 months ago
0
1
0
Generating code faster is only valuable if you can validate every change with confidence. AI tools are making it dramatically easier to produce code. But if you can generate changes faster than you can test them, you eventually create more software than you can safely operate.
3 months ago
1
0
0
Iāve been experimenting with capturing how I want my Go code to look in an agent skill:
github.com/madflojo/go-...
I decided over the weekend to break it out into its own project and share it with others. Itās very opinionated, but Iāve found it successful so far.
loading . . .
GitHub - madflojo/go-style-agent-skill: Agent Skill for writing Golang code
Agent Skill for writing Golang code. Contribute to madflojo/go-style-agent-skill development by creating an account on GitHub.
http://github.com/madflojo/go-style-agent-skill
3 months ago
0
0
0
When you go to production with gRPC, make sure youāve solved load distribution first. One of the biggest gotchas when teams roll out gRPC isnāt performance. Itās load balancing.
4 months ago
1
0
0
Migrating the American Express Payments Network Twice with Zero Downtime. Modernization isnāt real until the new system takes production traffic. Hereās how we approached migrating from our legacy payments network to our new cloud-ready platform.
americanexpress.io/migrating-th...
loading . . .
Migrating the Payments Network Twice with Zero Downtime
The architecture and coordination that kept global transactions flowing through complex application and infrastructure changes.
https://americanexpress.io/migrating-the-payments-network-twice/
4 months ago
0
0
0
You may be building for availability, but are you building for resiliency? Many teams design for availability. Far fewer design for resiliency.
4 months ago
1
0
0
If you're into hearing about complicated migrations of mission-critical payments platforms, you should check out my talk tomorrow at Monster Scale Summit. At AMEX, we didn't just migrate the Payments Network once; we did it twice, zero downtime.
www.scylladb.com/monster-scal...
loading . . .
Monster Scale Summit Agenda - ScyllaDB
Agenda Session times are displayed in your local timezone. Agenda subject to change. Wednesday 3/11 Thursday 3/12 Instant Access
https://www.scylladb.com/monster-scale-summit/agenda/#wednesday
4 months ago
0
1
1
When your coding agent doesnāt understand your project, youāll get junk.
4 months ago
1
0
0
You can have 100% Code Coverage and still have ticking time bombs in your code. š£
4 months ago
1
4
0
you reached the end!!
feeds!
log in