Engineering the Future of Software
Feb 3–4, 2019: Training
Feb 4–6, 2019: Tutorials & Conference
New York, NY
Please log in

Technical debt: A master class

r0ml Lefkowitz (Retired)
10:45am–12:15pm Wednesday, February 6, 2019
Application architecture
Location: Mercury Ballroom
Secondary topics:  Best Practice, Overview
Average rating: ****.
(4.83, 46 ratings)

Who is this presentation for?

  • Software architects and developers



Prerequisite knowledge

  • Experience working with a large code base
  • Familiarity with developing or deploying on cloud platforms

What you'll learn

  • Understand how to refactor a large code base, how to approach architectural decisions, and how to build longer-lived code


Technical debt is a funny thing. While the term attempts to make an analogy with financial debt, technical debt and financial debt have nothing in common. Instead, it’s the name we give engineering decisions we disagree with.

Robert Lefkowitz offers an overview of technical debt, explaining how to recognize it, how to prevent or reduce it, and how come we see so much of it. Many so-called best practices today, are, in fact, technical debt factories. The reason we have so much of it is that we eagerly create it at earlier stages of an organization and fail to alter our approaches soon enough when the organization matures, and these early practices which were “investment” become “debt.” Robert discusses many of these practices.

One of these is microservices—often undertaken as a technique for increasing agility, at the cost of manufacturing tech debt. Robert details common methods for avoiding increasing the tech debt burden by deploying microservices.

Robert explores two primary themes that apply to multiple software methods. The first is the principle of parsimony, which dates back to the ancient Greeks but was popularized more recently by the 12th century theologian William of Ockham. The second theme is the doctrine of immutability. This idea, too, flowered during the Middle Ages and is enjoying a renaissance today with the rise of functional programming languages. Robert dives into both of these ideas as they apply to data types, programming languages, network protocols, software dependencies, configuration management, and more.

Photo of r0ml Lefkowitz

r0ml Lefkowitz


Robert (r0ml) Lefkowitz is a frequent speaker on the intersection of software and literacy. Previously, he was a CTO at a fintech startup and held senior technology positions in the telecommunications and financial industries. He’s a distinguished engineer of the ACM.