El verano terminó y, al mismo tiempo, la mayoría de las pasantías de verano en compañías de TI han terminado. Este año tuve la suerte de tener una pasantía de verano en VKontakte. Fue sin exagerar los dos meses más memorables de mi vida, y realmente quiero hablar sobre cómo fue.

Sobre mi
Primero quiero hablar un poco sobre mí. Mi nombre es Amina, tengo 25 años y soy logística por formación. Llegué a TI hace relativamente poco, solo hace tres años. Todo comenzó con las lecciones de composición tipográfica de la Academia HTML, y un año después conseguí un trabajo como desarrollador front-end en un estudio web. Y también este es mi primer artículo sobre Habré, así que con una iniciativa de mí :)
Cómo me enteré de la pasantía
Uno de mis amigos trabaja en VK en el departamento de pruebas de iOS. Una vez que dijo que pronto VKontakte comenzará a reclutar para una pasantía de verano, en la que habrá dos lugares en la dirección frontend. Todo lo que se necesitará es resolver la tarea de prueba y aprobar una entrevista.
Estaba seguro de que entrar en VK era bastante difícil debido a la escasez de vacantes y los altos requisitos para los candidatos, por lo que apenas esperaba ir más allá de la etapa de solicitud. Pero me preguntaba cuál es la tarea de prueba: si es interesante, puede adjuntarla a la cartera en el futuro.
Tarea de prueba
En total, ocho equipos participaron en el programa de pasantías "VKontakte in Practice":
- Equipo de investigación aplicada;
- Equipo de mensajería;
- Equipo de infraestructura móvil. Android
- Equipo de infraestructura móvil. iOS
- Equipo de publicidad frontend;
- Core ML Team;
- Equipo de análisis en el departamento de negocios y publicidad;
- Equipo de base de datos.
Para aplicar a cada uno de ellos, era necesario completar al menos una tarea de prueba, y en algunos de ellos había dos. En la dirección de los aprendices frontend, se reclutaron dos mentores: del equipo de mensajería y del equipo de publicidad.

La prueba era común para ambos equipos, por lo que podía enviar aplicaciones a ambos a la vez. Pero decidí que el anuncio no era muy interesante para mí y envié la aplicación solo al Equipo de Messenger.
Aquí está la lista de requisitos para la tarea de prueba:
Haga una versión simplificada del tablero kanban, en la que pueda:
- agregar nuevas tarjetas;
- agregar nuevas columnas;
- arrastre las tarjetas entre columnas.
Asegúrese de que la solución sea conveniente, rápida y precisa. Piense en cómo hacer que el usuario se sienta cómodo y agradable al usar su producto.
Diseño por referencia: vk.cc/9jpmLH
Al evaluar el trabajo, se tendrá en cuenta lo siguiente:
- cumplimiento con el diseño, precisión del código;
- calidad de diseño;
- flexibilidad y escalabilidad de la solución.
Además, nos encanta cuando el código usa una cantidad mínima de dependencias externas.
El diseño fue muy conciso y solo para versiones de escritorio. Por lo tanto, tuve que pensar todos los detalles y matices. Como resultó más tarde, este fue uno de los trucos de esta tarea. Decidí no reinventar la rueda y subí para ver cómo se implementa en Trello y sitios similares con tableros kanban.
Estaba seguro de que si al menos quiero ser recordado entre una gran cantidad de candidatos, debería enviar mi decisión lo antes posible. Y no se pierde! Como resultado, hizo la tarea dentro de los cinco días desde el comienzo de la aceptación de las solicitudes (sin dormir, comida y todo esto).
Así es como se veía la implementación de la tarea en sí:

