Whenever you're ready, walk me through how you'd approach this.
Design an analytics SDK: interfaces, event scheduling, database management, and periodic uploads.
Asked in the Round 2: Technical (Tech Lead) stage. Low-level design after coroutine discussion. Explain the public interfaces, coroutine or background scheduling model, local database behavior, batching and upload policy, retry handling, and lifecycle management. Discuss how the SDK behaves when the application is offline, backgrounded, terminated, or updated.