Successful network deployment of the Internet of Things (IoT) requires many critical system design considerations. This paper highlights how an LTE system supporting Cat-M devices can be engineered to deal with the numerous constraints the 3GPP standard imposes for this new device type. Fundamental changes to the control channels, control and data timing relationships, the need to support half-duplexing, and variable repetition lengths pose non-trivial challenges, particularly when attempting to satisfy the critical coverage KPI for Cat-M devices while at the same time preserving the capacity KPI for legacy LTE devices. In addition, the nature of IoT traffic is fundamentally different than legacy LTE data, requiring changes to existing system parameters and MAC algorithms. Finally, we will touch upon the topic of supporting voice over IP traffic on Cat-M devices and the challenges therein.