¿La experiencia de ingeniería de despliegue en Palantir explicaría la experiencia como ingeniero de software? ¿Se podrá hacer un cambio de Palantir (ingeniero de despliegue) a Google (ingeniero de software)?

En Palantir, no es tu título lo que importa. Es lo que haces de eso.

Soy un ingeniero de despliegue avanzado (FDE) en Palantir. (Si está confundido acerca de qué es un FDE, esta pregunta resume el papel de un FDE en Palantir bastante bien: ¿Cuál es el día a día de un ingeniero desplegado hacia adelante en Palantir?)

Primero, como prefacio, el rol de Ingeniería de Implementación Avanzada en Palantir cubre una variedad de puestos, desde Deltaworks, que sería considerado un desarrollador principal en cualquier otra compañía; a Echos, que son expertos en la materia, pero no necesariamente codifican. Sin embargo, la mayoría de los ingenieros con despliegue avanzado son lo que llamaríamos Deltas, o FDE técnicos, y voy a asumir que estás preguntando acerca de ser un Delta en Palantir.

Estoy de acuerdo con uno de los usuarios de Anon en que, como FDE, a menudo tienes un papel mucho más reactivo de lo que estarías si estuvieras más aislado de un usuario final. El nombre del juego es lograr el equilibrio entre un buen diseño y lograrlo. Para algunos, este estilo de ingeniería receptivo en el que rara vez tienes tiempo para relajarte y diseñar la solución perfecta es difícil de manejar. Para otros, este compromiso constante con los clientes y la creación rápida de prototipos es de lo que se trata la ingeniería de software.

Yo escribo el código. Montones y montones. Alrededor de la mitad de mis proyectos son únicos para una necesidad inmediata, y la otra mitad son cosas más experimentales / preventivas. Decido y priorizo ​​casi todos mis propios proyectos, dependiendo de lo que veo como la necesidad actual. No pretendo que la mayor parte de mi código esté tan limpio y bien diseñado y probado como la mayor parte de nuestro código central. Pero esa es la vara de medir equivocada; Veo que mi papel es diferente de la ingeniería central, pero no menos ingeniería. Mi misión es estar íntimamente familiarizado con nuestros clientes y sus problemas difíciles, pasados, presentes y futuros, y luego encontrar formas de eliminar esos problemas del agua. Parte de eso es responder extremadamente rápido a las demandas de cualquier cliente a través de mi contacto diario con ellos. A veces es divertido divertirse rápidamente hackeando algunas API en una fuente de datos que le interesa al cliente. A veces, es necesario leer las pautas de la red un poco aturdidoras para ver cómo podemos configurar nuestras cajas para cumplir con los protocolos de la organización. Pero un poco de eso es crear prototipos de soluciones nuevas y locas para problemas difíciles y, si funcionan bien, mantener algunos de ellos y ver a sus hijos florecer en una característica de producto ampliamente utilizada en muchos sitios de clientes.

Aquí hay cosas en las que he trabajado significativamente en la última semana o tres:

  • Experimentar y crear prototipos de un sistema para manejar el análisis casi en tiempo real de ciertos tipos de datos de salud descomunales. Estoy construyendo sobre una tecnología de fondo existente de Palantir, así como un servidor de agregación que construí cuando era un interno de FDE. Muchas de las técnicas y el almacenamiento en caché de MapReduce funcionan aquí, así como las visualizaciones y paneles que pueden actualizarse de forma asincrónica.
  • Hablando con un cliente potencial y abogados para resolver problemas en un contrato que estamos tratando de resolver.
  • Se corrigieron errores de la interfaz de usuario en algunos de los complementos personalizados que hemos implementado.
  • Instalar servidores (acumularlos físicamente (y en el proceso aprender que un conector L5-30 definitivamente no cabe en un zócalo L6-30 …), configurar la red y configurar la pila de Palantir y configurar las tuberías de integración de datos).
  • Escribir consultas SQL para obtener datos en un formato que sería más rápido de importar, lo cual es importante para un socio que tiene datos a escala de terabytes en una base de datos que no cuenta con recursos suficientes cuando se trata de RAM.
  • Escribir una extensión en la plataforma para permitir la observación de datos en un nivel agregado de forma predeterminada (para un rendimiento significativamente mejor en este caso), y luego realizar cortes de los datos brutos subyacentes en el fondo de forma invisible si lo desea.
  • Trabajando con nuestros increíbles pasantes en algunos proyectos geniales. Uno de ellos es crear un prototipo de plataforma genómica. Otra es crear una forma súper flexible y conectable para crear y modificar visualizaciones de tablero. Otra es modelar algunas tendencias ambientales. Y otro es analizar los datos de descubrimiento de drogas.
  • Trabajando con el equipo de ingeniería central para probar algunas de las funciones de cómputo del backend con un cliente beta. Tener contacto constante con nuestros equipos centrales de productos es invaluable para ambas partes.
  • Volar hacia el medio oeste para reunirse con un posible cliente interesado. Pasamos aproximadamente dos horas hablando sobre las fuentes de datos y la escala, los diversos puntos de contacto en nuestras organizaciones, problemas legales y requisitos de hardware y redes.
  • Actualizar algunos complementos a nuestras versiones API más nuevas y agregar algunas características solicitadas mientras estoy en ello. Estos fueron escritos por FDE, incluido yo mismo, y ahora se utilizan en una docena de sitios de clientes. Son “núcleo” en todo menos en el nombre.

