¿Cómo es ser programador en Zynga?

Mi respuesta a esta pregunta ha variado en el transcurso de los dos años y medio que estuve allí y su experiencia variará según el equipo en el que esté, el gerente general del proyecto y varios elementos organizativos que probablemente estarán completamente fuera. de tu control.

Respuesta corta:
Una combinación de emoción (de trabajar en problemas grandes e interesantes) y frustración (de lidiar con los problemas que se crean en una gran organización basada en métricas).

Pros:

  • Envíe el código a mucha gente, muchas veces a la semana.
  • Los equipos de juego son unidades independientes y tienen mucho control sobre la pila de tecnología que quieren usar (hasta cierto punto, lea a continuación)
  • Mucha tecnología avanzada, tanto en frontend como en backend:
  • Los juegos son exigentes en la interfaz debido al impacto que el rendimiento en tiempo de ejecución tiene en la retención y la viralidad. La amplitud de los problemas también es bastante amplia, similar al trabajo del juego AAA: IA, redes, localización, gráficos, sonido, interfaz de usuario, desarrollo de herramientas, gestión de activos, etc.
  • En el backend, Zynga tiene algunos de los mayores problemas de escalado: manejar miles de millones de operaciones de DB / MC al día, millones de usuarios concurrentes, detección de trampas / fraudes, construir su propia capa de servicios basada en la nube, desarrollar un sistema de análisis de clase mundial, etc.
  • La infraestructura tecnológica / perfil de inversión tecnológica se actualiza con bastante regularidad. Esto es más un testimonio del liderazgo tecnológico en la empresa y la capacidad de darse cuenta cuando hay nuevas tendencias que brindan una ventaja en el mercado o la productividad. Por ejemplo, en el tiempo que estuve allí, cambiamos de SVN a Git a través de una docena de estudios / grupos centrales e hicimos importantes inversiones en dispositivos móviles, tanto nativos como HTML5 porque salió a la luz que necesitábamos para seguir siendo competitivos. empresa.

Contras:

  • Mucha tecnología compartida (algunas de las cuales yo era personalmente responsable) que necesita utilizar por razones comerciales. Esto normalmente no sería un problema, excepto que gran parte de esta tecnología no es de autoservicio y depende de equipos de servicio compartido; evaluando tu habilidad para lanzar cosas tan rápido como quieras. Además, en algunos casos, el trabajo técnico compartido no se completa, puede tener errores o puede faltar características de las que depende. Similar a los tipos de problemas que experimentaría al trabajar con API externas de terceros.
  • PHP es el idioma predeterminado para el trabajo del lado del servidor. Esto no es un golpe contra PHP, sino más bien un reclamo por la falta de opciones. Debido al punto anterior, la mayoría de las bibliotecas para estos componentes compartidos se escriben y actualizan primero en PHP. Si bien técnicamente todo es REST, cuando tienes un horario apretado para lanzar un juego, es posible que no tengas el lujo de escribir una biblioteca para el idioma del lado del servidor que decidas usar. Sin embargo, creo que esto puede cambiar con suficiente apoyo de los equipos de juego y puede que ya lo haya hecho.
  • Gran org. Esto puede no estar aislado de Zynga, pero definitivamente existe. Si desea hacer una gran apuesta audaz por la nueva tecnología, debe tener la capacidad de convencer a los demás de que es una buena idea. También resulta en interminables discusiones pedantes sobre qué dirección tomar. Irónicamente, muchas veces simplemente hacer lo que crees que es correcto y pedir perdón más tarde (pedir perdón, no permiso) tiende a funcionar.
  • A menudo, la deuda tecnológica queda en segundo plano ante el pensamiento empresarial a corto plazo. Esta es la eterna lucha en el desarrollo de juegos en vivo. Dada la naturaleza impulsada por las métricas de Zynga, a veces es difícil demostrar estadísticamente por qué ciertas inversiones tecnológicas tendrán un impacto comercial positivo en comparación con el desarrollo de nuevas características. Una analogía aquí sería tratar de demostrar que la publicidad de la marca genera mayores ingresos, intuitivamente tiene sentido pero es difícil de probar.

Actualmente soy ingeniero colaborador individual en un equipo de juego en la oficina de SF.

El trabajo es genial. La compañía está llena de gente talentosa y apasionada. Personas con las que quieres hacer algo excelente.

En cuanto a un día en la vida, es bastante normal para el tipo de trabajo. Tengo reuniones, generalmente de 1 a 2 horas al día, dependiendo de la coordinación necesaria para lo que sea que esté trabajando y el tiempo que tarden las reuniones de arquitectura de equipo.

El resto de mi día lo paso codificando o planeando mi código. Trabajo tanto en el código del cliente como del servidor, por lo que generalmente estoy ejecutando una instancia de cada uno, editores de los datos y prestando atención al chat del equipo.

Las ventajas son excelentes, pero en realidad son solo representativas de la cultura central de la empresa, que es poner a los empleados primero. Está muy claro que el liderazgo se preocupa profundamente por las personas y el negocio. Esa es una gran victoria.

Si desea que amplíe algo o si tiene preguntas más detalladas, por favor pregunte.

More Interesting

Diseño de la experiencia del usuario: ¿Cuáles son las mejores firmas de diseño de UI / UX en el área de la Bahía de San Francisco?

Tengo una oferta de Amazon (Seattle) para el puesto de analista de negocios. Sin embargo, el salario base es menor que mi base actual. ¿Es bueno aceptar la oferta?

¿Cuál es el mejor software para hacer diagramas de red?

¿Cómo funciona un motor de búsqueda?

¿Cuál es el tipo de trabajo que un más nuevo obtendrá en Accenture como ingeniero de software asociado?

¿Qué es dimensionamiento en desarrollo ágil?

¿Cuál es la mejor opción para la ingeniería remunerada en Nepal para un estudiante con alrededor de un rango 2200 en IOE?

No todos pueden convertirse en gerentes. ¿Por qué la gente de software india no entiende esto? ¿Por qué India es un país tan malo para los desarrolladores de software más antiguos? ¿Por qué son tratados con falta de respeto si están codificando a la edad de 35 años?

¿Por qué los profesionales indios en América del Norte están tan ridículamente sobrevalorados?

¿Es un ingeniero abierto y obstinado algo malo?

¿Cómo continúan desarrollándose los ingenieros localmente a medida que la pila crece en su producto?

¿Cuál es el equipo de desarrollo de SugarCRM más grande?

¿Es una buena idea externalizar la reescritura de nuestro software?

¿Son los trabajos de Ingeniería de Software en las oficinas de las grandes empresas en la costa este más competitivos que los de sus oficinas en la costa oeste?

¿Cómo se hacen amigos los ingenieros con los diseñadores de arte?