We will answer what is BlockChain and How does blockchain technology works. Characteristics of Blockchain. Brief of election algorithms e.g. Proof of Work and Proof of stake.

MVP of Twitter. Architectural choices and twitter feed optimizations as system scales. An overview of celebrity tweet problem and a possible solution to it.

Facade Pattern is a structural design pattern which abstracts out the creation of an object involving complex implementation logic by providing a client (Facade).

An Auto Complete or Type Ahead functionality can be build on Distributed Tries where each node caches top K terms of that prefix. These top K terms are dynamic and based on data mining of Current trends/ Top news etc.

Scalable, Web socket based Messaging Application having one to one chatting and file exchange capabilities. It also shows online user and Send/Read message status

Decorator Pattern is a structural design pattern which is a combination of inheritance and Composition. It dynamically computes the behaviour of a particular implementation by adding behaviour/functionality to an existing object without affecting other object.

URL Shortener aka TinyURL comprises an array of worker hosts whose number can be varied as per traffic (Scalable). Used Memcache as distributed cache for low latencies.

Composite Pattern is a structural design pattern which is used when we need a tree structure to traverse across the object in hierarchical fashion.

Adapter Pattern is a structural design pattern which bridges gap between two interfaces. It is used when we write new interface (new client) which will work with legacy code keeping in mind we don't end up adding new functionality to existing functionality.

Abstract Factory Pattern is a creational design pattern which is also known as Factory of factories.

Factory Pattern is a creational design pattern which doesn't expose instantiation or creation logic and returns new instace when object is asked.

Singleton Pattern is a creational design pattern which makes sure only a single instance of that class is created and returned each time when a request for an object is made.