Si es interesante, en el grupo VK Education hay un video donde los mentores de ambos equipos, Tim Chaptykov y Dima Bezugly, hablan sobre cómo debería haber sido la implementación ideal de la tarea y describen los errores más comunes durante la ejecución. Aquí está el enlace: vk.cc/9Q54fO
Entrevista de trabajo
Después de largas y dolorosas dos semanas de espera, HR VKontakte me escribió y me invitó a una entrevista. Estaba tan contento y al mismo tiempo tan aterrorizado que toda la semana antes de esta reunión estuve clasificando artículos sobre el tema "Cómo obtener una entrevista técnica en un desarrollador frontend" y materiales similares.
Se suponía que la entrevista en sí se realizaría con el mentor del equipo de mensajería, Tim Chaptykov. Pero la mentora del equipo de publicidad, Dima Bezugly, también vino a hablar conmigo. Las preguntas eran estándar: para mí, sobre la experiencia, la pila de tecnologías que uso en mi trabajo. No recuerdo la entrevista en sí, porque todavía estaba aterrorizada, nerviosa y no entendía lo que estaba haciendo aquí. La única pregunta que quería hacer en la entrevista era si había algún comentario sobre mi tarea de prueba.

¡Naturalmente, lo olvidé! Por lo tanto, lo pasé después de una entrevista a través de Recursos Humanos. Pensé que obtendría una respuesta en forma de dos o tres comentarios, pero no estaba familiarizado con Tim. Al día siguiente recibí una revisión máximamente detallada con todos los comentarios, una descripción de lo que se suponía que debía hacerse, así como un análisis de todos los inconvenientes y ventajas de mi implementación.
Aquí está el mensaje:

Fue muy agradable y agradable, porque por lo general esas preguntas después de la entrevista no me respondieron (tal vez solo tuve suerte, pero aún así).
Todo lo que quedaba era esperar el final de la aceptación de las solicitudes y el anuncio de los resultados. Fueron dos semanas de espera muy emocionantes, después de lo cual finalmente me llamaron y me dijeron que me habían aceptado. ¡Voy a realizar una pasantía en VK!
Primeras impresiones
Mi primer día en VK fue muy ocupado. Primero, todos los pasantes hicieron un recorrido por la oficina: mostraron dónde se basa el equipo, dónde está la famosa sala de reuniones "Pytichnaya" y cómo subir a la cúpula. Luego mostraron trabajos y entregaron equipos: un macbook, un monitor, un teclado y auriculares según lo deseado (son necesarios, por eso debo decir gracias a los músicos que ocupan Nevsky Prospekt en el verano). Y justo después de eso, comencé a sumergirme en el trabajo. El mentor y yo discutimos un plan de trabajo durante dos meses, y fui a establecer un ambiente de trabajo, documentación de lana y jugar el juego "encontrar el artículo correcto en Confluence".

Tareas de pasantía
Mis tareas de pasantía se conocieron desde el principio: me enteré de ellas en la entrevista. No sentarse en la esquina y editar errores que no alcanzan las manos de nadie. Estas fueron tres tareas principales del producto para la sección de mensajes: pronto verá su implementación en la versión de escritorio de VK. Mientras tanto, la NDA;)
La sección de mensajes VK tiene muchas características a tener en cuenta al desarrollar. El más importante de ellos, en mi opinión, es que casi todos los eventos ocurren en tiempo real. Los datos del servidor se actualizan constantemente, debe controlar esto. Lo que se superpone es que las pruebas deben procesar absolutamente todos los casos, y si se detectan algunos errores extremadamente raros, entonces deben corregirse. Es simple: VK cada mes, 97 millones de personas lo usan, y si aparece cada milésima mil errores, resulta que casi 1000 usuarios lo detectarán. Por lo tanto, prácticamente no hay errores menores.
Mensajero
Me gustaría hablar por separado sobre el equipo Messenger. Es genial que esté muy bien coordinada, a pesar del hecho de que está dividida en subcomandos por plataforma. Para mantener a todos actualizados en cada plataforma, los lunes se realiza una concentración, donde todos cuentan lo que hizo la semana pasada y qué hará a continuación.

