Run Loop es un podcast sobre aquellos que hacen productos con sus propias manos. Durante los próximos meses, los desarrolladores serán invitados que hablarán en la conferencia AppsConf los días 8 y 9 de octubre.
En el primer
número, Maxim Efimov se convirtió en invitado. Debajo del corte, su historia trata sobre una entrevista y un trabajo en Uber, sobre la reubicación en Amsterdam (también desea ir allí) y, por supuesto, sobre AppsConf.

Presentadores: Ilya Tsarev, Alexey Mileev, Roman Busygin.
Ilya Tsarev se dedica al desarrollo de iOS en Alfa Bank, habla en varias reuniones y conferencias.
Alexey Mileev está desarrollando una versión de Android de App in the Air, lidera un canal de Telegram para el desarrollo de Android y supervisa las aplicaciones para informes en AppsConf.
Roman Busygin , desarrollador de iOS en Yandex, participó en muchos discursos y podcasts, también es miembro del Comité del Programa AppsConf.
Lejos
Maxim Efimov . Maxim trabaja en Uber y comienza con el conocido.
Maxim Efimov sobre sí mismo
Maxim : He estado involucrado en el desarrollo comercial desde 2011. Dejé Android en 2013, es decir, hace 5 años. Antes de Uber, estaba principalmente involucrado en el desarrollo del diseño. Soy de la ciudad de Novosibirsk, donde comencé en una empresa de outsourcing, luego me mudé a Moscú, trabajé en proyectos similares principalmente en el mercado ruso. Ahora llevo casi 2 años viviendo en Amsterdam y trabajo para Uber. Aquí tenemos una oficina de desarrollo, en la que nos ocupamos principalmente de todo lo relacionado con los pagos. Mi papel principal es un desarrollador de Android en un equipo dedicado a respaldar pagos en la aplicación de pasajeros. Aunque estamos creando nuestro Marco de pagos, que en principio es utilizado por casi todas las aplicaciones en la infraestructura de Uber. Desempeño un cierto papel en el desarrollo de este marco: en lo que hacemos, cómo lo hacemos, cómo se construyen algunos procesos. Este es mi proyecto principal favorito en la compañía en la que estoy trabajando actualmente.
Por que uber
Ilya : Maxim, por favor dinos por qué Uber? ¿Cómo decidiste que quieres trabajar allí? ¿Cómo llegaste allí, y ahora todo giró?
Maxim : Pensé que comenzarías a hacerme las mismas preguntas que me hicieron en la entrevista. Durante mucho tiempo, les preguntamos a nuestros candidatos: "¿Por qué Uber?".
Honestamente, quería desarrollarme en una gran empresa, donde podría crecer no solo en amplitud. El outsourcing es principalmente para hacer cosas del mismo tipo lo más rápido posible. En Uber, sí, en principio, esto se puede decir sobre casi cualquier gran empresa de comestibles, esto es un desarrollo hacia el interior. Es decir, aquellas cosas que se hacen en pequeños proyectos en un mes, y luego de alguna manera trabajan y los apoyan, en tales empresas pueden hacer varios años con múltiples equipos grandes.
Este es un cambio de fase cuando la cantidad entra en calidad. La cantidad de esfuerzo que la compañía gasta en desarrollar algo finalmente crea un producto cualitativamente diferente. No necesariamente estamos hablando del producto, sino de la aplicación. Puede ser algún tipo de biblioteca, algún tipo de nivel de pila en desarrollo o algo así. Siempre me involucró mucho. Es decir: cómo hacer grandes cosas; cómo está organizado técnicamente; cómo está organizado en términos de gestión de personas; ¿Cuántas personas necesitas para hacer estas cosas?
Uber sigue siendo la startup más cara y de más rápido crecimiento . Esta es una empresa que, por un lado, ya se ha establecido en el mercado; es una marca reconocida y reconocida. Esta no es una nueva startup que acaba de organizarse. Por otro lado, según las revisiones que encontré antes de conseguir un trabajo allí, esta es una empresa en la que todavía hay bastante burocracia y cultura corporativa. En términos de espíritu, todavía es una startup. Desde el punto de vista del mercado, ya es una gran empresa establecida.
Además,
me gusta mucho Amsterdam, es genial vivir aquí . Casualmente, decidí que esta era una muy buena propuesta y que debía ser aceptada.
Alexei : Usted mencionó eso durante algún tiempo durante las entrevistas que le preguntaron: "¿Por qué Uber?" ¿Cuál fue la respuesta más popular?
Maxim : Esta es una pregunta difícil. Cuando comencé la entrevista, casi no hicimos esta pregunta. Por lo tanto, no tengo hechos reales de mi experiencia. Recuerdo lo que dijeron los otros chicos. Todos comenzaron a decir que es genial trabajar en una empresa de tecnología, todo es genial e interesante. Luego se les preguntó: “Bien. ¿Por qué no Facebook? Y entonces comenzó la diversión. La gente decía que esto está en Uber, que no está en Facebook. Esta es una pregunta que, me parece, no es del todo correcta en la entrevista. Es: "Vamos, alabadme por qué viniste a mí". No recuerdo ninguna buena respuesta a esta pregunta, por lo que son honestos, por un lado, e interesantes para hablar de ellos.
Entrevista en Uber
Roman : Maxim, ¿cómo empezó todo? Como de costumbre, con una carta en LinkedIn o fue de alguna manera diferente?
Maxim : Sí, había una carta en LinkedIn. Lo único que fue inusual fue que mi futuro líder me encontró directamente. Es decir, no se trata de reclutadores en busca de personas, sino de una persona específica que luego fue, aunque por un corto tiempo, pero mi jefe directo. Él escribió, nos contactamos. Una ronda de entrevistas ha comenzado. Puedo decir si me pregunto cómo funciona esto.
Roman : Sí, es muy interesante saber cómo se organizó el proceso de la entrevista.
Maxim : Él y ahora está arreglado casi lo mismo. Por lo tanto, te diré lo último que recuerdo. Primero, alguien encuentra a una persona. Un porcentaje muy grande de personas que actualmente trabajan en la empresa vinieron por recomendación. Es decir, los empleados de la empresa que ya trabajan recomiendan a alguien y él ingresa al sistema de contratación. Pero algunas personas solo son reclutadas al pasar por los perfiles de LinkedIn.
Después de que se encontró a la persona, y quedó claro que al menos de alguna manera era relevante para las posiciones abiertas, le escribieron. El siguiente es el teléfono inicial simplemente por un interés común. La primera llamada es solo para conocerse, preguntar si hay algún interés en la empresa o si hay preguntas que deben aclararse de inmediato.
Después de eso, tenemos una revisión técnica telefónica. Esta es una hora de tiempo con dos ingenieros que se comunican con el candidato sobre diversos temas técnicos relacionados con su especialización. Esta parte de la entrevista se construye de manera muy diferente, dependiendo de la posición que el candidato está solicitando. Esto es backend, desarrolladores móviles, científico de datos: todos entrevistamos de manera un poco diferente.
Específicamente para desarrolladores móviles, generalmente hacemos algunas preguntas generales sobre Ingeniero de software, un poco de informática. Le pedimos a una persona en línea que escriba una solución a un problema no tan trivial, pero no olímpico, para ver cómo una persona puede escribir código en vivo. Naturalmente, todos entienden que nadie vive a la velocidad en que el editor haya escrito un código en su vida, excepto por una entrevista. No queremos ver de inmediato una muestra de un producto de software industrial listo para usar, sino ver cómo piensa una persona, qué tareas se encarga,
cómo resuelve problemas y cómo funciona su proceso de pensamiento .
Alexey : Aquí hay otra pregunta sobre reclutar después de la pregunta. ¿Con qué frecuencia están interesados los candidatos en lo que tendrán que trabajar? ¿Qué tan grande es el código base? ¿En qué pila tecnológica se construye? ¿Hay mucho legado? Cuando fuiste a Uber, ¿estabas interesado?
Maxim : por supuesto. Esta es una pregunta en su mayor parte, "¿Y qué, de hecho, tendrá que hacerse realmente con las manos?" Si te entiendo en este momento, entonces con qué trabajar, qué herramientas, cuánto de lo que necesita ser apoyado. Estaba interesado Cuando conseguí un trabajo en la compañía, era justo el momento de la fase activa de escribir nuestra nueva aplicación de pasajeros, que se lanzó en noviembre de 2016. Luego me dijeron en una entrevista de texto abierto que hay una aplicación antigua. Sí, es heredado y puede que no se escriba muy bien. Pero también dijeron que están haciendo una nueva aplicación.
Los candidatos también entran en detalles de tecnología con bastante frecuencia. Es cierto que esto generalmente se discute en la etapa de una conversación personal. Si esta entrevista sale bien, le damos un poco de tarea. Solo nosotros los ingenieros móviles hacemos esto. Ni el backend ni la ciencia de datos hacen esto. Después de eso, tenemos una ronda de entrevistas en el sitio, ya en su lugar. Cinco a seis entrevistas en un día. Cuando un candidato llega a la oficina y se queda allí desde la mañana hasta la tarde. Las entrevistas, por supuesto, no van seguidas, hay descansos para descansar y almorzar. Es hora de que conozcamos al candidato y que los candidatos reconozcan a la empresa. Se comunica no solo con ingenieros que pueden estar en su equipo. Se comunica con los gerentes, con ingenieros de otros equipos. Puede obtener una imagen más completa de las cosas interesantes que otros equipos hacen en general, que también le gusta.
Roman : Maxim, por favor dinos qué fue lo más emocionante para esta etapa de la entrevista, para todas las etapas.
Maxim : Ahora mi impresión ya es algo borrosa, ya era hace un par de años después de todo. Recuerdo que el momento más emocionante para mí fue cuando, 2 horas antes de llegar a la entrevista, golpeé un vaso de café. No recuerdo lo que pasó con las entrevistas mismas. O la informática o la arquitectura me preocuparon allí. Pero recuerdo que todo mi estado de ánimo fue derribado por este asunto. Gracias a Dios todo salió bien. Me parece que nadie se dio cuenta o se mantuvo en silencio con tacto.
Roman : Para continuar con esto, ¿recuerdas que te ayudó a superar esta entrevista correctamente? ¿Qué conocimiento, cuáles son tus habilidades? ¿Qué te permitió pasarlo tan claramente como crees?
Maxim : Aquí tengo una opinión que no está totalmente confirmada por los hechos. Esto, como dices, es lo que creo que me ayudó.
En primer lugar, pasé bastante tiempo en
HackerRank , resolviendo varias tareas en todas las estructuras de datos estándar, algoritmos, etc., simplemente rellenando mi mano. Esto es bastante útil porque, sin embargo, una informática tan "desnuda" no es muy común en el trabajo diario, y es bueno prepararse para una entrevista con algo por separado.
En segundo lugar, es la
capacidad de explicar los pensamientos de uno . Resolver problemas de la informática es una entrevista de cada cinco o seis que aparecen ante el candidato. Otras entrevistas son, por ejemplo, una conversación sobre arquitectura, sobre cómo se construyen los sistemas, qué enfoques, patrones y prácticas utilizar. Aquí el gran papel lo juega no el ancho y la profundidad del conocimiento, sino el hecho de que puede transmitir este conocimiento al interlocutor.
Hay dos puntos principales:
- Experiencia . Para ese entonces, había estado trabajando como líder de equipo por algún tiempo y a menudo tenía conversaciones con los miembros del equipo sobre qué y cómo hacer.
- Idioma ingles Si trabaja en una empresa y un equipo de habla rusa, puede ser bastante difícil reajustar y explicar las cosas que parece saber, pero le resulta difícil decirlo en inglés para que se entienda de inmediato. Para mí fue bastante estresante, aunque conocía bien el idioma en ese momento, pero hablar en la entrevista fue un gran desafío.
Día privado de Uber
Ilya : Maxim, has estado trabajando en Uber durante un tiempo decente. Por favor díganos cómo va su día de trabajo normal. ¿Por dónde empiezas y cómo terminas el día? ¿Qué pasa para el almuerzo?
Maxim : Mi día comienza un poco a las 10:00 de la mañana. No tenemos una jornada laboral fija. Hay un momento en que todas las reuniones se llevan a cabo generalmente. Puede haber algunas diferencias según el proyecto. Pero en general, voy a venir a algún lado esta vez. Lo primero que hago es conectarme a nuestra VPN en funcionamiento, porque tenemos todos los artefactos detrás de la VPN y eliminar los cambios que se hicieron de la noche a la mañana.
Tenemos varias oficinas en todo el mundo, por lo que a menudo sucede que viene por la mañana y ve la historia de los compromisos mucho más de lo que vio durante el día, porque solo lleva un día de trabajo en Estados Unidos, en San Francisco, en Nueva York, donde también tenemos grandes oficinas. A menudo sucede que si tenía algunas ramas sin cerrar, entonces me ocupo de la resolución de fusión.
El siguiente es el trabajo, dependiendo del proyecto en particular en el que estoy actualmente. No profundizaré en cómo se organiza el trabajo del equipo del proyecto, etc. Este será uno de los temas en mi
presentación . Como regla general, en la mañana tenemos algo de pie. Puede que no sea todos los días, por ejemplo, cada dos días, dependiendo de la fase del proyecto, durante 10-15 minutos. Esta es una pequeña conspiración sobre el tema de quién hace qué, quién tiene problemas, si encajamos en el programa que nosotros mismos hemos esbozado. Si de repente se necesita hacer algo, entonces decidimos quién lo hará y cuándo verificaremos los resultados de esta acción.
Luego llega el momento del almuerzo. Dio la casualidad de que en los Países Bajos se acostumbra cenar bastante temprano, y la mayoría de las personas vienen a trabajar temprano. A las 12:00, generalmente todos ya se van a almorzar.
Después de eso, personalmente, tengo la
fase más productiva, 4-5 horas , cuando estoy ocupado en las tareas actuales. Voy al pizarrón, mira, cuáles son las tareas, aunque generalmente en este momento ya sé qué hacer. Hago una nueva sucursal. En este hilo realizo algunos cambios en el código, recopilo la compilación, veo qué está roto y qué no. Luego presento commit para su revisión. Se está sometiendo a una revisión. A veces sucede en este momento. A veces, si necesita una revisión de un equipo externo, puede prolongarse durante un día, porque el otro equipo probablemente duerma, ya que se encuentra en una zona horaria diferente. Después de eso, si todo está bien, el compromiso se devuelve al maestro, y todos están felices. A continuación, procedo a la siguiente operación con un nuevo problema.
Roman : Seguramente tomas algunos descansos entre tareas cuando necesitas pensar o el pensamiento no desaparece. Seguramente, hay algunos períodos en los que no está sentado frente al monitor. ¿Cómo pasas este tiempo?
Maxim : Primero, tenemos mesas geniales en las que no solo puedes sentarte, sino también pararte, a veces incluso un cambio tan pequeño ayuda. Honestamente, no me gustan las distracciones durante este día de trabajo concentrado. Por la mañana, ve a tomar un café, por la noche ve cómo alguien de FIFA juega en PlayStation, sí.
Pero mientras los acertijos continúan, necesitas fig. Puedo ir a verter agua, tal vez hablar con un colega y casi todo. Pero esto es solo mi preferencia personal. No sé cómo trabajar de manera que, por ejemplo, juegue tenis de mesa a mitad del día. Necesito tiempo para descansar, tiempo para trabajar, y nuevamente tiempo para descansar.
Roman : Ya veo. Me di cuenta de que al principio dijiste que te estabas conectando a través de VPN. Es decir, mientras trabaja en la oficina, todavía usa una VPN para obtener acceso a la red de trabajo, ¿verdad?
Maxim : en parte, a través de nuestra red de oficinas, hay ciertos recursos disponibles que no están disponibles en ninguna red externa de terceros. Pero algunos recursos están disponibles solo para VPN. No sé exactamente cuáles fueron los motivos de tal política de seguridad. Por qué fue aceptado, francamente, no lo entendí. Es conveniente porque puedo hacer todas las cosas que hago en la oficina desde la misma VPN desde cualquier parte del mundo.
Alexei : Mire, una frase semejante brilló: "Voy a la pizarra". ¿Te refieres a algún rastreador de tareas? Si es así, ¿cuál usas? ¿O es un lugar físico real donde se pegan estas hermosas pegatinas, donde necesitas subir y tomar tu próxima tarea?
Maxim : Usualmente usamos el rastreador de tareas.
Usamos Phabricator. Hay equipos que aman los tableros físicos, las calcomanías físicas, los marcadores. Si tiene que trabajar en tal proyecto, entonces, probablemente, lo haré. Pero, en principio, con nosotros cada equipo está organizado a su manera. A veces sucede que nuestra junta, si se trata de un proyecto muy pequeño, puede ser una señal en Excel, para que las personas no se molesten demasiado con todos los informes y otras cosas.
Al principio dije que la compañía todavía es una pequeña empresa. Todavía somos flexibles en la metodología de cómo hacemos nuestro trabajo, dependiendo de qué tipo de proyecto estamos trabajando actualmente, qué queremos de él.
Alexey : La pregunta es sobre el flujo de trabajo. ¿De alguna manera realiza un seguimiento del tiempo que pasa sentado directamente y escribiendo el código? ¿O tal vez lo haces centralmente?
Maxim : No realizamos un seguimiento específico del tiempo para las tareas. Observamos el progreso del proyecto a medida que avanza. Ya depende de quién gestiona este proyecto. Cuando actúo como líder del proyecto, generalmente es más conveniente para mí ver los resultados de la semana. Al comienzo de la semana decimos que queremos hacer el próximo viernes, que queremos mostrar y demostrar. Luego miramos, resultó o no, analizamos qué salió mal, por qué lo logramos. Si ellos volvieron a trabajar, en el sentido, haremos más de lo planeado, entonces también descubriremos por qué. No he tenido noticias de ninguno de los equipos sobre el seguimiento del tiempo en horas de cuánto es el desarrollador y qué hizo específicamente en un día determinado. Me parece que nadie está haciendo esto con nosotros.
Las herramientas
Roman : Esta no es la primera vez que escucho que Uber usa herramientas de Facebook, ya sea Phabricator o Buck. ¿Cuál es la razón de esto?
Maxim : No puedo decir sobre política global. Ni siquiera estoy seguro de que sea así que usemos las herramientas de Facebook. Buck nos conviene según ciertos criterios. Hay un gran proyecto, tiempo de construcción y todo eso. Con Phabricator, no lo sé. Esto sucedió antes de unirme a la empresa. Sé que algunos equipos están tratando de hacer algo de su pequeña instancia de Jira, pero esto todavía está en el espíritu del experimento. El equipo usa estas herramientas de manera diferente. No tenemos ningún tipo de política global que nos permita usar todo lo que hace Facebook.
Camino hacia y desde el trabajo
Alexei : Cuéntame más qué sucede cuando termina tu día de trabajo. Por cierto, ¿a qué hora? ¿De alguna manera está arreglado en el tiempo?
Maxim : Por lo general, me voy a algún lugar a las 7 con algo. Este es específicamente mi horario, creo que después de un tiempo puede cambiar hacia una llegada y salida más temprana. Muchas personas vienen a las 8 y van a 5.
Alexei : ¿Cómo llegas al trabajo? ¿Andas en bicicleta como un verdadero holandés?
Maxim : Yo, como un verdadero holandés, voy en bicicleta al metro y luego en metro al trabajo. Ahora nuestra oficina está ubicada al lado de un centro de transporte muy grande, y allí simplemente no se necesita una bicicleta. Pero antes de eso, pasé por el maravilloso bosque de Ámsterdam en
bicicleta todos los días durante 12 km en una dirección . Fue asombroso. Realmente extraño esa oficina debido a este camino.
Ilya : ¿Cuánto tiempo llegas al trabajo?
Máxima : 30-40 minutos.
Acerca de Amsterdam
Alexei : Durante todo el tiempo que viviste en Amsterdam, ¿qué te gustó más? ¿Por qué es esta ciudad en tu opinión? ¿Qué es lo más genial?
Maxim :
Lo mejor de Amsterdam es su ciudad vecina de Haarlem , donde viví durante un año. Esta es una pequeña ciudad completamente maravillosa, que al igual que Ámsterdam, solo hay muy pocos turistas. Él es muy genial desde un punto de vista cultural. A pesar de que es pequeño, hay cines, teatros, diversas actividades, alguien realiza todos los fines de semana. Me gusta mucho el estilo local y el ritmo de vida en el sentido de cómo las personas se relacionan con su trabajo, cómo se relacionan con su familia. El famoso
Life Work Balance . No es muy habitual "arar". Las carreras de la mayoría de las personas no están en primer lugar. , , - , , , , 3 . ,
, , . - , , , , . , .
AppsConf
: . , AppsConf. , , , .
: , , , . , -,
, , , .
,
. , Android , iOS . - , .
, ,
Uber Quality assurance . . , , , . , . , , , Uber, , . , , Uber . .
AppsConf
: , ? , , . ? ?
: , . , . , , , , , . . , , , -, - , , . , , .
, , , -, , - . quality assurance, . , Uber, Uber , , - . , , . , - , - in-house. - , backend, . , .
Uber
Uber, , .
Uber . , . , , . , , -. . , .
: . , . . , AppsConf , 8-9 .
Appsconf.ru , .
, , .
, , .