[Experiencia personal] Ingeniero de front-end de Londres Facebook: ¿cómo entrar en FAANG?

¿Cómo prepararse para las entrevistas para postularse a una empresa de nivel FAANG? Junto con  Oleg Gromov , ingeniero de front-end de la oficina de Facebook en Londres (ej. Yandex, Toptal, etc.), elaboramos un plan de capacitación basado en el último webinar  , basado en su experiencia personal.



Que se discute:



  • pros y contras de trabajar en grandes empresas,
  • Diseño de CV,
  • cómo son las secciones de proyección, algorítmica y arquitectónica,
  • cuál es el papel del inglés y las habilidades blandas, en la sección de comportamiento y en la entrevista en general,
  • dónde entrenar las habilidades necesarias para cada etapa: enlaces útiles recopilados.






FAANG es una abreviatura de Facebook, Amazon, Apple, Netflix, Google, el nombre, hasta donde yo sé, apareció hace 3-5 años. Estas fueron las empresas con mayor capitalización en TI. Son como una barra que todo el mundo está intentando alcanzar: si has crecido hasta FAANG, solo las estrellas están más altas. Muchos ingenieros quieren llegar allí: grandes salarios, buenas condiciones, oportunidades de desarrollo: esto es lo mejor del mundo entre las corporaciones.



Alguien incluye a Microsoft, Uber, Airbnb, alguien está tratando de transferir el término a las grandes empresas tecnológicas rusas: Yandex, Mail.ru, Avito, ABBYY. En mi opinión, no son parte de FAANG, el concepto mismo es solo sobre los gigantes tecnológicos enumerados anteriormente.



Pero hay un estilo de entrevista de Fang, y esa es una historia diferente. El estilo ha sido adoptado por muchas empresas que no son similares a FAANG ni en tamaño ni en rentabilidad. Una entrevista consta de 4 o más secciones , que incluyen: entrevista algorítmica, diseño del sistema, entrevista conductual. Mientras se prepara para dicha entrevista, puede conseguir un trabajo en una empresa además de FAANG: el formato se vuelve familiar. Propongo utilizar este enfoque amplio, hablaremos de las empresas que se entrevistan sobre la estructura de Faang.



Pros y contras de trabajar en empresas de nivel FAANG



Nota al margen: me refiero exclusivamente a la experiencia en desarrollo web. Toda mi vida he estado haciendo frontend, con el tiempo me he convertido más en un desarrollador web de pila completa: me ocupo de código desde balanceadores hasta bases de datos. Pero no estoy hablando de entrevistar y trabajar en FAANG como comercializador o gerente de proyectos.



Pros:



  • desarrollo.

    Si realmente amas tu trabajo, si quieres retos y proyectos complejos, quieres desarrollarte y comunicarte con un gran número de personas, incluidos los mejores especialistas.

    Lo primero de lo que me di cuenta cuando llegué a Yandex: "todos los que me rodean son inteligentes, pero yo no". Esta es una historia típica, lo mismo sucede cuando consigues un trabajo en Google, Facebook: las grandes empresas son un medio muy nutritivo para el crecimiento. Especialmente para personas que no están interesadas en construir un negocio, sino en desarrollarse como especialistas.
  • , .

    RSU — restricted stock unit, .        . RSU —  .  ,   RSU-   — ,       .
  • .

    :    !   .


Las desventajas dependen del tipo de persona que seas y de lo que quieras de la vida. Básico: no deberías conseguir un trabajo en FAANG si no te gusta ser un engranaje en un mecanismo, además, el mecanismo está altamente regulado.



Naturalmente, cuando una empresa tiene 40-60 mil personas, casi como una ciudad, los procesos deben ser bastante estrictos. Y no necesariamente de la categoría de "informar a esto y esto". Quiero decir, las empresas tienen un sistema de motivación que sintoniza a los desarrolladores de cierta manera.



