When transitioning to functional programming as an already experienced developer in the imperative arts, one important skill fundamental to my technical maturity was thinking in terms of the properties of the systems I was building. From modeling application domain constraints to testing distributed systems at scale in production, I found that thinking in properties can help you and your team build more sustainable systems. Property-based testing provides a launchpad to discover and practice this mental model in your software development activities. This session is for developers starting to exploit property-based testing from beginner to intermediate level and will: - quickly review property-based testing - identify common pitfalls with property-based testing alone - suggest how to combine with other techniques and approaches to avoid their pitfalls - illustrate think in properties so you can employ property-based “tests” at all phases of development Limited exposure to the idea of property-based testing is desirable but not required. Code examples will be in Haskell.