Ecco alcune che ricordo dai miei colloqui:
- Design instagram o qualche tipo di feed di contenuti. Questo è in realtà SUPER comune, devo averlo ricevuto 3 o 4 volte in varie aziende. E' abbastanza da cookie cutter ed è probabilmente ciò che gli intervistatori che sono troppo pigri per trovare una domanda migliore chiederanno.
- Design type-ahead/autocomplete. Anche questa l'ho ricevuta più volte, a volte con leggere variazioni. Di solito si basa su una struttura dati Trie. Questo è un ottimo esercizio!
- Progettare un bus di messaggistica (apache kafka/zeromq/rabbitmq). Potreste ottenere qualcosa del genere se state facendo un colloquio per un ruolo software orientato all'infrastruttura. Questa è un'ottima domanda che può generare molte diverse aree di attenzione e sotto-domande.
- Progettare una cache LRU. Di solito si tratta di implementare una lista doppiamente collegata per ottenere una rimozione a tempo costante degli elementi usati più di recente quando la cache è piena.
- Progettare una cache distribuita. Di nuovo, potrebbe essere per un ruolo che è infra-orientato. Può anche essere preso in molte direzioni diverse.
- Progettare tabelle di database/data warehouse. Questo potrebbe essere per un ruolo più orientato all'ingegnere dei dati, ma è anche comune per gli SWE, dato che una buona progettazione dei dati è estremamente importante.
Ecco alcuni che NON ho visto personalmente, nonostante siano generalmente accettati come comuni:
- Progettare un accorciatore di URL
- Progettare un sito web-shop/e-commerce
Spero che questo aiuti! Sarei pronto a scommettere che i primi 4-5 copriranno la maggior parte dei vostri colloqui di progettazione di sistemi, e per quelli che non coprono, la conoscenza che otterrete studiandoli dovrebbe trasferirsi bene a diverse varianti delle domande.