I like the "Composing Software" post series by Eric Elliott. It presents some functional programming concepts very well explained through javascript language.
The name "software composition" implies in how to combine parts of testable software to form a reliable whole software.
The series has lead to a book as told in the post below, but the posts are still available for free.