Key Terms and Concepts in Software

An architect needs to have a good breadth and depth of technical knowledge. While depth is your expertise in certain area, breadth is the knowledge or exposure to a variety of different technologies and practices. This book will contain quick definitions to important technical terms and concepts that an aspirant software architect needs to know, which will help you to improve your breadth of knowledge. You may follow the links to learn deeper if you want.

A Break to Relax, Learn and Grow

I recently saw a story in Facebook where a wood cutter starts working for a person. In the first day he gets 18 trees and says that he will try more to get more trees. However, as days passes by he gets less and less trees, even though he works harder and harder. Finally, when he is about to give up, the manager asks him when he has last sharpened his knife. Yes, you need to relax, learn new technologies, and even relearn and research on things you already know.

Session in the Software Craftsmanship Meetup on the Topic SOLID Principles and Design Patterns

I was one of the two speakers for the Software Craftsmanship meetup on 20 August 2016. I spoke on the topic 'SOLID Principles and Design Patterns'. The other speaker was Ganesh Samarthyam who is the co-author of OCP Java 8 Exam Prepatation book and few other books.

Read more about the meetup @

Cloud Service and Deployment Models

Cloud service models are generally classified based on the type of resources shared, as SaaS (stands for Software as a Service), PaaS (stands for Platform as a Service) and IaaS (stands for Infrastructure as a Service). Cloud deployment models include public, private, hybrid and community cloud models. 

Introduction to Cloud Computing

Cloud Computing is a business model that enable on-demand network access to a shared pool of resources that can be rapidly provisioned and released with minimum manual effort.  The shared pool of resources may include servers, platforms, storage, applications and services, and the technologies such as server virtualization may be used for provisioning. 

What is Virtualization?

In computing, virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, operating systems, storage devices, and computer network resources.

What is EAI?

Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications like ERP systems, CRM systems, Databases and even legacy software systems.

What is an ERP?

Enterprise resource planning (ERP) is business management software or a software suite of integrated applications, that a company can use to collect, store, manage and interpret data from many business activities.