Sobes.tech

Company overview

Яндекс

Dernière offre: 6 août 2026

Offres
122
Entretiens
52
Questions
992
Tâches
53

Published in the selected period

Offres · 50

All company vacancies

Salary ranges

Currencies are not converted. Lower and upper bounds are calculated independently and show their own sample sizes.

RUB

Données insuffisantes · n=1

Published records

Entretiens · 52

All company interviews

Grouped by direction

Questions et exercices · 1045

Golang

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 :**

Sénior

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 }

Milieu

Android

Questions · 163

Machine Learning / AI

Questions · 123

Frontend

Questions · 109

Python

Questions · 97

DevOps

Questions · 83

Flutter

Questions · 57

Data Analyst

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?

Stagiaire

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

Stagiaire

Java

Questions · 31

iOS

Questions · 25

Product Analyst

Questions · 13

Data Engineer

Questions · 12

Other direction

Questions · 10

Blockchain / Web3

Questions · 10

Project Manager

Questions · 4

QA / QA Automation

Questions · 4

Cybersecurity / InfoSec

Questions · 3

Product Manager

Questions · 3

C/C++

Questions · 1

Яндекс - company overview - sobes.tech