A production story illustrating how the absence of Domain-Driven Design (DDD) caused real financial harm in a Rails-based HR platform. The author recounts two concrete failures: a 'hired' status mismatch with Workday that triggered erroneous referral bonus payments, and a bloated Job model that conflated distinct business concepts (Position vs. Requisition). The post argues that Rails projects tend to speak the framework's language rather than the business domain's, and that DDD's ubiquitous language and tactical modeling (separate models for distinct concepts, anti-corruption layers) would have prevented both bugs. The piece frames DDD as having strategic value (shared vocabulary across stakeholders) and tactical value (code that mirrors business distinctions).

5m read timeFrom paweldabrowski.com
Post cover image
Table of contents
Generalization that costsNaming the disease
176 Impressions