In my opinion, a software design is successful only when it not only solves the problem at hand but also remains pretty easy to adopt and maintain. Thus, simplicity becomes the key design principle for a software design which needs to be reusable as well as maintainable.

Keep it simple, stupid.

Famously known as the KISS principle, can be seen in action in one of the prominent functional programming pattern: Monoid. Though quite famous in the FP world, it is not a very well known pattern in the object oriented programming as compared to more ubiquitous patterns like Functors and…


I have been using Kotlin for more than a year now. In my team, we all love Kotlin because of it’s many awesome features that enable us to write concise, yet understandable code. That’s why, everybody is really excited to use them in their code. Undoubtedly, these features are a great help to programmers, however overusing them can create some serious issues in your code. In this blog, I will be talking about one such feature of Kotlin: Extensions

This blog tries to analyse why Extension functions is one of the most favourite features of many Kotlin developers. Also, it…

Harshad Nawathe

Application Developer at ThoughtWorks

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store