Software developer learning application design, understanding scalable and performance intensive systems.