It will work, and as long as the project just need little functionality it should be manageable. Managing a lot of functionality will be a pain though, since you won't have as nice development and debug tools available (compared to using a real controller on linux or windows machine).
You will need to hard-code node IDs for all nodes (except the gateway which always has ID 0) though, just as you have already done with #define MY_NODE_ID 123. I mention it because a lot of people have tried to get auto ID from a gateway, but that won't work since the ID assignment is done by the controller.