In today's era of growing demand for machine learning and AI, the need for efficient utilization of resources has become paramount, particularly in the realm of resource-constrained embedded systems at the edge. As an integral component of computer architectures, memory has emerged as a key focus area for system-level design and optimization. This talk will share some of our experiences in the challenges posed by conventional and emerging memories, and the innovative solutions we have employed to overcome them.