I find spec really interesting but struggle to find a good fit for it in my projects. I end up getting bogged down writing generators and give up, or end up breaking down functions into such small pieces that speccing every one of them results in an unreasonable proliferation of specs and generators. This was an interesting and helpful overview of some different ideas about how to take advantage of spec, so thank you!
Also I definitely share your feelings about clojure massively increasing my job satisfaction and teaching me how to think about programming in a new (and better tbh) way.
We use spec at work for validating data passed to our HTTP routes in our luminus web application. When we get data as JSON we use spec to validate that there are the required fields being passed in and if it isn't valid we send back an error HTTP status code. It is nice to be able to easily see what fields are required without having to dig deep into code.
Also I definitely share your feelings about clojure massively increasing my job satisfaction and teaching me how to think about programming in a new (and better tbh) way.