In the past, wireless sensor networks emerged and so did some state-of-the-art applications that ran above them. Most of those applications followed the centralized model and were mainly focused on environmental data gathering, where sensor nodes sensed data from the environment to be sent to an external data server for later processing. Further research took wireless sensor networks to new application areas and, today, this technology gained the ubiquitous status. However, the use of wireless sensor networks is still reserved to experts, mainly due to the huge gap between user applications and the network. This fact has led us to successfully develop a new software stack, capable of running in any sensor node even in the most resource-constrained ones. The new software stack offers a truly service-oriented approach to design and implement applications and follows a widely accepted programming language and programming paradigm.