This document discusses using Lambda layers to share reusable code across Lambda functions. It describes a case study of migrating a PDF generation service from EC2 to Lambda, which required non-standard dependencies like external binaries and system fonts. The implementation involved wrapping an Express app as a Lambda function, testing it locally by mimicking the Lambda runtime in Docker, and deploying with additional bundles. Lambda layers were then used to separate these dependencies and reduce bundle sizes, though it added complexity to local testing. In conclusion, layers provide benefits of code sharing and separation of concerns at the cost of some increased local testing overhead.