Para algunos es adecuado: por ejemplo, jóvenes graduados de la universidad. Trabajaron en algún lugar durante un año, se metieron en este esplendor y disfrutaron del proceso y el resultado. Pero aquellos que ya tienen 15 años de experiencia a sus espaldas quieren más responsabilidad, quieren usar su experiencia no para una pequeña tarea dentro de la empresa. Puede que no sean muy buenos en FAANG. Debes tener esto en cuenta y elegir un lugar para ti y tus fortalezas: no esperes que en Facebook te conviertas automáticamente en la persona más feliz del mundo. Esto no es verdad.



Antes de discutir las etapas de la entrevista, me gustaría dar un paso atrás y hablar sobre la experiencia. Este es un paso preliminar antes de intentar diseñar su currículum.



Si quieres conseguir un trabajo como senior en FAANG, no es suficiente hacer un proyecto en un año y presentarlo maravillosamente. Lo más probable es que esto no sea suficiente. Si, por ejemplo, ha trabajado en varios proyectos durante varios años, es posible que deba prepararse para las entrevistas, pero lo más importante es que tiene experiencia.



Si está buscando puestos con reubicación, suscríbase a nuestro bot @g_jobbot . Y un reclutador de TI en g-mate lo ayudará a empaquetar su currículum de una manera que involucre a los entrevistadores. El bot es simple y rápido de configurar: esfera, salario, ubicación de reubicación. Las opciones que más te convengan vendrán a Telegram.







Resumen



No estoy contratando en Facebook ahora, digo desde el punto de vista de un exgerente de contratación en Yandex y Toptal: es importante comprender lo que suele pasar con un currículum. Cuando lo envía a una empresa, se encuentra entre cientos, miles de otras. Dependiendo de los procesos internos, es posible que se vea ahora o que nunca se vea. Puede permanecer durante seis meses, un mes o un día.



Para ser notable en el buen sentido, un currículum no debe estar lleno de todos los colores del arcoíris o de los gatos; debe compilarse para una vacante específica de una empresa específica. No incluya toda la experiencia que tiene, concéntrese en lo que se necesita en un puesto en particular. Suponga que es un desarrollador back-end en Facebook, y trabajó como ingeniero de datos, desarrollador front-end, webmaster y sysadmin, entonces probablemente no debería hablar sobre sysadmins y webmasters en su currículum.



Hice un currículum para cada empresa a la que solicité. Excepto en los casos en los que envié mi currículum "al montón" para practicar en entrevistas.



Eliminamos lo irrelevante, enfatizamos las fortalezas, toda la experiencia adecuada para la vacante.No en el sentido de golpearme en el pecho con el talón: el equipo no hizo nada, todo era solo yo. La tarea es decir que eres un jugador de equipo, que entiendes los negocios. Especialmente si está solicitando un puesto de desarrollador de alto nivel. Se le pide que comprenda los procesos del trabajo en equipo, cómo establecerlos, cómo eliminar los cuellos de botella, es decir, los cuellos de botella donde la productividad se ve afectada. Presente todo esto de manera favorable, pero no lo invente, diga la verdad: muestre logros adecuados, idealmente, si cuantitativamente, todas las grandes empresas lo apreciarán. Por ejemplo, describa los avances técnicos de la siguiente manera: los tiempos de aprobación de las pruebas en un entorno de Integración Continua se han reducido en un 30%, la ganancia o conversión se ha incrementado en un N%. Cuéntenos sobre los logros del equipo: dónde ayudó a configurar el proceso, a quién y cómo contrató.



Básicamente, díganos que fue usted la persona que asumió la responsabilidad. Quizás incluso te equivocaste: no deberías escribir sobre errores en tu currículum, pero si te preguntan en una entrevista, puedes decir.



Un buen consejo es escribir su currículum en una, máximo 1.5 páginas. Los entrevistadores tienen poco tiempo y es bueno que lean toda la información a la vez.



Cuando un currículum tiene que pasar de una pila a la persona que decide con quién realizar la llamada, una recomendación es casi un camino garantizado hacia el éxito.Ella distingue el currículum de los demás; de lo contrario, de decenas de miles de respuestas, es posible que simplemente no te noten estadísticamente. Por lo tanto, si tienes conocidos, contacta con ellos. Como regla general, las personas refieren fácilmente sus currículums: para una recomendación exitosa, reciben bonificaciones dentro de la empresa. Las recomendaciones no son una especie de tema tabú o tabú. Llegué a Yandex, Facebook e incluso a Toptal a través de una recomendación.



