Golang
Cuéntame sobre el diseño del sistema de moderación/orquestador: cómo lo diseñaron, qué decisiones tomaron?
¿Qué estrategia de almacenamiento en caché elegir: cache-aside o write-through, considerando el patrón de comportamiento de los usuarios al verificar el estado del pedido?
¿Qué reglas de trabajo con los canales se deben conocer al desarrollar (cerrado, abierto, cuándo se puede hacer qué)?
Escribir un problema en el lenguaje Go — sección práctica (problemas de la vida real del desarrollador, sin algoritmos): mejorar o corregir un servicio. Duración — 1,5 horas.
¿Qué hacer si los usuarios se quejan por el cambio en el modelo de monetización, pero la empresa tiene un plan claro?
Codificación en vivo: semáforo — cómo funciona y su implementación basada en un canal con búfer.
¿Qué metodología utilizas: Scrum, Kanban o una mezcla?
¿Cuál es la limitación de un semáforo y un canal con búfer como soluciones para limitar las solicitudes paralelas?
¿Alguna vez ha oído hablar antes de [empresa] o de nuestros productos?
¿Qué son las estimaciones?
¿Con qué no te gustaría enfrentarte ya en el trabajo?
¿Cuál es tu nivel: middle, middle+, senior?
Análisis de código en Go: ¿qué hace el código, qué problemas hay?
¿A qué grupo (mutable/inmutable) pertenece la interfaz en Go?
¿Qué son los tokens de autorización y cuáles existen?
¿Cuál es la diferencia entre bases de datos relacionales y NoSQL?
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:**
Enumere la pila principal en Go
¿Alguna vez ha tenido que registrar horas, rastrear el tiempo en algún sistema?
""" Los asientos en el cine están dispuestos en una fila. Un espectador que acaba de llegar elige un asiento, para sentarse lo más lejos posible de los demás espectadores en la fila. Es decir, la distancia desde ese asiento, que ocupará el espectador, hasta el espectador más cercano debe ser máxima. Se garantiza que siempre hay asientos libres en la fila y que ya hay al menos un espectador sentado. Escriba una función que, dada una fila de asientos (una matriz de ceros y unos), devuelva la distancia (número de espacios entre los asientos) desde el asiento elegido hasta el espectador más cercano. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }