Tom Johnson
banner
tomjohnson3.bsky.social
Tom Johnson
@tomjohnson3.bsky.social

CTO at Multiplayer.app, full stack session recordings to seamlessly capture and resolve issues or develop new features.
Also: 🤖 robot builder 🏃‍♂️ runner 🎸 guitar player

Thomas Floyd Johnson was an American composer and music critic associated with minimalism. After a religious upbringing in Colorado, he studied at Yale with Allen Forte and in New York City with Morton Feldman. There he covered the work of several noted composers, bringing them to wider attention in The Village Voice. .. more

Art 25%
Political science 22%

👇 Check my article on best practices on how to structure logs in the comments (or you could always use @multiplayer.app ’s full stack session recordings which automatically correlate logs by session 😅).

beyondruntime.substack.com/p/logs-that-...
Logs that talk back
How to debug distributed systems without losing your mind
beyondruntime.substack.com

When you’re looking for the bug, every log file you grep through gets you closer to the root cause.

The trick is making those logs useful, faster.

Jules Verne might as well have been talking about debugging when he said: “Science, my lad, is made up of mistakes, but they are mistakes which it is useful to make, because they lead little by little to the truth.”

If you’re thinking about:

• how to let tools like ChatGPT, Claude, or Gemini interact with your apps safely
• how to turn small AI experiments into prod features
• how to keep costs predictable
• and how to put the right guardrails in place

…then you’ll get a lot out of this panel.

I’m joining a LeadDev panel tomorrow on a topic many teams are struggling with right now: how to bring AI into your systems without creating chaos, security holes, or unexpected costs.

That means automatically correlated insights frontend to backend: being able to understand end-to-end your system, from user action, to the specific trace, log, request/response.

(That’s what we do at Multiplayer with full stack session recordings 😉)

beyondruntime.substack.com/p/from-red-a...
From Red Alerts to Root Causes
How observability builds on monitoring to keep complex systems reliable.
beyondruntime.substack.com

Monitoring will always have its place.

But modern distributed systems require more: you need immediate, surgical and complete visibility *across your stack* to fully understand system behavior.

I recently reviewed what went wrong with one of our users’ internal tool incidents and the lessons were clear: you have to shorten the path from “something broke” to “we know why.”

And it starts with high-quality issue reporting powered by full-stack session recordings.

A tiny bug. A big bank. Hours lost.

Internal tools don’t get the same love as customer-facing products, but the pain of debugging them is just as real.

Let me know what other best practices you’d add to this list!

👇 Check the full article: beyondruntime.substack.com/p/apis-dont-...
APIs don’t test themselves
Why automation is the only way to keep pace with modern distributed systems.
beyondruntime.substack.com

• Test authentication and authorization just as rigorously as the “happy path”

• Keep your test data clean, parameterized, and repeatable

• Continuously monitor the health of your test suite, track flaky tests, and evolve coverage as the system changes

• Start early and target the APIs that matter most

• Write isolated, assertive tests that validate one behavior at a time, with strong assertions

• Use mocks, stubs, or service virtualization for dependencies

APIs are the front doors to our systems, and users expect them to just work. Automated API testing is how we guarantee that at scale.

Here are a few proven best practices: 🧵

👆He captures perfectly why business critical issues slip through when context is missing and you have to waste hours piecing together all the information.

(and how Multiplayer full stack session recordings are built to solve that 😊)

“Ambiguous screenshots”. It says it all, doesn’t it?

@farisaziz12.bsky.social is describing the nightmare that of debugging vague support tickets, with blurry photos, no reproduction steps, and endless back and forth.

Does debugging support tickets look like this for you?
If yes, share the latest rabbit hole you fell into.

‣ Shape your data early.
‣ Prioritize security.
‣ Be deliberate with receivers.
‣ Export with efficiency.
‣ Monitor the Collector itself.

The lesson I keep coming back to is simple: an observability framework is only as strong as its Collector configuration.

I’ve spent the better part of the past year working with the OpenTelemetry Collector to ensure our full-stack session recordings include automatically correlated backend traces.

Here are the lessons I’ve learned (sometimes the hard way) about configuring the Collector 👇

He's giving a talk at ZurichJS next week.

If you're in town, I recommend checking out their EOY meetup on Thursday 13 Nov, 18:00 CEST. 👇

zurichjs.com/events/zuric...
ZurichJS Meetup: 1st Anniversary Special Edition | ZurichJS
Before the winter code freeze sets in and the only thing you want to debug is your holiday light setup, it's time for on...
zurichjs.com

👇 @farisaziz12.bsky.social describes the pain of customer support perfectly.

It’s always exciting to see Multiplayer show up in real-world stories like this, as part of how engineers actually solve problems. Seeing it used to cut through the “screenshot chaos” is exactly why we built it.

"Effective debugging isn’t about speed. It’s about visibility and understanding. When AI has access to complete context, it becomes a real collaborator in that process."

👆 This is exactly why we built Multiplayer. 🤩

Optimizations don’t have to be flashy or complex and a 5-minute fix to our CI/CD pipeline saved us 5hr a day.

This is a reminder that even the most obvious optimizations can hide in plain sight when you’re heads down building the next big thing.

A sneak peak of my presentation for tomorrow’s MCP demo night 👀

If you’re in New York - come say hi!

I bet a Multiplayer full stack session recording + Claude Code would have caught that 😉