Una vez que se ha aprobado el currículum, generalmente hay otra evaluación antes de la entrevista de 4 pasos.



Poner en pantalla



Hay una selección con un reclutador, a veces uno técnico; depende de la complejidad del proceso. La primera convocatoria será casi al 100% con un reclutador. Evalúa la adecuación general, aprende la historia de la vida, por qué una persona está buscando trabajo, trata de filtrar el flujo. A veces, alguien envía accidentalmente un currículum: la rareza está presente en la contratación masiva.



Si la empresa está ubicada en otra ciudad, por regla general, llama: hable un poco sobre usted, sobre deseos, ambiciones, fortalezas y debilidades. La conversación generalmente la dirige un reclutador. Si no permaneció en silencio durante los 30 minutos, pero se presentó normalmente, se prescribe una revisión técnica.



En la proyección técnica, ocurre aproximadamente lo mismo que en la sección algorítmica, pero se da menos tiempo: 40-60 minutos, 1-2 tareas: generalmente en línea.



Este formato requiere algo de tiempo para acostumbrarse. Hay una entrevista de pizarra: te paras al lado de la pizarra, dibujas diagramas, intentas escribir un código en él; no es muy conveniente, mucha gente se queja. Y en línea, en cierto sentido, es incluso peor (alguien puede ser mejor). Te sientas frente a la computadora, no ves a una persona y dices, no solo escribes un código. No quiero ofender a nadie, pero en este momento a menudo surge un problema, especialmente para los desarrolladores de habla rusa. En nuestra cultura, no es costumbre alardear y charlar, "tomamos y hacemos".



Asegúrate de decir:nadie lee pensamientos, incluso si eres el desarrollador más encantador y experimentado. La conversación también depende del contexto: qué está sucediendo en el problema, qué comprende, qué detalles, cuál es su algoritmo. Incluso puede escribir los pasos en un editor de texto y confirmar con el entrevistador que esto es lo que quiere escuchar. Muchos dirán simplemente: sí, está bien, se ve bien. Alguien estará encantado: sí, esto es lo que esperaban. Es decir, en la mayoría de los casos, recibirá comentarios. Pero si no está acostumbrado a vocalizar el proceso, puede resultar complicado.



El cribado suele consistir en diálogos y escritura de código muy similar a Leetcode o cualquier tarea algorítmica. La mayoría de las veces son del nivel Fácil o Medio: tiene sentido, por ejemplo, resolver problemas con amigos en línea, discutir.



Secciones algorítmicas



Los próximos pasos dependen de la empresa. No he entrevistado a Google, Amazon o Apple. Hasta donde yo sé, todos tienen procesos bastante característicos que siguen un patrón, pero los detalles son diferentes. Por ejemplo, Amazon tiene Principios de liderazgo, un conjunto de reglas que se recomienda aprender, porque también se discutirán en la entrevista. Facebook no tiene eso.



Hay varias secciones algorítmicas: generalmente dos o tres. En la era anterior al coronavirus, lo llevan a la oficina, donde todo sucede, lo conocen, lo colocan en una sala de reuniones y le dan café. Resuelves problemas algorítmicos: los mismos que ves en Leetcode. Alguien aconsejó el nivel Difícil; por cierto, esto es opcional. Es probable que las tareas difíciles se encuentren en Machine Learning o en backends cargados; personalmente, no he encontrado ni una sola dificultad. Por lo general, este es el nivel Medio: bastante complejo, debe poder manejarlos. Pero si nunca se ha decidido, probablemente existe la posibilidad de hacerlo, simplemente ha practicado y sabe cómo pensar.



Cada sección tiene una duración de 40 minutos, generalmente una tarea más un seguimiento. Por ejemplo, necesita resolver un problema para ordenar una matriz: escriba un algoritmo de ordenación. Perdón por los estúpidos ejemplos: puedes resolverlo usando bubble sort, decir que es ineficiente, que puedes cambiarlo, lograr eficiencia en tiempo o memoria. Sucede que necesitas resolver dos pequeños problemas uno tras otro.



Como regla general, las secciones las realizan diferentes entrevistadores. Esto se hace a propósito, por objetividad. Tienes que saludar a todos, contar un poco sobre ti. Entonces comienza la sección en sí: necesitas decidir, pensar, hablar, quizás cometer errores y rehacer.



Una entrevista es un proceso estadísticamente ruidoso. 5 entrevistadores, objetividad, intentos de cuantificar al candidato tanto como sea posible, pero no siempre funcionan, puede que a alguien no le guste algo. A veces se niegan no porque la persona no encaja, sino porque “la señal no fue lo suficientemente fuerte”. Contratar al desarrollador incorrecto es peor para la empresa que no contratar al correcto.



Si resuelves 50 o 100 problemas de diferentes niveles en diferentes categorías, las posibilidades de pasar una entrevista algorítmica aumentarán enormemente, hay una diferencia enorme entre 0 y 100 problemas resueltos. Pero el dispositivo aún puede tener mala suerte. Te aconsejo que mires esto filosóficamente, el rechazo puede ocurrir en cualquier caso, no siempre depende de nosotros como candidatos.



La codificación se suele combinar con la sección algorítmica. Y hay una ligera diferencia entre el backend y el front end en Facebook. Los mismos algoritmos en árboles, gráficos o relacionados con bucles, matrices, pero con especificaciones de front-end. Como regla general, todo está en JavaScript. La elección del idioma es bastante libre. Cuando me entrevisté para otra empresa, escribí en C #, aunque nunca antes lo había usado. Pero como está orientado a objetos y es similar a Java, acabo de aclarar en el proceso: ¿es esto posible? ¿Y entonces?



Por supuesto, si has estado programando en Python toda tu vida, no debes escribir en Java: diferentes lenguajes, será difícil, te confundirás en construcciones, importaciones. No será una señal terriblemente negativa, pero hará la vida más difícil.



Y luego están las entrevistas de diseño de sistemas y de comportamiento: solo me he encontrado con esas etapas.



Donde preparar



Debo decir de inmediato que estudié solo en Leetcode, traté de aprender esta forma de pensar, cuando hay un tiempo limitado y una tarea, un conjunto de algoritmos con los que opera, por ejemplo, búsqueda binaria, recorrido de gráficos u otra cosa. Normalmente, las decisiones se componen de estos bloques de decisión.







Sección arquitectónica: diseño de sistemas



Las secciones de arquitectura son las mismas que las entrevistas de diseño de sistemas . Creo que siempre están presentes en las entrevistas y su número depende del nivel al que se postule. Había uno en Facebook, en la segunda empresa, donde entrevisté en paralelo - 1 o 2.



La sección está abierta, el problema no se plantea de la misma forma que en los problemas de algoritmos. Las habilidades blandas también son importantes al mismo tiempo: la capacidad de hablar, de tomar una decisión, de diseñar un sistema específico. Cuando hablamos de Diseño de Sistemas, solemos hablar del diseño de algo muy cargado: necesitas hacer Twitter o Instagram. Por supuesto, no se puede diseñar un Twitter completo en 40 minutos.



También hay tareas específicas: hacer un formulario de entrada con autocompletar. En el caso del frontend, puede haber algo como: diseñar un frontend para Yandex.Maps: cómo se estructura el código, qué componentes serán, qué subordinación de componentes entre sí. Podemos hablar de entrega de contenido para usuarios, CDN.



Todas estas son tareas muy generales y puede llevar fácilmente una hora completa describir un aspecto del sistema que se está diseñando. Lo más importante que no debe hacer es entrar en detalles antes de describir las opciones y obtener la aprobación de lo que desea escuchar.Primero, designa la latitud: este es un sistema de este tipo, en un nivel alto puede constar de una docena de componentes, dibuje un diagrama. Además, podemos decir que hay poco tiempo, y ofrecernos para ahondar en los detalles, en función de las preferencias del entrevistador y de sus conocimientos. ¡Se debe utilizar el conocimiento! Si no comprende cómo funciona el equilibrio de carga, pero sabe cómo funciona el backend de búsqueda, obviamente es mejor hablar sobre el backend. Todos comprenden que un solo desarrollador no completará un proyecto.



