Databricks
Devoted Studios
Ingeniero Backend
Sobre la oportunidad
Devoted Studios es una empresa de desarrollo de videojuegos con sede remota a nivel mundial, especializada en Co-desarrollo, Porting y Producción Artística Integral para la industria global del videojuego.
Nuestro equipo incluye talentos de talla mundial que aportan una profunda experiencia en desarrollo externo, optimización de pipelines y resolución creativa de problemas. Ya sea portando juegos a nuevos sistemas, mejorando características de jugabilidad o creando efectos visuales impresionantes, Devoted Studios opera como una extensión confiable y flexible de los equipos internos de nuestros socios.
Estamos orgullosos de ser el socio de desarrollo elegido por líderes de la industria como:
- Epic
- Xbox
- Meta
- Obsidian Entertainment
- Riot
- Gearbox Software
Buscamos un Ingeniero Backend con sólida experiencia en Java y C++ para trabajar en sistemas backend que soporten la funcionalidad del juego y la interfaz cliente/servidor.
Este puesto se encuentra en la intersección de los servicios backend y la integración del cliente del juego, requiriendo a alguien que no solo entienda cómo construir sistemas fiables del lado del servidor, sino también cómo estos sistemas son consumidos por los clientes del juego. Trabajarás en el backend de MCP, la interfaz cliente/servidor y los procesos de exportación de JSON, con un fuerte enfoque en el rendimiento, la eficiencia, la seguridad y la corrección.
El candidato ideal se siente cómodo trabajando dentro de restricciones de rendimiento del mundo real y entiende cómo técnicas como el throttling, batching, caching y el mocking de llamadas a API pueden reducir escrituras innecesarias en la base de datos, minimizar la latencia y mantener los sistemas receptivos a escala.
Dado que estos sistemas manejan datos sensibles de los jugadores, buscamos un ingeniero con buen juicio técnico, prácticas de prueba disciplinadas y una excepcional atención al detalle.
Responsabilidades Clave
Diseño y Arquitectura de Servicios
- Diseñar y construir servicios web escalables y resilientes en Java y/o Scala que soporten las necesidades del cliente del juego en PC, consola y móvil.
- Ser responsable del modelo de datos: elegir el almacén adecuado (MongoDB para almacenamiento flexible de documentos, DynamoDB para clave-valor a escala, Redis para caché y estado de sesión) y justificarlo.
- Diseñar APIs REST contra las que los clientes del juego se integren bien: contratos claros, versionados, documentados, tolerantes a variaciones del lado del cliente.
- Arquitecturar para el perfil de carga de un juego en vivo: carga media, picos de lanzamiento, picos de eventos y degradación controlada cuando fallan las dependencias ascendentes.
- Definir y hacer cumplir los límites de los servicios: saber dónde termina un servicio y comienza otro, y por qué.
Infraestructura y Despliegue de AWS
- Construir y mantener la infraestructura de AWS utilizando herramientas de IaC (CDK, Terraform, o CloudFormation; confirmar lo que se está utilizando en el proyecto).
- Ser responsable del pipeline de despliegue de los servicios que construyen: configuración de CI/CD, promoción de entornos, capacidad de reversión.
- Dimensionar correctamente los recursos de AWS para coste y rendimiento: no recurrir por defecto a la sobreaprovisionamiento y no dejar ineficiencias de coste obvias.
- Familiaridad con los servicios de AWS relevantes para backends de juegos: EC2, ECS/EKS, Lambda (cuando sea apropiado), API Gateway, ElastiCache, SQS/SNS, CloudWatch, S3.
- Entender la postura de red y seguridad de los servicios expuestos a los clientes del juego: diseño de VPC, grupos de seguridad, privilegio mínimo de IAM, gestión de secretos.
Operación en Vivo y Observabilidad
- Instrumentar cada servicio para su preparación en producción: logging estructurado, métricas, tracing distribuido, health checks y alertas antes de que salga en vivo, no después del primer incidente.
- Monitorizar servicios en producción: leer dashboards, interpretar anomalías, distinguir el ruido de la señal.
- Responder a incidentes en producción en los servicios que poseen: tener responsabilidades de guardia proporcionales a la criticidad del servicio.
- Escribir post-mortems y dar seguimiento a las mejoras estructurales para que el mismo modo de fallo no se repita.
- Entender la diferencia entre un síntoma y una causa raíz: no arreglar síntomas.
Integración de Clientes Multiplataforma
- Trabajar directamente con ingenieros de clientes de juegos (PC, consola, móvil) para definir contratos de integración, revisar patrones de uso del lado del cliente y depurar problemas de integración.
- Entender las restricciones de cada entorno de plataforma: requisitos de certificación de consola sobre uso de red, sensibilidad de datos móviles, permisividad de PC, y diseñar interfaces de servicio en consecuencia.
- Ser responsable de la superficie de integración: documentación de API que sea correcta, versionada y se mantenga actualizada a medida que el servicio evoluciona.
- Participar en revisiones técnicas orientadas al cliente donde el diseño del servicio backend esté sobre la mesa.
Calidad y Estándares de Ingeniería
- Escribir pruebas unitarias y de integración como resultado de primera clase, no como una ocurrencia tardía.
- Revisiones de código: dar feedback específico y accionable y recibirlo sin defensividad.
- Mantener la documentación del servicio: decisiones de arquitectura, runbooks operativos, limitaciones conocidas, mapa de dependencias.
- Exponer explícitamente la deuda técnica: nombrarla, cuantificar su coste y proponer una ruta de remediación.
Requisitos mínimos
5+ años de experiencia profesional en ingeniería de software, con experiencia significativa en el desarrollo de sistemas backend/lado del servidor.
Al menos 2 años de experiencia profesional en Java, incluyendo desarrollo de producción backend.
Al menos 2 años de experiencia profesional en C++, idealmente en desarrollo de videojuegos o en otro entorno sensible al rendimiento.
Experiencia demostrada trabajando en la interfaz cliente/servidor, en lugar de desarrollo puramente backend.
Experiencia en el desarrollo e integración de APIs REST y trabajando con intercambio de datos basado en JSON.
Experiencia con procesos de exportación de JSON/serialización de datos.
Sólida comprensión de técnicas de optimización de rendimiento, incluyendo throttling, batching, caching, optimización de peticiones y mocking de API.
Experiencia en el diseño de sistemas que minimizan operaciones innecesarias en bases de datos y llamadas de red.
Preferible
- Experiencia en el diseño de servicios que manejan picos de lanzamiento: patrones de escalado horizontal, balanceo de carga basado en colas, circuit breakers.
- Familiaridad con las restricciones de SDK específicas de la plataforma: PlayStation Network, Xbox Live, Nintendo NSO, o Apple/Google móvil; entendiendo lo que la plataforma restringe y lo que requiere del backend.
- Kafka o SQS/SNS para comunicación de servicios basada en eventos.
- Experiencia en operaciones de clúster de Kubernetes (EKS).
- Ingeniería consciente de la seguridad: OAuth/OIDC, limitación de tasa, validación de entrada, conciencia de OWASP a nivel de diseño de servicio.
Este es un puesto de empleo a tiempo completo con beneficios estándar en la provincia de Quebec.
