¿Cómo Lyft diseñó la entrevista para el rol en ingeniería de software centrado en aprendizaje automático?

Manuel Alcantara
Lyft Engineering en Español
15 min readMay 23, 2022

Iteraciones para revelar patrones recurrentes de pensamiento, sentimiento y comportamiento.

Este artículo fue publicado originalmente el 22 de octubre de 2019 en eng.lyft.com, por Hao Yi Ong y traducido por Manuel Alcántara.

La misión de Lyft es mejorar la vida de las personas con el mejor servicio de transporte del mundo, y sería difícil alcanzar esa meta si los despachadores tuvieran que emparejar manualmente a los pasajeros con los conductores. Necesitamos ayuda en la toma automatizada de decisiones, que pudiera escalar en forma que optimizara tanto la experiencia del usuario como la eficiencia del mercado. Con esto en mente y complementando nuestros roles orientados en ciencia, se buscó a un ingeniero con experiencia en el aprendizaje automático (ML) con percepción en el impacto de negocios, que pudiera ayudar a construir y producir modelos independientes de manera que impulsaran la experiencia de los productos para hacer un viaje placentero.

Hace un año y medio cuando comenzamos a buscar este tipo de ingeniero experto en ML — algo que ahora ocupa el rol de Ingenier@ de Software en ML (“ML SWE”, por sus siglas en inglés) — , no era algo sobre lo que supiéramos mucho. Observamos los roles equivalentes de otras compañías, pero no estaban exactamente contextualizados al entorno comercial de Lyft. Esta necesidad motivó un rol completamente nuevo, que establecimos y comenzamos a contratar.

La mayoría de las empresas son abiertas sobre su proceso de entrevistas, las expectativas que esperan del candidato para ocupar el puesto y los consejos de preparación que se le brindan. Por ejemplo, la mayoría de las empresas hace que los reclutadores den consejos verbales, algunos brindan guías escritas y los más sofisticados incluso contratan estudios para producir películas. Sin embargo, una cosa que probablemente nunca escuchará de ellos, son notas sobre cómo se les ocurrió el proceso de la entrevista; incluso debemos admitir que nosotros no somos la excepción.

Filtro típico de entrevistas

Como candidato, es fácil entrar en el proceso y ser evaluado por un entrevistador; como entrevistador, es fácil que le pidan que evalúe a un candidato. Lo que no es fácil para una organización es diseñar y escalar un proceso de entrevistas, mientras se asegura su consistencia y confiabilidad para los candidatos, los entrevistadores y los directores de contratación que toman las decisiones difíciles.

Perspectiva General
Rompiendo un poco con la convención, esta publicación establece las motivaciones en el diseño de nuestra entrevista, y un conjunto de principios que guían nuestro enfoque iterativo. Para ilustrarlo, nos centraremos en el proceso para el rol ML SWE, profundizando en cómo aplicamos estos principios a la entrevista de modelado que se realiza en las instalaciones, o mejor conocida como “on-site”. Abordaremos también los componentes clave de nuestro proceso en el diseño de la entrevista en cada una de las siguientes secciones:

  1. Definición de problemas
  2. Uniformizando la escala
  3. Descubrir el talento
  4. Seguimiento del progreso

Definición de Problemas
Antes de sumergirnos en los principios de diseño reales en el proceso de la entrevista debemos comprender la motivación de está, la cual proviene de las expectativas que queremos del puesto. Lo que a su vez nos ayuda a definir qué debemos buscar en un candidato. Las siguientes son tres preguntas que debemos abordar:

  1. ¿Cuáles son los desafíos que enfrenta Lyft (podría ayudar un rol específico)?
  2. ¿Cuál debe ser el rol con respecto a las metas de la organización?
  3. ¿Cuáles son las habilidades, conocimientos y talentos deseados esperados para ocupar el puesto?

Hemos motivado los desafíos a los que se enfrentaba Lyft, que ayudaron a introducir el rol de ML SWE descrito anteriormente. Lo que queda por definir son los ingredientes necesarios que describen lo que sería una contratación exitosa en relación al contexto de Lyft:

  1. Habilidades adquiridas a través de la práctica
  2. Conocimiento adquirido a través del estudio
  3. Experiencia personal y talentos que hacen único a cada candidato