En comparación con el diseño de productos, creo que en el diseño de sistemas hay un énfasis en los requisitos técnicos, la capacidad de operar con conceptos estándar: cuál será la carga, qué velocidad se necesita para que los discos duros hagan que el sistema funcione. El diseño de productos, aparentemente, se trata más de su capacidad como ingeniero para llegar a un acuerdo con el propietario del producto, el diseñador, priorizar ideas y posiblemente realizar experimentos. Se trata más del componente empresarial y la organización del trabajo. No he tenido un diseño de producto, admito que se puede hablar del producto, valores, problemas, que suele ser el área de responsabilidad de los gerentes de producto.



Donde preparar







   ,   behavioral-



Soft skills



Los "errores" en las entrevistas se deben al hecho de que la gente no sabe cómo hablar, por tonto e ingenuo que pueda parecer. En mi experiencia como entrevistadora, sucedió así: llamo, me presento, trato de establecer un tono normal para la conversación y charlar un poco, y obtengo respuestas monosilábicas.



- ¿Cuéntanos acerca de tí?

- Bueno, soy programador.

- ¿Qué estás haciendo?

- Realización de un sitio web.



Quizás este no sea el error más común, pero para el entrevistador el más desagradable, porque se ve obligado a sacar respuestas a las preguntas. A veces ni siquiera está claro si una persona quiere conseguir un trabajo o no.



Por lo tanto, debe poder comunicar de manera clara y rápida los aspectos más interesantes de los antecedentes y la experiencia.Para practicar, puedes grabarte en tu teléfono, preferiblemente con video. Luego escuche y repita después de unos días. Si quieres hablar, este método es genial.



Empecé a hacer esto hace mucho tiempo, cuando preparé una presentación por primera vez. Tuve que contarlo todo oralmente y escribí el texto de mi discurso en un documento. El habla escrita no se correspondía en absoluto con el habla oral, resultó ridículo y torpe. Luego me senté con el teléfono, tal vez con un dictáfono o frente al espejo, y comencé a ensayar: alrededor de la décima vez, el discurso se volvió coherente y comprensible.





Estoy hablando de un analizador de HTML escrito en un avión de camino a un sitio externo.



Otro consejo: por regla general, el entrevistador no sabe nada de ti. A menudo mira el currículum antes de la entrevista en 3 minutos, unos 4 términos le llaman la atención, el nombre de la persona en el mejor de los casos. Es decir, como candidato, puede concentrarse en ciertos aspectos de su historia para lucir lo más rentable posible. En cierto modo, esto es manipulación, pero bueno. Te estás vendiendo a ti mismo, pero no estás tratando de decir lo que no fue. Acaba de tener un proyecto interesante no al final, sino en el penúltimo trabajo, y luego puede hablar de ello. El entrevistador seguramente estará interesado y recordará esta historia, y no que usted esté arreglando errores en la ubicación actual, porque el proyecto está recibiendo soporte. Este enfoque se puede utilizar para su propio beneficio y la conversación resulta ser más animada.



idioma en Inglés



Si está entrevistando en una empresa extranjera, debe grabar su historia dictáfono sobre usted y sus proyectos en inglés. Si eres el programador más genial del mundo, pero no sabes hablar, nunca conseguirás una entrevista, eso es seguro.



Supongo que puede conocer a un ingeniero ruso que se ofrecerá, a la antigua usanza, comunicarse en ruso. Pero de todos modos, en algún momento, el desconocimiento del idioma puede detenerse. Hay muchas personas de habla rusa en Facebook, pero no es obvio para ellos quién habla ruso. A veces, las políticas de la empresa prohíben las entrevistas en idiomas distintos del inglés. Entonces la comunicación en ruso puede ser como mucho en la parte informal.



