Software Development

Software development related note books.

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.

FAQs on Tools & IDEs to Increase Productivity

Tools and IDEs are very important in Software Development. Tools and IDEs help in increasing developer productivity. In this section we will try to add most frequently asked questions related to most common tools and IDEs used in software development.

Software Architecture Fundamentals

I am not yet an Architect, but on my way to be a good architect. So these are my study notes from the books/blogs I read, courses I take and conferences/meetups I attend. 

The MEAN Stack - Components, Variations and Ecosystem

MEAN stack is a collection of JavaScript-based technologies, namely MongoDB, Express.js, AngularJS, and Node.js. MEAN stack can be used to develop web applications easily and efficiently. However, this is just one of the combination and may use additional components too. You may also replace one or more of these components with other appropriate components. 

Object Oriented Design Patterns and Principles

We will discuss various design patterns, but starting with the most important SOLID Principles of design and other principles and best practices. Please note that patterns are not methodologies such as Agile, but work along with other methodologis. 

Introduction to Microservices

Microservices is a specialisation of an implementation approach for independently deployable service-oriented software. Services in a microservice architecture are processes that communicate with each other over a network in order to fulfill a goal.