1. [OA] LRU Cache — Implement the caching layer ByteDance uses for its API responses
ByteDance requires an efficient caching mechanism to reduce latency for frequently accessed API responses. Your task is to implement an LRU (Least Recently Used) Cache class that supports get and put operations.Problem statement: The LRU Cache should have a maximum capacity and evict the least recently used item when the capacity is reached.Method signatures:
def get(self, key: int) -> int:: Get the value of the key if the key exists in the cache, otherwise return -1.
def put(self, key: int, value: int) -> None:: Update the value of the key or insert the key if it is not already present. When the cache reaches its capacity, it should invalidate the least recently used item before inserting the new item.
All keys and values will be in the range of 1 <= key,value <= 10^4.
codingHardinfra#2
2. [OA] Infrastructure as Code — Implement a Terraform module for ByteDance resources
ByteDance requires reusable Terraform modules to streamline resource provisioning across its infrastructure. The task is to create a Terraform module that provisions an AWS S3 bucket with specific configurations.Problem statement: You need to create a Terraform module that provisions an S3 bucket with versioning enabled and lifecycle policies for managing object expiration. Ensure the bucket is public access restricted.Example 1: Input: Module parameters for bucket name and lifecycle policy Output: Terraform code that provisions the S3 bucket as specified Explanation: The output should effectively set up the S3 bucket with the required settings while adhering to AWS best practices.Constraints:
Bucket name must be unique across AWS.
Lifecycle policy must expire objects after 365 days.
Block public access should be enabled.
codingHardci cd#3
3. [OA] Docker Optimization — Optimize the Dockerfile for a ByteDance microservice
ByteDance needs efficient container images to ensure faster deployments and less resource usage in its microservices architecture. Your task is to optimize an existing Dockerfile. You are provided with an initial Dockerfile that is unnecessarily large and slow to build. Your goal is to refactor this Dockerfile to reduce the image size and improve build time.Example 1: Input: Original Dockerfile Output: Optimized Dockerfile Explanation: The optimized file should demonstrate reduced layers and improved caching.Constraints: