The 80% abstraction
Why do large systems become monolithic, and what should we do about it? Let's explore how the 80/20 'Pareto Principle' applies to software development, and use the same method to refactor the monolith.
Why do large systems become monolithic, and what should we do about it? Let's explore how the 80/20 'Pareto Principle' applies to software development, and use the same method to refactor the monolith.
This was Gusto's system graph. Each of the black rectangles you see here is a subsystem within Gusto's biggest Rails monolith, and the red arrows are where one subsystem talks to another. As our business grew, folks started
Growth Engineering is all about growing the user base. Of course, to grow a user base, the product quality is important, but there should also be some effort (lots of effort, actually), to persuade the user to try using the product in the first place.
My team recently embarked on a journey toward unbundling our part of Gusto’s monolithic Ruby on Rails app. A monolithic app is a single application that contains code across many domains. The boundaries are unclear. The domains