From basics such as data structures, algorithms to system design, distributed systems and scalability