Becoming a backend developer - Part 1: Foundational concepts