Sobes.tech

Company overview

Яндекс

Última vacante: 6 de agosto de 2026

Vacantes
122
Entrevistas
52
Preguntas
992
Tareas
53

Published in the selected period

Vacantes · 50

All company vacancies

Salary ranges

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

RUB

Datos insuficientes · n=1

Published records

Entrevistas · 52

All company interviews

Grouped by direction

Preguntas y tareas · 1045

Golang

Preguntas · 203

Diseño de un sistema de mensajería escalable que soporte 150 millones de usuarios, 75 millones de DAU, 225 millones de MAU, 1.2M de lecturas / 300k de escrituras en picos de QPS, 5 millones de usuarios simultáneos, 60 PB de datos nuevos al año, crecimiento del 30% anual, SLA del 99.95%, p99 <200 ms para lectura, <300 ms para escritura. CONTEXTO Se requiere diseñar un sistema distribuido de mensajería, similar a WhatsApp, que soporte chats 1:1 y grupales, garantice la entrega de mensajes, muestre estados en línea de los usuarios y permita la transferencia de archivos multimedia (fotos, videos, audios). El sistema debe ofrecer alta disponibilidad y baja latencia, soportar alto paralelismo y escalar a nivel global. REQUISITOS FUNCIONALES - Soporte para chats personales (1:1) y grupales con capacidad de añadir/eliminar participantes - Envío y recepción de mensajes de texto y archivos multimedia NO SE VE UNA IMPLEMENTACIÓN CLARA del mecanismo de cifrado end-to-end a nivel de servicios o clientes, aparte de una anotación general. - No hay una descripción explícita de sharding y replicación de bases de datos por chat_id o user_id para escalabilidad y tolerancia a fallos. - No se observa un componente o mecanismo claro para manejar la sincronización offline de mensajes y recibos de entrega. - No está claro cómo se realiza el balanceo de carga entre bases de datos y servicios, especialmente en picos de carga. **Puntos críticos a tener en cuenta:**

mayor

type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contiene ip:port di un'istanza specifica func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs contiene gli indirizzi di tutte le istanze bilanciate 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 }

Medio

Android

Preguntas · 163

Machine Learning / AI

Preguntas · 123

Frontend

Preguntas · 109

Python

Preguntas · 97

DevOps

Preguntas · 83

Flutter

Preguntas · 57

Data Analyst

Preguntas · 41

¿Se utilizó ML para la selección de características en la tarea de clasificación de automóviles?

pasante

Una vez, un becario de fraude en Yandex Ads se unió al equipo. Mientras el grupo de fraude operaba, simulando tráfico en sus sitios mediante visitas de bots, y así recibían dinero por impresiones de anuncios por parte de bots, la tarea del becario era encontrar todos esos sitios fraudulentos con tráfico falso. Curiosamente, todo el tráfico en estos sitios se generaba con sustitución de IP, haciendo que pareciera que un bot visitaba desde la ciudad A, pero en realidad, el dispositivo estaba en un lugar completamente diferente. Pasó mucho tiempo, y el becario intentó cubrir a todo este grupo de fraude, incluso logrando atrapar algunos sitios en partes. Pero no se pudo atrapar toda la red. Después de un tiempo, notó una noticia: en la ciudad A, el 02.08.2025, no había internet móvil en absoluto. Sin embargo, el internet cableado (doméstico) seguía funcionando. Dado esto, ¿cómo puede el becario encontrar todos los sitios falsos? Tienes registros de sitios en formato tabla para el período del 30.07.2025 al 10.08.2025: timestamp | site_id | city_id Cada registro corresponde a una visita a un sitio por un dispositivo. Se sabe que el tráfico de bots cambia mucho menos que el tráfico real por día. Tu tarea es encontrar todos los sitios cuyo tráfico consistió principalmente en bots que falsificaron su región a la ciudad A. Nota La tabla que contiene los datos se llama logs. Ejemplo de un registro de tabla: timestamp | site_id | city_id [phone]:13:53 | 6e84d9b71ca44aea | A

pasante

Java

Preguntas · 31

iOS

Preguntas · 25

Product Analyst

Preguntas · 13

Data Engineer

Preguntas · 12

Other direction

Preguntas · 10

Blockchain / Web3

Preguntas · 10

Project Manager

Preguntas · 4

QA / QA Automation

Preguntas · 4

Cybersecurity / InfoSec

Preguntas · 3

Product Manager

Preguntas · 3

C/C++

Preguntas · 1

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