Pero las reuniones más geniales son una retrospectiva. Una vez al mes, se realiza un mitin donde todo el equipo se reúne y discute todo lo bueno y lo malo que sucedió durante este tiempo.
Primero, la retrospectiva toma una gran copa con M&M. Luego, en dos oraciones, habla sobre algo bueno que sucedió en su vida, come dulces y pasa la taza a la siguiente. Y la reunión continúa de la misma manera. Y así sucesivamente hasta que todos hablen. Los chicos hablan sobre cambios globales en la vida y sobre pequeñas cosas como "leer un buen libro" o "ir a una gran película". Anima a todos y ayuda a sintonizar de manera positiva.
Lo siguiente es una discusión de los problemas acumulados. El equipo tiene un buzón especial donde los muchachos arrojan calcomanías durante un mes: en verde escriben sobre lo que les gusta, en amarillo, qué molesto, en rojo, enojado.

Todas las pegatinas se distribuyen en el tablero de acuerdo con las columnas contento, triste y enojado, y luego el equipo las discute. Si hay problemas que no se pueden eliminar aquí y ahora, resulta cómo resolverlos y quién lo resolverá. Los problemas pueden ser diferentes: desde los más pequeños, como la temperatura de un acondicionador de aire, hasta los grandes técnicos u organizativos. Lo principal es que a todos les importa: si algo molesta a uno, molesta a todos. Por lo tanto, el beneficio de estas reuniones es máximo.
También fue genial descubrir cómo la vida está hirviendo dentro de la oficina de VKontakte. Por ejemplo, todos los jueves pasa el Día de demostración, donde los desarrolladores de diferentes equipos comparten la alegría de sus funciones. Se organizan viajes de cine, trabajo en equipo y pizza para los empleados todos los viernes.
Por separado, para los pasantes, se celebraron almuerzos con los altos directivos de la empresa: cuatro grupos de dos o tres pasantes y cuatro altos directivos. Dio la casualidad de que yo y otros dos pasantes de iOS almorzamos con el director gerente de VK, Andrei Rogozov. Esperaba que todo tuviera lugar en un entorno bastante formal, pero en realidad resultó completamente diferente. Hubo un almuerzo en tubo, donde el AR contó muchas historias de la vida de VKontakte, discutimos planes para el futuro.

En general, hubo tantos eventos que estos dos meses pasaron instantáneamente. Al final de todos los pasantes, esperaba una presentación final, donde todos hablaron sobre los resultados de su pasantía. Mi resultado fueron dos nuevas características. Debería haber tres, pero en el desarrollo rara vez algo sale de acuerdo al plan. Una de estas características se dio para probar, de lo cual estoy increíblemente feliz. Me gustaría hablar sobre ellos, pero esto solo será posible después del lanzamiento. Antes de eso, también pasé por la etapa de revisión del código. 47 comentarios fueron cuidadosamente dejados por mi equipo y resueltos.
En conclusión, quiero decir que estoy muy orgulloso de las personas geniales con las que logré trabajar durante la pasantía. En particular, me refiero a un pequeño equipo de dos personas responsable de publicar en la web. Tim y Katya son verdaderos fanáticos de su campo con sus enfoques especiales de desarrollo. Lo que aprendí de ellos durante estos dos meses parece exceder el conocimiento total acumulado durante dos modestos años de trabajo.

La pasantía VKontakte es una oportunidad de ver cómo funciona un proyecto tan grande desde adentro, para aprender más sobre los procesos. Una pasantía en sí misma no implica más empleo, los pasantes son entrevistados en términos generales. Esto se discutió de inmediato y no fue una sorpresa.
Pero, como suele suceder, todo puede cambiar. ¡Los pasantes trabajaron tan bien con sus mentores y colegas que 8 de 13 fueron contratados! Sin embargo, no todos permanecieron en sus equipos, algunos decidieron probarse en otra cosa.
Por ejemplo, ahora soy un desarrollador junior en el Equipo de Infraestructura de Automatización y Mantenimiento: conozco el lado administrativo de VKontakte.