We consider a system of discrete-time parallel queues, and show that the well-known Join-the-Shortest-Queue (JSQ) routing policy is heavy-traffic optimal via a simple Lyapunov drift analysis. Our approach consists of three steps: (i) assuming resource pooling, we first present a lower-bound on the expected total queue-length in steady-state; (ii) then we establish a state-space collapse result by showing that individual queue lengths do not deviate much from each other; and (iii) finally, we use the state space collapse result within a Lyapunov drift argument to show that the lower bound is tight in the heavy-traffic limit, thus validating the resource pooling assumption used to obtain the lower bound.