This document provides an overview of embedded systems and Internet of Things (IoT) design. It defines embedded systems as information processing systems embedded into larger products. Future technologies are expected to involve ubiquitous and ambient computing through cyber-physical systems connected by the IoT. Basic technologies will include embedded systems and communication. Embedded systems must be dependable, efficient to meet real-time constraints, and dedicated to specific applications while optimizing various design metrics like size, performance, and cost. Additional challenges in IoT design involve scalability for large networks of heterogeneous devices with spontaneous interactions. Typical embedded system hardware includes microcontrollers with RAM, EEPROM, flash memory and communication modules.