← Atlassian Interview Insights
Start by clarifying requirements and constraints, then outline a high-level architecture that separates the API layer from asynchronous crawling workers. Focus on scalability, reliability, and trade-offs, and walk through the lifecycle of a job from submission to completion.
Pro tip: Emphasize idempotency and rate limiting to prevent abuse and ensure fair resource usage, and discuss how you would handle failures and retries in the crawling pipeline.
Ask questions to understand scale, expected latency, depth of crawling, and whether authentication or politeness policies are needed.
Define the POST /jobs and GET /jobs/{id} endpoints, including request/response schemas, status codes, and error handling.
Propose a distributed system with a job queue, worker pool for crawling, and a data store for job status and results.
Discuss partitioning, rate limiting, retries, idempotency, and monitoring to handle large-scale crawling.
Compare synchronous vs asynchronous processing, storage options, and crawling strategies (e.g., BFS vs DFS).
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.