In the recent years substantial percentage of my work as a backend developer was to create API for other components of larger systems. Mobile applications, rich javascript frontends and of course other backend services. API is an interface between two software components. Very often those components are written by different people or even different teams. [...]