Evaluate Architecture and Capacity Trade-offs
Company: Atlassian
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Onsite
Several interview prompts focused on architecture trade-offs and engineering fundamentals:
1. **Music service deployment trade-offs**: Compare a single-host deployment versus a multi-host deployment for a music service. What are the advantages, disadvantages, and migration considerations?
2. **Logging and analytics capacity planning**: Given current log and analytics traffic, explain how you would estimate next year's storage needs, including assumptions for retention, compression, replication, and growth.
3. **Password validation component**: Design a password validation component for passwords `8-16` characters long that must include at least one uppercase letter, one digit, and one special character. The system also tries to reject weak passwords based on common English words. What correctness, security, and usability issues should you watch for?
4. **Document deduplication strategy**: Design a cloud document storage system that deduplicates identical files. A naive byte-by-byte comparison is too slow for large documents. Explain a better design using hashes and discuss collision handling, chunking, encryption, and trade-offs.
Quick Answer: This multi-part question evaluates system architecture trade-offs, capacity and storage planning, security-aware component design, and document deduplication strategies, testing competencies in scalability, reliability, performance, security, and operational estimation within the Software Engineering Fundamentals domain.