Software Engineer, writer, photographer, traveler and cricket fanatic. I write about software engineering principles, patterns and practices, to organize my thoughts, deepen my knowledge, and share lessons learnt imbued with the perspective of my experiences. As Paul Graham says, "no one who hasn't written about a topic has fully formed ideas about it".