Las habilidades y conocimientos deseados son fáciles de definir y evaluar; por ejemplo, se busca a un candidato que tenga las habilidades necesarias para crear prototipos de un modelo, así como el conocimiento de la teoría, conceptos y las bibliotecas usadas en el aprendizaje automático; los cuales, se pueden obtener a través del estudio, la práctica y la experiencia. No lo profundizaremos aquí, pero seamos un poco más específicos sobre los “talentos” que se toman en cuenta.

Nuestros talentos deseados son patrones recurrentes de pensamiento, sentimiento y comportamiento que se pueden aplicar productivamente en el contexto de Lyft para el rol de ML SWE. Lo que estamos buscando, es un poco más complicado que simplemente el trabajo realizado en el pasado por un candidato. Ante los mismos estímulos, las personas reaccionan y se comportan de manera diferente. Cuando buscamos el rol y los valores adecuados, nos referimos precisamente a eso. Más allá de las habilidades y el conocimiento, ¿la forma única de un candidato de responder a los problemas planteados en el contexto comercial de Lyft ayudará a ese candidato a tener éxito? Entonces, aunque el sentido común podría sugerirlo, no siempre estamos buscando a el Michael Jordan del aprendizaje automático. El tipo limitado de talentos asociados con la excelencia puede ser importante, pero en la mayoría de los casos, los entrevistadores están atentos a las pistas predictivas de cómo reaccionará un candidato cuando se le plantean problemas específicos de Lyft en el trabajo. [Encontramos el articulo titulado First, Break All the Rules de Gallup útil para explicar las diferencias entre habilidades, conocimientos y talentos a través de su enfoque basado en datos].

Dado que el contexto comercial de Lyft cambia (a veces muy rápido debido a que es una empresa pública), nuestros talentos deseados cambian y también lo deben hacer nuestras entrevistas. En el contexto de hace unos años, podíamos valorar la comodidad y el entusiasmo de un candidato con problemas comerciales ambiguos porque había muchas opciones de donde escoger. El día de mañana, podemos valorar más la claridad mental en la resolución organizada de problemas, porque a medida que nuestro producto madura, las mayores oportunidades de negocio radican en garantizar interacciones fluidas entre las características del producto. Iterar sobre las entrevistas es una parte importante para reconocer el cambio y garantizar que el rol siga siendo relevante.

El título de esta sección es por lo tanto, un juego de palabras extendido sobre los diferentes tipos de problemas a los que nos enfrentamos en el diseño de nuestra entrevista:

  1. Los problemas de alto nivel de Lyft que se derivan de su contexto comercial
  2. Los problemas percibidos que un rol de ML SWE debería abordar fácilmente
  3. Los problemas prácticos que los candidatos responden en una entrevista para ayudar a los entrevistadores a conocerlos un poco mas de ellos

Una vez que podemos abordar cómodamente estos problemas, pensamos en cómo escalar la entrevista. En particular, ¿cómo pueden los diferentes entrevistadores y gerentes de contratación evaluar de manera consistente y confiable el rol y el nivel de los diversos candidatos?

Uniformizar la Escala
La mayor parte de esta publicación se centra en lo que sucede entre el entrevistador y el candidato. Dicho esto, hay un par de capas en el proceso de la entrevista que debemos eliminar para establecer el contexto de cómo diseñamos realmente los problemas y las evaluaciones que nos ayudan a buscar talento. A un alto nivel, un buen diseño de entrevista armoniza todos estos componentes.

Primero, los candidatos que entrevistan para el rol ML SWE pasan por la revisión de contratación de Lyft. La cual es una sesión programada regularmente para que un comité estudie a los candidatos con una perspectiva imparcial, y decida si deben ser contratarlos. Trabajando junto con el comité de revisión, hay un panel separado de entrevistadores que brinda retroalimentación técnica, la cual está diseñada para ayudar al comité a decidir si el candidato encaja y, de ser así, el nivel técnico que posee. A primera vista, este proceso de revisión puede parecer engorroso. Sin embargo, al examinar los controles y equilibrios más detenidamente, notamos que se introducen intencionalmente para poner fricciones en el proceso de contratación. Tener un comité de revisión consistente unifica los estándares y elimina el sesgo.

En segundo lugar, el proceso consta de una entrevista inicial conocida como “phone-screen”, seguida de una serie de entrevistas (sin ningún orden en particular) que se realizan en las instalaciones, llamada “on-site”. La entrevista phone-screen determina si el conocimiento de los conceptos fundamentales de ML y habilidades básicas de programación le permitirían al candidato tener éxito en la entrevista on-site. A su vez, las entrevistas on-site ponen a prueba con una mayor profundidad las habilidades y el conocimiento del candidato en los requisitos prácticos para el puesto. Además, la entrevista on-site también brinda oportunidades para que los candidatos revelen sus talentos cuando se enfrentan a diversos desafíos técnicos.

