Abstractions make things appear simple. This is one of the main concepts behind OOP. So what is it?! This talk will provide some guidelines on how to build abstractions that are extendable and scalable. Throughout the talk using examples Smit will try to differentiate between good and bad abstractions. He will talk about various ways of how to write clean, non-leaky and mature abstractions and present examples of same.