I developed a visual IoT programming environment as part of my MSc thesis. I wanted to create an application with a graphical programming interface which can be used to assemble and run simple programs for various IoT devices. In the finished application the users can not only assemble the software in a graphical interface, but the commands can also be executed as well. They can run the assembled code blocks in a safe sandbox and the execution is interruptible at any time. The console output is also visible. New IoT devices can be supported by the application. To make this happen the software’s codebase doesn’t need to be changed, just the necessary plugin with the device specific settings should be created. To demonstrate the versatility of the application I created different profiles and programmed both Codie, a small IoT robot, a development board that models a Smart Home and also LEGO's Mindstorms NXT.