RUB
Datos insuficientes · n=1

Company overview
Última vacante: 6 de agosto de 2026
Published in the selected period
Currencies are not converted. Lower and upper bounds are calculated independently and show their own sample sizes.
Datos insuficientes · n=1
Published records
Entrevistas · 19
Entrevistas · 12
Entrevistas · 5
Entrevistas · 4
Entrevistas · 3
Entrevistas · 2
Entrevistas · 1
Entrevistas · 1
Entrevistas · 1
Entrevistas · 1
Entrevistas · 1
Entrevistas · 1
Entrevistas · 1
Grouped by direction
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:**
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 }
Preguntas · 163
¿Cuál es la diferencia entre los métodos areContentsTheSame y areItemsTheSame en la clase DiffUtil y para qué sirven?
¿En qué se diferencian el uso de los métodos subscribeOn y observeOn en RxJava, y cómo afectan al flujo de ejecución?
Создание собственного аналога findViewById для View
Нахождение ближайшего общего предка в иерархии экранов
Разбор поведения flatMap в цепочке RxJava
Preguntas · 123
Preguntas · 109
Что выведет console.log в примере №81
Функция определения палиндромности строки
Надёжный GET‑запрос с автоматическим повтором
Проверка массива на монотонность
Определение пути перелёта между двумя пунктами
Что будет выведено в консоль в данном JavaScript‑фрагменте?
Preguntas · 97
Preguntas · 83
Preguntas · 57
Preguntas · 41
¿Se utilizó ML para la selección de características en la tarea de clasificación de automóviles?
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
Preguntas · 31
Preguntas · 25
Preguntas · 13
Preguntas · 12
Preguntas · 10
Preguntas · 10
Preguntas · 4
Preguntas · 4
Preguntas · 3
Preguntas · 3
Preguntas · 1