GFT Technologies SE
Magic Media
Ingeniero de Pruebas de Carga
Sobre la oportunidad
Cyrex, empresa de Magic Media, es una startup de medios y tecnología impulsada por la creatividad y la innovación. Trabajamos con desarrolladores y editores líderes en la industria de los videojuegos, brindando soporte y soluciones diseñadas en torno a las necesidades individuales y ejecutadas por expertos globales.
Durante más de una década, Cyrex ha asegurado y sometido a pruebas de estrés los productos de algunas de las empresas tecnológicas más exigentes del mundo, desde plataformas de entretenimiento globales hasta infraestructura regulada financiera y sanitaria. Somos un equipo pequeño, pero hemos construido una lista de clientes y un historial que van mucho más allá de nuestro tamaño.
Las pruebas de carga son una de las cosas por las que somos más conocidos.
Los estudios y los equipos de plataforma acuden a nosotros antes de un lanzamiento, una versión importante o una campaña de marketing, el momento en que años de trabajo se encuentran de repente con un gran número de usuarios simultáneos, sin oportunidad de un segundo intento. Nuestro trabajo es simular ese momento antes de que ocurra, encontrar lo que falla, entender por qué y trabajar junto al cliente para solucionarlo.
La plataforma abarca un backend Go, dos React frontends y una infraestructura AWS capaz de generar suficiente carga para someter a sistemas serios a una tensión real.
Esa combinación es la razón por la que buscamos a alguien con amplitud en lugar de un especialista estrecho. Este puesto se sitúa en algún lugar entre la ingeniería de software, la ingeniería de rendimiento, el análisis de sistemas y la entrega técnica, y necesitas sentirte cómodo moviéndote entre los cuatro.
Nuestros clientes son técnicos. Confían en nuestro juicio tanto como en nuestras herramientas.
Hacemos esto utilizando una plataforma de pruebas de carga que construimos nosotros mismos. Es madura, probada y ya está en producción. Parte de tu función será mantenerla así: mantenimiento, corrección de errores, actualizaciones de dependencias e infraestructura, y mejoras específicas cuando un proyecto las requiera.
Sin embargo, el mantenimiento de la plataforma no es un trabajo a tiempo completo, y no vamos a pretender que lo sea. La mayor parte de este puesto consiste en las pruebas de carga en sí.
Eso comienza con la ingeniería de pruebas: diseñar escenarios que modelen con precisión cómo se comportan los usuarios reales e implementarlos en Python contra los protocolos que utilice el sistema del cliente.
También significa trabajar directamente con los clientes. Nuestras pruebas de carga son dirigidas por expertos; no entregamos un panel y desaparecemos. Trabajamos en iteraciones con el equipo de ingeniería del cliente: acordamos qué intentamos demostrar, construimos el escenario, ejecutamos la prueba, analizamos los resultados juntos, identificamos el cuello de botella, hacemos cambios y volvemos a empezar.
Participarás en esas sesiones y, a medida que te desarrolles en el puesto, se espera que las lideres.
A quién buscamos
Buscamos un ingeniero que se sienta realmente cómodo moviéndose por una pila tecnológica y que trabaje directamente con un cliente.
Escribes Python sólidos. Es el lenguaje de nuestros escenarios de prueba y de gran parte de las herramientas que los rodean, por lo que es donde pasarás la mayor parte de tu tiempo de desarrollo. Pero no te aferras a permanecer en un solo lenguaje: mantener la plataforma saludable significa estar dispuesto a trabajar en Go, TypeScript, Terraform e AWS según lo exija la situación.
Te sientes cómodo trabajando en bases de código que no escribiste. Una plataforma madura se beneficia de cambios cuidadosos y bien definidos en lugar de reescrituras innecesarias. Puedes entrar en código desconocido, entender cómo funciona, diagnosticar el problema real, solucionarlo correctamente y, idealmente, dejar las cosas un poco mejor de como las encontraste.
Te interesan los sistemas bajo estrés. Cuando algo empieza a fallar con alta concurrencia, tu instinto es entender exactamente por qué. Te sientes cómodo investigando métricas, trazas, registros y el comportamiento de la aplicación hasta que puedas explicar lo que realmente está sucediendo, y sabes que la primera explicación no siempre es la correcta.
También puedes comunicar esa razón claramente a los clientes. No en un sentido de ventas, sino como ingeniero: explicando qué le dice una curva de latencia a su equipo, desafiando un escenario de prueba que no responderá a la pregunta que creen que lo hará, y manteniendo la calma y la metodología cuando una prueba en vivo produce un resultado inesperado.
Finalmente, eres pragmático sobre las partes menos glamurosas de la ingeniería de rendimiento. Los datos de prueba, los grupos de cuentas, los clientes de protocolos inestables, los entornos incómodos y la reproducción de comportamientos que solo aparecen bajo carga no son distracciones del trabajo, son el trabajo. Los ingenieros que tienen éxito aquí disfrutan resolviendo esos problemas también.
La pila tecnológica
- Ingeniería de pruebas: Python, utilizando herramientas de código abierto para pruebas de carga que extendemos considerablemente
- Mantenimiento de la plataforma backend: Go, PostgreSQL
- Frontend: React, TypeScript
- Infraestructura: AWS, infraestructura como código, contenedores
- Protocolos: HTTP, WebSockets, gRPC, protobuf, y ocasionalmente protocolos binarios personalizados
- 4+ años de experiencia en ingeniería de software, con propiedad significativa de lo que se entregó.
- Sólidas habilidades en Python. Este es el lenguaje principal para el puesto.
- Experiencia práctica en la nube, idealmente con AWS, incluyendo infraestructura como código y contenedores, y una comprensión de lo que sucede técnica y financieramente cuando la infraestructura se escala agresivamente.
- Suficiente amplitud para mantener con confianza un backend tipado y un frontend en React que no hayas construido originalmente, incluso si ninguna de las dos es tu especialidad principal.
- Una comprensión práctica de los sistemas distribuidos y sus modos de fallo, incluyendo tiempos de espera, contrapresión, límites de conexión, contención de recursos y la diferencia entre un sistema que es lento y uno que realmente está fallando.
- Las habilidades de comunicación para liderar una sesión técnica con un cliente, explicar claramente lo que se está viendo y hacer recomendaciones de ingeniería sólidas.
- Excelente inglés hablado y escrito.
- La experiencia con herramientas de rendimiento o pruebas de carga como Locust, k6, JMeter, Gatling, o herramientas que hayas construido tú mismo es una gran ventaja.
- La experiencia con videojuegos, sistemas en tiempo real o plataformas de consumo de alto tráfico también es útil, pero no es obligatoria.
Una nota práctica sobre el puesto
Algunas ventanas de prueba ocurren fuera del horario de oficina normal.
Esa es la naturaleza del trabajo: las pruebas a veces necesitan ejecutarse cuando el entorno de un cliente está disponible, o cuando los equipos de ingeniería de diferentes zonas horarias pueden participar.
No es constante, y planificamos en torno a ello cuando sucede, pero es una parte real del puesto y preferimos ser claros al respecto desde el principio.
- La oportunidad de trabajar en sistemas detrás de productos utilizados por un gran número de personas, en los momentos en que la fiabilidad es más importante.
- Un puesto que combina ingeniería práctica, resolución profunda de problemas técnicos y entrega al cliente, en lugar de ser puramente una cola de tickets o puramente consultoría.
- Propiedad real de una plataforma madura de pruebas de carga que ya está construida, probada y funcionando, con la libertad de mejorarla a medida que nuestras necesidades evolucionan.
- Espacio para crecer con Cyrex. A medida que adquieras experiencia y asumas más responsabilidad, existen oportunidades para liderar proyectos más grandes y complejos, profundizar tu propiedad técnica, ayudar a dar forma a nuestro enfoque de ingeniería de rendimiento y crecer hacia roles de liderazgo técnico o de equipo más amplios.
- Contacto directo con los equipos de ingeniería a los que estás ayudando, con la oportunidad de convertirte en un interlocutor técnico de confianza para algunas de las empresas tecnológicas más exigentes del mundo.
- Acceso directo a fundadores y liderazgo, con decisiones tomadas en días en lugar de trimestres.
- Compensación competitiva con revisiones sencillas y regulares.
- Un equipo pequeño y multicultural donde tu contribución es visible y donde hay espacio para dar forma a tu puesto a medida que la empresa evoluciona.