Las diversas entrevistas de un proceso típico para el rol de ML SWE. Mezclamos y combinamos este conjunto de entrevistas según el puesto y el candidato.

Estas dos capas en el proceso de la entrevista son dinámicas. Cuando me uní a Lyft, la revisión de contratación no existía y simplemente realizábamos discusiones con el panel de entrevistas y el gerente de contratación; no era eficiente. Cuando implementamos por primera vez el proceso para ML SWE, simplemente agregamos un par de entrevistas de modelado al proceso estándar en el rol de ingeniero de software (SWE). Pero a medida que nuestra comprensión del rol ML SWE en Lyft evolucionó, aprendimos rápidamente que el proceso debía contextualizarse mejor para ese rol en específico. Introducimos un comité para renovar el proceso, y ser parte del comité requería comprender cómo estas piezas se entrelazaban con las preguntas que hacían los entrevistadores y las respuestas que daban los candidatos.

Descubrir el Talento
Emparejar a un candidato con un entrevistador nos permite evaluar las habilidades, el conocimiento y el talento del candidato. Las habilidades se enseñan y dominan. Incluso ofrecemos “cursos de dominio” internos para el aprendizaje de máquina. El conocimiento se adquiere a través de la experiencia y los aprendizajes personales. Ambos son importantes y forman parte de la barra y los criterios de nivelación que establecemos para cualquier contratación. Sin embargo, para decidir si hay un fit, la simple validación de las habilidades y el conocimiento de un candidato es insuficiente. Necesitamos saber si los patrones recurrentes de pensamiento, sentimiento o comportamiento se ajustan con el rol.

Por mucho que odiemos admitirlo, las entrevistas que duran apenas una hora, son herramientas contundentes para descubrir los talentos que son relevantes para el rol. Es complicado diseñar preguntas y formularlas de una manera que revele un comportamiento constante en múltiples entrevistas y entrevistadores. Y es aún más complicado, el efecto de confusión que genera detectar si el comportamiento durante la entrevista es practicado o es un comportamiento natural. En Lyft, descubrimos regularmente problemas que nadie ha resuelto antes, así que por mucho que apreciemos el tiempo y el esfuerzo dedicados a la preparación de la entrevista, las habilidades para la entrevista no son equivalentes al desempeño en el trabajo.

En lenguaje científico, las entrevistas tienen un bajo poder estadístico y un alto costo de muestreo. Sin embargo, aquí hay algunos principios de diseño que encontramos útiles para refinar nuestras herramientas. Para ilustrarlos, discutimos cómo éstos se aplican al diseño de la entrevista on-site de modelado en ML.

Elegir problemas abiertos bien calibrados
El objetivo de la entrevista es predecir cómo los candidatos naturalmente se desempeñan dentro de un contexto comercial de Lyft. Con ese fin, nuestros entrevistadores diseñan y extraen de un catálogo con problemas diversos que son susceptibles a una variedad de posibles soluciones. De esta manera, los candidatos no se ven obligados a estudiar ningún tema específico para armar una buena respuesta. Además, reduce la probabilidad de que los candidatos puedan practicar para ellos.

En el contexto de modelado en la entrevista on-site, planteamos problemas abiertos con suficiente contexto comercial para que el candidato pueda identificar claramente un enfoque basado en ML para resolverlo. Después de todo, no intentamos ocultar el hecho de que estamos contratando a un ingeniero de software en ML. Por lo tanto, un ingrediente clave para una buena entrevista es la especificación de los requerimientos del problema en una fase temprana a base de contexto para no sesgar al candidato a una sola respuesta correcta. Los entrevistadores pulen y calibran sus problemas con revisores de confianza antes de usarlos en entrevistas formales.

Crear un espacio para evaluar las expectativas
En la entrevista de modelado queremos probar cómo el candidato convierte un problema comercial ambiguo descrito en forma de prosa en un problema de ML bien definido; por ejemplo, regresión o clasificación. La atención del entrevistador se enfoca en la respuesta espontánea del candidato. Entonces, mientras los entrevistadores brindan contexto comercial y hacen aclaraciones, ellos se apartan y se enfatiza que sea el candidato quien conduzca la conversación. Lo importante es entender como el candidato interpreta y aborda el problema de negocio. Esta forma de dejar que el candidato sea quien dirija la conversación también se aplica en las preguntas realizadas durante las entrevistas de diseño y de experiencia.

