In this paper, we focus on firmware design for flash memory cards that have scarce resources such as small amount of SRAM and low performance processors. Our design goals include devising practical, commercial grade features required for commercial flash memory cards and minimizing memory requirements to support these features. To this end, we propose TinyFTL (Flash Translation Layer) that has low memory requirements for implementing full features such as efficient garbage collection, mapping, caching, and fast boot-up. Through implementation and experiments, we show that even with smaller memory footprints TinyFTL performs better in terms of performance and boot-up time than implementations of state-of-the-art FTLs