Design a recommendation system for Jira issues
Company: Atlassian
Role: Machine Learning Engineer
Category: ML System Design
Difficulty: medium
Interview Round: Onsite
## Scenario
Design a recommendation system for **Jira** that helps users work more efficiently.
Assume Jira contains:
- Issues/tickets (type, priority, status, components, labels, assignee, watchers, comments, description)
- Users (team/org, role, skills, historical activity)
- Projects/boards (workflows, components)
## Product requirements (choose and justify)
Design recommendations for **one or more** of the following:
1. **Assignee recommendation**: suggest the best assignee for a new issue.
2. **Similar/duplicate issue recommendation**: show similar tickets to reduce duplicates.
3. **Next-best issue**: recommend what a user should work on next.
4. **Watcher/mention suggestions**: suggest relevant stakeholders.
## Constraints & expectations
- Near real-time suggestions when creating or viewing an issue (e.g., p95 < 200 ms).
- Handle cold-start for new projects/users.
- Must support permissions: users should never see tickets they can’t access.
- Provide an MVP plan and a path to iteration.
## Deliverables
Explain:
- Goals and success metrics
- Data and labeling strategy
- Model approach (candidate generation + ranking, or other)
- Online serving architecture and storage
- Offline training pipeline and evaluation
- Monitoring, feedback loops, and common failure modes
Quick Answer: This question evaluates end-to-end ML system design competencies for recommendation services in an issue-tracking platform, covering data and labeling strategy, candidate generation and ranking, real-time serving, latency and scalability constraints, and permission-aware access control.