Por supuesto, la respuesta del candidato se mezcla con la experiencia. Si el candidato no se siente cómodo dirigiendo la conversación, incluso cuando se le invita, el entrevistador ofrece orientación mientras toma nota de lo que se ofreció. Una vez más, hay una línea muy delgada que trazar entre dar un amplio contexto sin revelar demasiada información. Parte del diseño de la entrevista implica la creación de un proceso de inicialización de los entrevistadores para alinearse en los detalles que se deben tener en cuenta. Cuando diseñamos el proceso de la entrevista, nos esforzamos por ser científicos sin olvidar que gran parte de esto es un arte que los entrevistadores necesitan aprender y practicar.

Fomentar la creatividad y proporcionar validación
Para evaluar suficientemente a los candidatos, el problema de la entrevista de modelado debe ser lo suficientemente ambiguo como para que pueda haber múltiples definiciones del problemas y diferentes enfoques de ML. De hecho, el candidato debe inspirarse en la ambigüedad para ser creativo. Es trabajo del entrevistador evaluar si un enfoque creativo es válido o simplemente “demasiado creativo” y tratar de guiar al candidato en la dirección deseada. Por ejemplo, una vez tuve que guiar a un candidato para que intentara un enfoque mas simple de ML respaldado por heurística para el problema inmediato en lugar de formular una versión generalizada de ese problema como por ejemplo, un problema de optimización con restricciones no convexas. La atracción hacia una solución más generalizada y complicada es parte del talento sobre el que queremos aprender, pero también es importante mantener el rumbo para que los talentos se evalúen en el contexto adecuado.

Una forma de garantizar que la discusión se mantenga encaminada, es saber cuándo brindar validación y dirigir la conversación. Incluso cuando tenemos un problema abierto, los entrevistadores deben hacerle saber al candidato cuándo profundizar y cuándo seguir adelante. Descomponer el problema en fragmentos grandes y aproximados de sub-problemas permite a los candidatos responder en sus propios término, mientras se mantienen dentro de los límites de lo que queremos evaluar. En términos prácticos, estamos simulando varias etapas de trabajo con un modelo ML en Lyft. Es posible que queramos pensar en la formulación del problema en la fase de creación de prototipos. También podemos pensar en la evaluación del modelo en la fase de producción. Estas son categorías lo suficientemente amplias como para que los candidatos puedan ofrecer pistas sobre sus patrones de pensamiento recurrentes, mientras se aseguran de que todos los entrevistadores se adhieran a un conjunto consistente de estándares sobre habilidades, conocimientos y talentos a descubrir.

Más allá de reflejar las condiciones del mundo real, la entrevista es una buena vía para brindar una idea de los tipos de problemas a los que nos enfrentamos en Lyft y establecer nuestra marca. Con eso en mente, nuestras preguntas generalmente son problemas inspirados en Lyft, que los candidatos no encontrarán en ningún otro lado. Para mantener la consistencia, cada pregunta se revisa por pares antes de publicarse en un repositorio interno. Los entrevistadores realizan entrevistas simuladas con colegas y participan en entrevistas reales como “observadores” para recibir comentarios.

El objetivo general es maximizar el poder de discernimiento de nuestras entrevistas y minimizar su varianza predictiva. Por supuesto, los entrevistadores tendrán comentarios objetivos y subjetivos. Es importante que los miembros del equipo entrevisten a un candidato y piensen si el candidato y la organización de Lyft en general coinciden. El desafío es que nuestros candidatos son diversos y es imposible mantener una lista de verificación exhaustiva del entrevistador sobre cómo pueden encajar en Lyft. Confiamos en nuestros entrevistadores, su capacitación y nuestra calibración interna para ayudar a discernir eso.

Seguimiento del progreso
Una vez que se tengan los componentes clave del proceso, es crucial mantener un ciclo de retroalimentación sólido para medir la salud de nuestro embudo de entrevistas a lo largo del tiempo. A pesar de lo difícil que es obtener suficientes muestras para las métricas estadísticas, nos esforzamos por usar los datos para decidir si algo no es saludable. Por ejemplo, supongamos que las tasas de seguimiento saludables fueran del 50% desde la etapa del “phone-screen” hasta la entrevista “on-site” y en ésta el 25% se convirtieran en ofertas laborales. Pero si en cambio, las tasa de seguimiento fueran del 70 % y las ofertas en la entrevista “on-site” fueran del 10%, entonces abría algo mal en nuestro proceso de entrevista “phone-screen”. En este caso, miramos más de cerca las entrevistas telefónicas, consultamos con los entrevistadores y examinamos casos anómalos para establecer tendencias mas amplias. Cualquier cambio posterior realizado se supervisa intensamente para garantizar que nuestras tarifas se estabilicen.

