Thomas Johnson

Thomas Johnson @tomjohnson3

About: Co-founder and CTO at Multiplayer, with 30+ years of experience as a backend developer building large-scale distributed software (and robots!)

Location:
New York, US
Joined:
May 2, 2024

Thomas Johnson
articles - 41 total

If you Think Good Architecture is Expensive, try Bad Architecture

“If you think good architecture is expensive, try bad architecture” is a quote from Brian Foote &...

Learn More 0 0Jun 19

3 Features Every Debugging Tool Should Have

In today's complex software landscape, debugging distributed systems has become increasingly...

Learn More 0 1Jun 12

Understanding Technical Debt in Modernization Efforts

Modernization isn’t just about upgrading systems—it’s about addressing the compromises we’ve quietly...

Learn More 1 2Jun 5

AI, Platforms, and DX: What Should You Actually Invest In?

TL;DR Before you commit budget, it’s critical to set expectations. Both about what you're...

Learn More 0 2May 16

REST Is Easy Until It Isn’t. Modern API Paradigms Explained

Modern software development relies on different types of APIs, each serving specific purposes and...

Learn More 0 1May 9

System Design vs. Software Design: Stop Arguing, Start Architecting

When you ask an engineer to provide clear cut definitions of System Design, System Architecture,...

Learn More 0 0Apr 24

Operational Architecture: Control and Application Planes

Modern SaaS architectures divide functionality into two distinct operational layers: the control...

Learn More 0 0Apr 18

Identifying Code That Needs Refactoring

While developers can often spot code that needs improvement, strategic prioritization is essential...

Learn More 0 0Apr 11

Backend Software Engineers are Designers and Artists Too

The internet is overflowing with memes of “dev vs designer”, and it’s undeniable that it’s a...

Learn More 0 0Apr 3

Improving Developer Onboarding: Best Practices

When a new developer arrives at a company, everything comes at them all at once - new team, projects,...

Learn More 0 0Mar 27

Why I don’t (and won’t) miss whiteboards

Remember that 👆 infamous 2022 “Twitter code review” post? I recently came across Jane Manchun...

Learn More 0 0Mar 24

Whiteboards Were Great… Until They Weren’t

Remember that 👆 infamous 2022 “Twitter code review” post? I recently came across Jane Manchun...

Learn More 0 0Mar 20

On-Premises Architecture Solutions

On-premises architecture represents the traditional approach to hosting applications, where...

Learn More 0 0Mar 14

Essential Components of Effective Software Design Documents

Creating impactful software design documents requires a careful balance between providing...

Learn More 0 0Mar 5

Designing APIs with Users in Mind

APIs serve as critical building blocks for applications, services, and integrations. Whether used...

Learn More 0 0Feb 27

Understanding Monolithic Design for Modern Software

Monolithic architecture represents a unified approach to web application development where all...

Learn More 0 0Feb 18

Core Principles of Platform Engineering

Platform engineering creates a robust foundation for software development by establishing...

Learn More 0 0Feb 13

The Power of Test Automation

As software applications grow in complexity and scale, manual testing becomes increasingly...

Learn More 10 3Feb 6

Understanding Technical Debt: Core Concepts

Technical debt often emerges when development teams make compromises that prioritize immediate...

Learn More 0 0Feb 4

How to Prevent Devs from Rolling Their Eyes at Docs

If you start a conversation with an engineer by saying “We need to write the architecture...

Learn More 0 0Jan 28

5 Habits of High-Functioning Development Teams

Evolutionary scientists argue that working together is what enabled homo sapiens to succeed as a...

Learn More 0 0Jan 21

Devs Need to Invest More in *Visual* Communication

If you tell three engineers they'll be having fish for dinner, each one will imagine a different...

Learn More 0 0Jan 14

6 Best Practices Every Backend Dev Should Know

Most modern software systems are distributed systems. Nowadays they are a must for various...

Learn More 1 0Jan 7

Multi-player Mode is Everywhere, Even in Dev Tools

The shift from single-player to multi-player in software can also be described as the rise of...

Learn More 0 0Dec 30 '24

Unpacking Technical Debt: The Types Every Dev Should Know

Development teams encounter various forms of technical debt throughout their projects. Understanding...

Learn More 0 0Dec 26 '24

Don’t Just Draw It, Design It: Making System Diagrams Useful

Diagrams are seductive. They make complex systems look simple, neat, and easy to understand. And yet,...

Learn More 0 0Dec 18 '24

From Lone Architects to Team Players: How System Design Has Evolved

A decade ago, system design felt like an exclusive club. A few senior architects drew elegant...

Learn More 0 0Dec 12 '24

Observability 2.0: Rethinking Debugging

Imagine you're troubleshooting a production issue. You’ve got logs open in one tab, traces in...

Learn More 0 0Dec 6 '24

How and why to choose a multi-cloud architecture

The primary goal of adopting a multi-cloud architecture is to ensure high availability and resilience...

Learn More 0 1Nov 22 '24

Application Dependency Mapping: A Real-World Example

To better understand the concept of application dependency mapping, the ideal approach is to explore...

Learn More 0 0Oct 10 '24