That's a great point of view Shai Almog! I've always been looking for opportunities to get my hands on TDD in practice by contributing to the open source. To be clear, we always do a little TDD in our minds. We implement based on the way want to use the components. The first time I heard about that (TDD), that seemed so stupid to me! Why would I write tests first? What am I going to even test then? Over time, I thought that would be a cool approach though. You're structuring your components and specifying the ways you want to use your utilities then you implement them by passing each test. I still believe in that way of development but that DOES NOT ensure the quality of my code for sure. Of course, I need to refactor once I wrote the components. I'm more of a unit-test guy than an integration-test. Looking forward to having your thoughts on mine. Thanks for sharing this awesome article again. :)