Sobes.tech

Golang

¿Usaron Kafka como almacenamiento? ¿Cuántos anuncios estaban en Kafka?

Senior
143

¿Tiene experiencia trabajando con infraestructura? ¿Ha tenido que tocar algo?

Senior
142

¿El trabajo solo está permitido dentro del territorio de la Federación Rusa?

Senior
142

¿Para qué se utiliza más comúnmente Consul en una arquitectura de microservicios?

Senior
142

RPS En promedio, 4-5 mil RPS, alcanzando picos de hasta 12k Pero aquí es importante entender que la carga principal recaía en Kafka. Dado que la arquitectura es asíncrona, por cada creación de anuncio, mi orquestador generaba una cadena de 5-7 eventos en diferentes servicios de verificaciones. En total, procesábamos un flujo de hasta 30k mensajes por segundo en promedio.

Senior
141

¿Cuál es la diferencia entre un desarrollador senior y uno medio en un equipo?

Senior
139

¿La empresa proporciona equipo de trabajo?

Senior
137

¿Qué nivel de salario considera al cambiar de trabajo?

Senior
137

¿Cómo se realizó la prueba de carga y qué métricas se observaron?

Senior
135

¿Cómo resolvías las situaciones cuando rechazaban tu decisión?

Senior
134

¿Cuál es su experiencia general con infraestructura, incluyendo Docker, Kubernetes, CI/CD y redes?

Senior
134

¿Qué tan conveniente es un formato de trabajo híbrido en Moscú con una visita a la oficina al menos una vez a la semana?

Senior
129

¿Por qué queue (de qué palabra Q)?

Senior
123

¿Por qué decidieron salir al mercado? ¿Qué no funciona en Magnit ahora?

Senior
122

¿Cuántos años de experiencia en desarrollo comercial con Go tienes?

Senior
121

¿Cómo iterar sobre un mapa ordenado manteniendo el orden? Implementación del método de iteración.

Senior
121

Si en AddTask se utiliza RLock, ¿cómo se comportarán dos llamadas paralelas a AddTask? ¿Se bloquearán mutuamente?

Senior
119

Cuéntame sobre un caso en el que propusiste algo y tuviste que demostrar tu punto de vista.

Senior
117

// Escribir un manejador asíncrono de tareas como una biblioteca // El cliente pasa un objeto (Task) con datos para realizar la tarea, // en nuestro ejemplo usaremos una estructura vacía. // El manejador puede procesar no más de N tareas simultáneamente, // y no más de X tareas pueden estar en cola para su procesamiento. // Si no hay espacio en la cola, se devuelve un error al cliente inmediatamente. // La tarea se procesa si hay procesadores libres disponibles. // Simulamos la duración del procesamiento con time.Sleep(5*time.Second). // Tan pronto como una tarea termina, tomamos la siguiente de la cola. // Si la cola está vacía, esperamos nuevas tareas de los clientes. // Con un asterisco: ampliar la estructura Task y obtener los estados de las tareas mediante una solicitud separada package scheduler type Scheduler interface { AddTask(t Task) error Close() } type Task interface { Do() }

Senior
111

¿Cómo se mantiene el estado del usuario al cambiar de versiones en un despliegue sin tiempo de inactividad?

Senior
109
/7