Emerging energy-harvesting devices (EHDs) are computer systems that operate using energy extracted from their environment, even from low-power sources like ambient radio-frequency energy. Future EHDs will be a key enabler of emerging IoT applications, but today’s EHDs operate intermittently, only as environmental energy is available. Unfortunately, intermittence makes today’s EHDs unreliable and extremely difficult to program. In this talk I will summarize the main challenges of intermittent execution. I will then discuss our recent efforts to develop future architecture, system, and toolchain support for EHDs to address the challenges of intermittence, focusing especially on programmability, debugging, and reliability. I will close by discussing our recent work on building a reliable, EHD-based, hardware/software application platform.