Llevo 10 años estudiando inglés y siempre pensé que mi nivel era pasable, sobre todo el lenguaje técnico: leo manuales como todos los demás. Pero en 2016 fui a Nueva York y me di cuenta de que no entendía nada. Simplemente no escucho lo que me dicen, me sorprendió. Es difícil decir cuál era el nivel, probablemente B1, intermedio alto. Pero prácticamente no entendí a los oradores y me perdí en una rica conversación.



Yo  derivé criterios para mí, por lo que puede comprender que el nivel es adecuado para entrevistar. Si en una conferencia técnica comprende entre el 50 y el 70% de lo que dice el orador y puede contar su proyecto en 1 o 2 minutos de tal manera que lo entiendan, eso debería ser suficiente. Los hablantes suelen tener un lenguaje muy inteligible, sin jergas fuertes ni sonidos de tragar. No se requieren certificados para la entrevista, pero se requerirán para mudarse al Reino Unido. Nivel formal, B1 o B2: si aprendes desde cero, en algunos cursos puedes crecer en un año.



Las habilidades de comunicación en general son importantes, si hablas inglés perfectamente, pero mirar hacia abajo y lucir lo más inseguro posible no funcionará. Admito que el nivel intermedio del idioma es suficiente para alguien, cuando puede discutir temas técnicos y perderse en conversaciones informales. Pero nunca hay mucho lenguaje, de eso estoy seguro.



Cómo preparar



No puedo decir que sea un candidato ideal en términos de habilidades blandas. Pero lo importante aquí: la capacidad de trabajar en equipo . Básicamente, buscan jugadores de equipo que puedan discutir y comprender el punto de vista de otra persona: nadie necesita personas solitarias. Un buen líder se esfuerza por construir un equipo de modo que tenga personas con diferentes fortalezas, y esas simplemente tienen que poder negociar. Una gran empresa es siempre un equipo.



Además, sería bueno descubrir qué son las habilidades blandas y  qué son... Probablemente, siendo líder de equipo, tuve que hablar constantemente con todos, planificar, asumir responsabilidades: habilidades desarrolladas de forma natural. Tomas una decisión técnica, llega otro líder de equipo: no debes ofenderlo, y defender tu decisión y mantener un diálogo constructivo. Entonces me parece que las habilidades eventualmente aparecen en personas que, en condiciones adecuadas, alcanzan el puesto de senior. No cuando estás solo en un proyecto y te llaman senior simplemente porque no hay otros desarrolladores.



Salir



Debido a la pandemia, el proceso de entrevistas está cambiando, el formato de trabajo también está cambiando. Se supone que los mandos a distancia aparecerán pronto en todo el mundo. Ahora las empresas están tratando de contratar en ubicaciones actuales, por ejemplo, en los Estados Unidos, al menos de todo el país. Es difícil predecir si las personas de Rusia comenzarán a contratar a personas que quieran quedarse en Rusia. No deberías contar con un remout en este momento, tal vez durante varios años.



El proceso de reubicación no se detuvo, y esto es asombroso para mí. Con la condición de que existan muchos factores limitantes, la contratación continúa. Esta es una buena noticia para quienes buscan mudarse. Uno de mis amigos se mudó a Escocia con su familia justo en medio de todos los eventos, solo sirvió en cuarentena al llegar.



No hay suficientes personas en puestos y ningún coronavirus ha afectado a esto. Quizás, en cierto sentido, esto sea malo: las empresas crecen como un tumor canceroso, tratando de llenarlo todo con ellas mismas. Pero para nosotros, como desarrolladores, esto es bueno: el proceso no ha ido a ninguna parte. Todavía se necesita gente, se lanzan proyectos, hay mucha ambición, el dinero es mucho, hay que gastarlo y la contratación sigue funcionando.



Qué leer adicionalmente:





Hemos recopilado todos los enlaces útiles junto con los oyentes del webinar. Si tiene alguna adición, envíela, la agregaremos a la lista :)



En nuestro g-mate, al menos el 30-50% está listo para considerar un control remoto, y la reubicación es la segunda más popular entre las ubicaciones. Durante la pandemia, tanto en Rusia como en el extranjero, la contratación se ha multiplicado por tres. Regístrese en el bot para obtener los mejores trabajos tecnológicos directamente en Telegram.



All Articles