HLD VS. LOW-LEVEL DESIGN : UNDERSTANDING THE SYSTEM DIVIDE