Technical Writer
¿Qué es una condición de carrera (race condition)?
¿Hubo casos en los que intencionadamente no usaste goroutines, aunque podías? ¿Por qué?
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } } package main import "fmt" func main() { x := 1 defer func() { fmt.Println("defer:", x) }() x = 2 fmt.Println("now:", x) }
¿SQL o NoSQL? ¿Cuándo eliges uno u otro? ¿Son necesarias las migraciones para MongoDB?
public class Main { public static void main(String[] args) { Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a == b); System.out.println(c == d); } }
Sistema de pago con teléfono Es necesario implementar una arquitectura en la que el cliente pueda pagar sus compras en la caja/KS (caja de autoservicio) usando una aplicación móvil. El pago NO se realiza a través de SBP. Cuando el usuario compra productos, elige pagar con la aplicación. La caja o KS deben identificar al usuario y se inicia el proceso de pago con el banco del cliente. CJM: - El cajero/cliente escanea los productos. - Pasa a pagar. - Se identifica en la caja/KS. - Elige pagar en la aplicación Magnit. - Ingresa a la aplicación Magnit. - Selecciona el banco instalado en el teléfono desde donde se realiza el pago. - En la aplicación bancaria realiza el pago. - Regresa a la pantalla de resultados del pago en la aplicación Magnit. - En la caja/KS recibe un mensaje de pago exitoso. Requisitos no funcionales: - DAU = 1000 en la tienda - Número de tiendas 500 - Número de cajas - en promedio 5 cajas. - El pago debe completarse en un máximo de 2 minutos. - La página de pago debe abrirse en un máximo de 250 ms.
¿Cómo eliges la estructura del proyecto en Go?
¿Cuáles son las diferentes variedades de excepciones en Java y en qué se diferencian?
El servicio consume memoria lentamente. ¿Cómo localizar el problema?
¿Cómo verificar la integridad de los datos en un webhook? ¿Cómo proteger los datos a nivel de transporte?
Cuéntame brevemente sobre ti.
¿Al trabajar con highload: menos asignaciones o mejor legibilidad del código?
¿Qué objetos inmutables conoces en Java?
Cuéntame sobre un caso interesante en tu última empresa, ¿qué cuello de botella hay ahora?
¿Por qué razones un microservicio puede no escalar?
¿Qué enfoques utilizas para construir el servicio? Nombra los factores principales de la 12-factor app
¿Qué patrones son adecuados para validar datos, crear objetos y seleccionar un método de pago?
¿Qué capas ves en la aplicación? ¿Cómo se comunican entre ellas?
Cuéntame sobre transacciones distribuidas. ¿Cuál es la diferencia entre orquestación y coreografía?
Explica qué es una interfaz desde el nivel de un desarrollador junior