Getting started with an IoT idea is exciting - however, building an end to end IoT solution comes with its own challenges. One of the first and perhaps most crucial steps in developing IoT applications is to create a device simulator. Usually, this could be a simple script, a tiny program or even a third-party tool customized to mimic the behavior of your IoT device. Initially, for the straightforward "hello world" kind of application, these homegrown simulators are usually fine and deliver the fastest time to market. But as the complexity of your IoT application starts growing, you may end up writing more and more features into your simulator. The scalability of your IoT platform becomes critical, and then you may need to launch multiple instances of this simulator and control its orchestration. Time flies by, and so far, it's good until you quickly realize that collecting results of the simulation, measuring response latencies, and troubleshooting the problems using those homegrown simulators is getting more and more challenging. Eventually - as more and more features are shipped - the complexity of simulator reaches a tipping point, where you realize that writing a scalable and efficient simulator is getting as hard as designing your scalable and functional IoT cloud application itself. At this point, you wonder whether solving this problem twice makes sense? Or could there be an alternate solution that simplifies large scale IoT simulation so that you could focus entirely on building your cloud-based applications?