How the interviewer opens it
“Design a freelance marketplace where clients post jobs and freelancers submit proposals. Support profile search, job matches, and contracts between clients and freelancers.”
The prompt is vague on purpose. The first minutes are for you. Reduce the prompt to the core features and agree on the numbers before you draw.
What to clarify first
- Job and contract model
- Scale and job lifetime
- Read and write traffic
- Search and matches
- Latency and freshness
- Correctness and durability
- Milestone funds
- Access and privacy
- Retention and content size
- Excluded features
The interviewer has the answers. In a SysRound round, Alex gives these answers, as a real interviewer does.
Scope of a strong answer
Core requirements
- Post jobs and submit proposals
- Search public profiles and open jobs
- Recommend jobs from profile fields
- Award jobs and manage funded milestone contracts
Usually out of scope
- Hourly work and time records
- Chat and video calls
- Contract disputes and partial refunds
- Payment provider internals
- Tax calculations
What interviewers ask about
- Job search and matches
- Job matches must respect user preferences. Stale search results must not expose hidden profiles or permit actions on unavailable jobs.
- Job awards and agreed terms
- Concurrent awards and proposal edits can create two contracts or a contract whose terms neither party intended.
- Milestone progress and payments
- The database and payment provider cannot commit together. Timeouts and delayed callbacks leave money outcomes uncertain.
Common mistakes
- The design accepts expired jobs because search results or the stored status still show them as open.
- The design permits two contracts for one job.
- The contract refers to proposal terms that the freelancer can still change.
- The design treats a provider timeout as a failed transfer.
- The public search index contains private proposals or contact details.
- The design adds machine learning before it defines match rules or measures match quality.
The bar by level
- Senior (L5/E5)
- Handles proposal version conflicts, expired jobs, retries, and uncertain payments. Uses durable events and provider idempotency. Separates search freshness from contract correctness and profile access.
- Staff (L6+/E6+)
- Defines money invariants and recovery rules across the database and provider. Plans reconciliation for unresolved transfers. Explains regional failover without duplicate awards or transfers. Measures match quality and limits search cost.