RUB
Données insuffisantes · n=1

Company overview
Dernière offre: 6 août 2026
Published in the selected period
Currencies are not converted. Lower and upper bounds are calculated independently and show their own sample sizes.
Données insuffisantes · n=1
Published records
Entretiens · 19
Entretiens · 12
Entretiens · 5
Entretiens · 4
Entretiens · 3
Entretiens · 2
Entretiens · 1
Entretiens · 1
Entretiens · 1
Entretiens · 1
Entretiens · 1
Entretiens · 1
Entretiens · 1
Grouped by direction
Questions · 203
Conception d'un système de messagerie évolutif supportant 150 millions d'utilisateurs, 75 millions de DAU, 225 millions de MAU, 1,2M de lectures / 300k d'écritures en pic de QPS, 5 millions d'utilisateurs simultanés, 60 PB de nouvelles données par an, croissance de 30% par an, SLA de 99,95%, p99 <200 ms pour la lecture, <300 ms pour l'écriture. CONTEXTE Il faut concevoir un système de messagerie distribué, similaire à WhatsApp, supportant les chats 1:1 et de groupe, assurant la livraison des messages, l'affichage des statuts en ligne des utilisateurs et le transfert de fichiers multimédia (photos, vidéos, audios). Le système doit garantir une haute disponibilité et une faible latence, supporter un haut parallélisme et évoluer à l'échelle mondiale. EXIGENCES FONCTIONNELLES - Support des chats personnels (1:1) et de groupe avec possibilité d'ajouter/supprimer des participants - Envoi et réception de messages texte et de fichiers multimédia Aucun mécanisme clair de chiffrement end-to-end n'est visible au niveau des services ou des clients, à l'exception d'une annotation générale. - Absence de description explicite du sharding et de la réplication des bases de données par chat_id ou user_id pour la scalabilité et la tolérance aux pannes. - Aucun composant ou mécanisme clair pour gérer la synchronisation hors ligne des messages et des accusés de réception. - La répartition de la charge entre bases de données et services, notamment en période de pics, n'est pas claire. **Points critiques à considérer :**
type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contient ip:port d'une instance spécifique func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs contiennent les adresses de toutes les instances équilibrables func NewBalancer(addrs []string) *Balancer { data := make([]*backentry,len(addrs)) for i,addr := range addrs{ data[i] = &backentry{ backend: NewBackend(addr), inflight: 0, } } return &Balancer{backends:data} } func(b *Balancer)Invoke(ctx context.Context, req Request) (Response, error){ b.mu.Lock() entry := b.best() atomic.AddInt64(&entry.inflight,1) b.mu.Unlock() defer atomic.AddInt64(&entry.inflight,-1) return entry.backend.Invoke(ctx,req) } func(b *Balancer) best() *backentry{ var best *backentry for _,entry := b.backends{ if best == nil || atomic.LoadInt64(&entry.inflight) < atomic.LoadInt64(&best.inflight){ best = entry } } return best }
Questions · 163
Quelle est la différence entre les méthodes areContentsTheSame et areItemsTheSame dans la classe DiffUtil et à quoi elles servent?
Quelle est la différence entre l'utilisation des méthodes subscribeOn et observeOn dans RxJava, et comment elles influencent le flux d'exécution?
Создание собственного аналога findViewById для View
Нахождение ближайшего общего предка в иерархии экранов
Разбор поведения flatMap в цепочке RxJava
Questions · 123
Questions · 109
Что выведет console.log в примере №81
Функция определения палиндромности строки
Надёжный GET‑запрос с автоматическим повтором
Проверка массива на монотонность
Определение пути перелёта между двумя пунктами
Что будет выведено в консоль в данном JavaScript‑фрагменте?
Questions · 97
Questions · 83
Questions · 57
Questions · 41
L'apprentissage automatique a-t-il été utilisé pour la sélection de caractéristiques dans la tâche de classification des voitures?
Il était une fois, un stagiaire antifraude de Yandex Ads a rejoint l'équipe. Pendant que le groupe de fraude opérait, simulant du trafic sur leurs sites via des visites de bots, et recevant ainsi de l'argent pour les impressions publicitaires par des bots, la tâche du stagiaire était de trouver tous ces sites frauduleux avec du trafic faux. Fait intéressant, tout le trafic sur ces sites était généré avec substitution d'IP, donnant l'impression qu'un bot visitait depuis la ville A, mais en réalité, l'appareil était dans un endroit complètement différent. Beaucoup de temps a passé, et le stagiaire a essayé de couvrir tout ce groupe de fraude, réussissant même à attraper certains sites par parties. Mais tout le réseau n'a pas pu être attrapé. Après un certain temps, il a remarqué une nouvelle: dans la ville A, le 02.08.2025, il n'y avait pas du tout d'internet mobile. Cependant, l'internet câblé (domicile) continuait de fonctionner. Étant donné cela, comment le stagiaire peut-il trouver tous les sites faux? Vous avez des logs de sites au format tableau pour la période du 30.07.2025 au 10.08.2025: timestamp | site_id | city_id Chaque enregistrement correspond à une visite d'un site par un appareil. Il est connu que le trafic de bots change beaucoup moins que le trafic réel par jour. Votre tâche est de trouver tous les sites dont le trafic était principalement composé de bots qui ont falsifié leur région pour la ville A. Note La table contenant les données s'appelle logs. Exemple d'un enregistrement de table: timestamp | site_id | city_id [phone]:13:53 | 6e84d9b71ca44aea | A
Questions · 31
Questions · 25
Questions · 13
Questions · 12
Questions · 10
Questions · 10
Questions · 4
Questions · 4
Questions · 3
Questions · 3
Questions · 1