Walk us through your solution to the coding challenge, explaining your architectural choices and data structure decisions.