Procesos para diferentes roles e incluso el mismo proceso pero en diferentes momentos, producirán líneas base ligeramente diferentes. Por ejemplo, un flujo de recién graduados en un evento de reclutamiento, probablemente tenga una tasa de aceptación de ofertas más alta que uno con candidatos senior contactados en forma directa. El equipo de reclutamiento está representado en el comité de diseño del proceso para ofrecer orientación sobre cuáles son los números razonables. Una vez que el proceso está activo, el equipo de reclutamiento extrae regularmente estos números y hace un llamado a revisar las tendencias potenciales. Más allá del filtro de la entrevista, puede ser interesante realizar un seguimiento de las tendencias a más largo plazo en el desempeño de los candidatos contratados.

Los números saludables para un ciclo de entrevista para la etapa del phone screen al onsite, después a la oferta y finalmente a la aceptación son, por ejemplo, 50%, 25% y 70%.

Compartir información
Hay buenas razones para ser cauteloso con el proceso de diseño de la entrevista. ¿Qué pasa si la información ayuda a los candidatos a dominar la entrevista? ¿Qué pasa si las cosas que estamos buscando en nuestra entrevista cambian con el tiempo? ¿Qué pasa si el proceso de diseño es realmente malo? Peor aún, ¿qué pasa si la gente se da cuenta de que sus suscripciones premium de LeetCode no ayudarán en el proceso para ML SWE?

A pesar de los interrogantes, ser transparente sobre cómo diseñamos las entrevistas puede mejorar nuestras entrevistas. Llámelo interés propio bien informado: los candidatos invierten tiempo para hablar con nosotros y a su vez nos beneficiamos mutuamente al aprender si son una buena opción. Incluso, si no hay una conexión inmediata, las experiencias positivas construyen la marca y mejoran la búsqueda de candidatos. Tal vez el candidato pueda volver a postularse cuando el momento sea mejor. En la práctica, contratar a un ingeniero cuesta fácilmente decenas de miles de dólares. Al mostrar cómo iteramos en nuestras entrevistas, revelamos lo que realmente nos importa y cómo tratamos de investigarlos, con suerte, contribuyendo al círculo virtuoso del proceso de contratación.

Esta publicación se enfoca en el proceso de ML SWE porque estoy familiarizado con él. He realizado más de cien variantes con candidatos de todos los orígenes desde el inicio del proceso. Trabajé con el comité que definió el rol y el equipo de reclutamiento para introducir en el ciclo, participé en el diseño y ajuste de los objetivos, formatos y bancos de preguntas de la entrevista para el conjunto de habilidades, conocimientos y talentos específicos que queremos. Más recientemente, motivé e incorporé a más miembros del equipo al circuito para ayudar a expandir nuestro grupo de entrevistadores. Los otros procesos de entrevistas en los que estoy y las diversas entrevistas que he tenido con otras empresas también son buenas referencias.

A final de cuentas, queremos buenos candidatos que coincidan con nuestro rol y valores para tener éxito, y los queríamos para ayer…

Más información
Si te ha gustado este post, ¡síguenos y recomiéndalo!. Para más información sobre cómo llevamos a cabo las entrevistas en Lyft, y cómo tener éxito en ellas puede consultar los siguientes :

Para conocer el tipo de problemas de aprendizaje de máquina que se abordan en Lyft, puede consultar lo siguiente:

Como siempre, ¡Lyft está contratando! Si te apasiona desarrollar modelos de aprendizaje de máquina de última generación o diseñar las plataformas y la infraestructura que los impulsa, no esperes mas y consulte mas sobre nuestros roles y posiciones abiertas.

El contenido presentado se destila del arduo trabajo del comité Lyft ML, el equipo de reclutamiento, nuestros entrevistadores y sus entrevistados. Esta publicación no habría sido posible sin ayuda de Karthik Subramaniam, Kendall Gruyere, Davide Crapis, Matt Green, and Mark Grover quienes la pulieron hasta tener lo ves aquí.

--

--