The document discusses how to add more functionality to an embedded system without increasing the package size. It recommends layering the firmware code into platform-dependent, system-dependent, and OS/application layers. Each layer should be able to load the layer above it. It also suggests including robust debug capabilities to help troubleshoot problems early in the boot process using a small, lightweight debug monitor. Layering the code in this way allows for a modular debugging approach rather than a monolithic one.