Además, los FDE de Palantir pueden hacer rotaciones como ingenieros centrales. E incluso si no hago una rotación, puedo verificar la base de código del producto central si hay algo que quiero mejorar. (Por supuesto, aún deberá aprobarse y revisarse el código).

Entonces, como Palantir FDE, mi opinión personal es que, de hecho, lo prepara muy bien para un rol de ingeniería de software más tradicional, especialmente aquellos en startups y compañías más pequeñas y aquellos que tienen un componente orientado al cliente. Personalmente, no veo que el contacto constante con los clientes sea una distracción de la ingeniería. Para mí es más un componente necesario para construir buenos productos y características. Entiendo que hay muchas personas que están más entusiasmadas por los desafíos de ingeniería en su forma más pura cuando se abstrae de cualquier preocupación de los clientes o negocios, pero es innecesariamente confrontacional secuestrar toda la ingeniería de software en ese extremo del espectro. Todos somos ingenieros. Todos estamos ahí para resolver problemas difíciles e interesantes, pero solo tenemos diferentes ímpetu y enfoques. Ningún camino es mejor que otro.

Para citar a nuestra reclutadora de FDE, Amanda Gregg, “si le preguntas a 10 ingenieros desplegados en el futuro lo que hacen, obtendrás 10 respuestas diferentes. Hay una gran oportunidad para definir tu propio desarrollo”.

Como ex FDE @ Palantir, así es como se ve el trabajo de ingeniería de FDE:

1. La mayor parte del trabajo que haces es excepcional. Está creando soluciones locales para problemas (pequeños o grandes), pero no se espera que lo haga teniendo en cuenta la longevidad.
2. Conjunto de problemas más amplio. Los ingenieros se adhieren a sus áreas centrales. Los FDE no tienen más remedio que resolver el problema en cuestión. Y ese problema puede ser _cualquier cosa_. El contrato puede depender de ello.
3. Plazos más cortos. Tiene una expectativa de tiempo de respuesta rápido. Adaptarse o morir.

No lo recomendaría a las personas que se esfuerzan por eventualmente pasar a un papel central como ingeniero de backend en Google o Facebook. Los problemas que resolverá son a) independientes yb) dispersos. Te conviertes en una navaja suiza que puede encontrar una solución a muchos problemas, pero no tiene experiencia en la construcción de plataformas o software real.

Los FDE se valoran (en promedio) menos que los desarrolladores principales de Palantir. Pero los mejores FDE son valorados (por el liderazgo sénior) mucho más altos que los mejores desarrolladores, porque están vinculados a los contratos más grandes (y solo un subconjunto muy pequeño de FDE o ingenieros son capaces de incorporar esos contratos).

Los desarrolladores principales no respetan los talentos de ingeniería del 95% de los FDE. Para el otro 5%, los FDE se respetan pero no se escuchan directamente (por ejemplo, de la misma manera que lo haría un gerente de producto). Esto puede ser frustrante para las personas, especialmente aquellas que provienen de una sólida formación técnica.

Soy un FDE actual en Palantir y no recomendaría el papel a cualquiera que realmente desee ser * solo * un ingeniero de software. Si bien es cierto que escribimos una gran cantidad de código, la mayor parte del trabajo tiende a ser excepcional (integración de datos, trabajos de reducción de mapas, pequeñas aplicaciones web, personalización de plataformas palantir) escritas por su cuenta sin mucha / ninguna supervisión de otros. Es un entorno difícil de aprender y la mayoría de los FDE tienden a ser mayores con algo de experiencia en la industria.

Dicho esto, también hay una serie de ventajas para el papel frente a un SDE tradicional. Trabajar directamente con los clientes nos proporciona un ciclo de retroalimentación más estricto y hace que sea más probable que pueda lograr resultados reales en el campo. También tendrá más oportunidades de viajar que cualquier SDE: yo / mis compañeros de trabajo he estado en Londres, Oriente Medio, Asia, Australia, … lo que considero una de las mejores ventajas del trabajo.

Los mejores FDE tienden a ser personas que tienen habilidades técnicas tremendas (particularmente en codificación, sistemas o ciencia de datos) que también son capaces y están dispuestos a realizar otras funciones según sea necesario: visión técnica, gestión de proyectos, administración / ingeniería de sistemas, etc.

Ser un ingeniero de despliegue avanzado rara vez es un gran movimiento profesional para un ingeniero de software. Palantir es un lugar interesante para trabajar, pero trabajar en otro lugar (Facebook, Twitter, alguna startup respaldada por YC) como ingeniero de software habitual es mucho mejor.

Independientemente del argumento de venta que le hayan dado:

  • Si está “desplegado hacia adelante”, está en los sitios de los clientes por definición, por lo que no tendrá tanto contacto con el equipo de ingeniería central.
  • Será más difícil crecer técnicamente ya que las personas más inteligentes están de vuelta en HQ
  • Será más difícil ser respetado ya que quieres ser promovido
  • Pasará tiempo regateando con los clientes sobre requisitos o algo así, incluso si es solo indirectamente. Estas reuniones son realmente desagradables

Por supuesto, si este es el único trabajo que obtuviste, y / o viniste de la universidad o de Microsoft o IBM o alguna basura, lo saltaría totalmente. Hay un costo de oportunidad asociado con ser FD’ed, pero todavía no es un lugar * terrible * para estar.

Editar: Woo, gracias por los votos negativos, imbéciles! Adivina qué, algunos trabajos no son tan buenos como otros. Juzgue esta respuesta en función de los hechos, no de si usted es o no el testigo de que acabo de denigrar el movimiento de su compañero favorito en la Ivy League.