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.
- ¿Los problemas del Proyecto Euler valen la pena para alguien que esté únicamente interesado en el desarrollo de software?
- ¿Cuáles son las mejores universidades en Alemania para la ingeniería de software? ¿Cuáles son las mejores universidades en Alemania que enseñan en inglés y tienen buenas oportunidades de colocación para estudiantes internacionales?
- ¿Hay alguna política de oficina exclusiva de Microsoft?
- ¿De dónde obtienen las cooperativas de crédito y los bancos pequeños su software?
- ¿Cuál es el destino del ingeniero de software del país del tercer mundo?
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”.