In-situ reconfiguration of software is indispensable in embedded networked sensing systems. The application includes re-tasking a deployed network, fixing bugs, introducing new features and tuning the system parameters to the operating environment. In this poster, we present a system that supports software reconfiguration in embedded sensor networks at multiple levels. The system architecture is based on an operating system consisting of a fixed tiny static kernel and binary modules that can be dynamically inserted, updated or removed unobtrusively. On top of the operating system is a command interpreter, implemented as a dynamically extensible virtual machine, that can execute high-level scripts written in portable byte code. Any binary module dynamically inserted into the operating systems can register custom extensions in the virtual machine interpreter, thus allowing the high-level scripts executed by the virtual machine to efficiently access services exported by a module, such as tuning module parameters. Together these system mechanisms permit the flexibility of selecting the most appropriate level of reconfiguration. In addition to showing the system architecture, we present a systematic analysis of flexibility versus cost tradeoffs provided by these mechanisms.