Run Loop est un podcast sur ceux qui fabriquent des produits de leurs propres mains. Au cours des prochains mois, les développeurs seront des invités qui prendront la parole lors de la conférence AppsConf les 8 et 9 octobre.
Dans le premier
numéro, Maxim Efimov est devenu un invité. Sous la coupe, son histoire concerne une interview et un travail chez Uber, une relocalisation à Amsterdam (vous voulez aussi y aller) et, bien sûr, AppsConf.

Présentateurs: Ilya Tsarev, Alexey Mileev, Roman Busygin.
Ilya Tsarev est engagée dans le développement iOS chez Alfa Bank, intervient lors de diverses réunions et conférences.
Alex Mileev a développé la version d'Android App dans l'air, conduit-canal Télégramme sur le développement Android, et supervise les demandes de rapports sur AppsConf.
Roman Busygin - développeur iOS chez Yandex, a participé à de nombreux discours et podcasts, est également membre du comité du programme AppsConf.
Extérieur
Maxim Efimov . Maxim travaille chez Uber et commence par la connaissance.
Maxim Efimov sur lui-même
Maxim : Je suis engagé dans le développement commercial depuis 2011. J'ai quitté Android en 2013, c'est-à-dire il y a 5 ans. Avant Uber, j'étais principalement impliqué dans le développement de la conception. Je suis originaire de la ville de Novossibirsk, où j'ai commencé dans une société d'externalisation, puis j'ai déménagé à Moscou, où j'ai travaillé sur des projets similaires principalement sur le marché russe. Maintenant, je vis à Amsterdam depuis près de 2 ans et je travaille pour Uber. Nous avons ici un bureau de développement, dans lequel nous nous occupons principalement de tout ce qui concerne les paiements. Mon rôle principal est celui de développeur Android au sein d'une équipe dédiée à la prise en charge des paiements dans l'application passager. Bien que nous fassions notre cadre de paiements, qui en principe est utilisé par presque toutes les applications de l'infrastructure Uber. Je joue un certain rôle dans le développement de ce cadre: dans ce que nous faisons, comment nous le faisons, comment certains processus sont construits. C'est mon projet principal et préféré dans l'entreprise sur laquelle je travaille actuellement.
Pourquoi uber
Ilya : Maxim, dites-nous pourquoi Uber? Comment avez-vous décidé que vous vouliez travailler là-bas? Comment y êtes-vous arrivé, et maintenant tout a tourné?
Maxim : Je pensais que tu commencerais à me poser les mêmes questions qu'ils m'ont posées lors de l'entretien. Pendant longtemps, nous avons posé à nos candidats la question: «Pourquoi Uber?».
Honnêtement, je voulais me développer dans une grande entreprise, où je pouvais non seulement grandir en largeur. L'externalisation consiste principalement à faire des choses du même type le plus rapidement possible. À Uber, oui, en principe, cela peut être dit pour presque toutes les grandes entreprises d'épicerie, il s'agit d'un développement à l'intérieur des terres. Autrement dit, ces choses qui sont faites dans de petits projets en un mois, puis ils les travaillent et les soutiennent d'une manière ou d'une autre, dans de telles entreprises, ils peuvent faire plusieurs années avec plusieurs grandes équipes.
Il s'agit d'un décalage de phase lorsque la quantité entre en qualité. La quantité d'efforts que l'entreprise dépense pour développer quelque chose crée finalement un produit qualitativement différent. Pas nécessairement, nous parlons du produit, comme de l'application. Ce peut être une sorte de bibliothèque, une sorte de niveau de pile en développement ou quelque chose comme ça. Cela m'a toujours beaucoup impliqué. C'est-à-dire: comment faire de grandes choses; comment il est organisé techniquement; comment il est organisé en termes de gestion des personnes; de combien de personnes avez-vous besoin pour faire ces choses.
Uber est toujours la startup la plus chère et à la croissance la plus rapide . Il s'agit d'une entreprise qui, d'une part, s'est déjà établie sur le marché, c'est une marque bien connue et reconnaissable. Ce n'est pas une nouvelle startup qui vient de s'organiser. D'un autre côté, selon les critiques que j'ai trouvées avant même d'y avoir trouvé un emploi, il s'agit d'une entreprise dans laquelle il y a encore pas mal de paperasserie et de culture d'entreprise. En termes d'esprit, c'est toujours une startup. Du point de vue du marché, c'est déjà une grande entreprise établie.
De plus,
j'aime vraiment Amsterdam, c'est super de vivre ici . Par coïncidence, j'ai décidé que c'était une très bonne proposition et qu'elle devait être acceptée.
Alexei : Vous avez mentionné que pendant un certain temps au cours des entretiens, ils ont demandé: «Pourquoi Uber?» Quelle a été la réponse la plus populaire?
Maxim : C'est une question difficile. Lorsque j'ai commencé l'entretien, nous n'avons presque pas posé cette question. Par conséquent, je n'ai pas de faits réels d'après mon expérience. Je me souviens de ce que les autres gars ont dit. Tout le monde a commencé à dire que c'était génial de travailler dans une entreprise technologique, c'est cool et intéressant. Puis on leur a demandé: «Bien. Pourquoi pas Facebook? " Et puis le plaisir a commencé. Les gens ont dit que c'était dans Uber, qui n'est pas sur Facebook. C'est une question qui, il me semble, n'est pas tout à fait correcte lors de l'entretien. C'est: "Allez, loue moi pourquoi tu es venu me voir." Je ne me souviens pas de bonnes réponses à cette question, de sorte qu’elles soient honnêtes, d’une part, et intéressantes à en parler.
Entretien chez Uber
Roman : Maxim, comment tout a commencé? Comme d'habitude, avec une lettre sur LinkedIn ou était-ce différent?
Maxim : Oui, il y avait une lettre sur LinkedIn. La seule chose inhabituelle, c'est que j'ai été directement trouvé par mon futur chef. Autrement dit, ce ne sont pas des recruteurs à la recherche de personnes, mais une personne spécifique qui a été plus tard, quoique pour une courte période, mais mon patron direct. Il a écrit, nous avons contacté. Une série d'entretiens a commencé. Je peux dire si je me demande comment cela fonctionne.
Roman : Oui, c'est très intéressant de savoir comment le processus d'entrevue a été organisé.
Maxim : Il était alors et maintenant disposé presque de la même manière. Par conséquent, je vais vous dire la dernière chose dont je me souvienne. Tout d'abord, quelqu'un trouve une personne. Un très grand pourcentage de personnes qui travaillent actuellement dans l'entreprise sont venus sur recommandation. Autrement dit, les employés déjà en activité de l'entreprise recommandent quelqu'un et il entre dans le système d'embauche. Mais certaines personnes sont simplement recrutées en parcourant les profils LinkedIn.
Après que la personne a été trouvée et qu'il est devenu clair qu'il était au moins en quelque sorte pertinent pour des postes à pourvoir, ils lui ont écrit. La prochaine étape est la téléphonie initiale simplement pour un intérêt commun. Le premier appel est simplement de se connaître, de demander s'il y a un intérêt pour l'entreprise ou s'il y a des questions qui doivent être clarifiées immédiatement.
Après cela, nous avons un filtrage technique par téléphone. Il s'agit d'une heure avec deux ingénieurs qui communiquent avec le candidat sur divers sujets techniques liés à sa spécialisation. Cette partie de l'entretien est construite très différemment, selon le poste auquel le candidat postule. Il s'agit de backend, de développeurs mobiles, de data scientist - tout le monde interviewe un peu différemment.
Spécifiquement pour les développeurs mobiles, nous posons généralement des questions générales sur l'ingénieur logiciel, un peu d'informatique. Nous demandons à une personne en ligne d'écrire une solution à un problème pas si banal, mais pas olympiade, pour voir comment une personne peut écrire du code en direct. Naturellement, tout le monde comprend que personne ne vit à la vitesse dans l'éditeur n'a jamais écrit de code dans sa vie, sauf pour une interview. Nous ne voulons pas voir immédiatement un échantillon d'un logiciel industriel prêt à l'emploi, mais voir comment une personne pense, quelles tâches elle se fixe,
comment elle résout des problèmes et comment fonctionne son processus de réflexion .
Alexey : Voici une autre question sur le recrutement après la question. À quelle fréquence les candidats sont-ils intéressés par ce avec quoi ils devront travailler? Quelle est la taille de la base de code? Sur quelle pile technologique est-il construit? Y a-t-il beaucoup d'héritage? Lorsque vous êtes allé à Uber, étiez-vous intéressé?
Maxim : Bien sûr. C'est une question pour la plupart, «Et qu'est-ce qui, en fait, devra être fait vraiment avec les mains? Si je vous comprends bien maintenant, alors avec quoi travailler, quels outils, quelle quantité de ce qui doit être pris en charge. J'étais intéressé. Lorsque j'ai obtenu un emploi dans l'entreprise, c'était juste le moment de la phase active de la rédaction de notre nouvelle application passagers, lancée en novembre 2016. Ensuite, ils m'ont dit dans une interview en texte ouvert qu'il y avait une ancienne application. Oui, c'est un héritage et peut ne pas être très bien écrit. Mais ils ont également dit qu'ils faisaient une nouvelle demande.
Les candidats rentrent également assez souvent dans les détails technologiques. Certes, cela est généralement discuté au stade d'une conversation personnelle. Si cet entretien se passe bien, nous donnons un peu de devoirs. Seuls les ingénieurs mobiles le font. Ni le backend ni la science des données ne le font. Après cela, nous avons une série d'entretiens sur place - déjà en place. Cinq à six entretiens en une journée. Lorsqu'un candidat arrive au bureau et y reste du matin au soir. Les entretiens, bien sûr, ne vont pas de suite, il y a des pauses pour se reposer et déjeuner. Il est temps que nous apprenions à connaître le candidat et que les candidats reconnaissent l'entreprise. Il communique non seulement avec les ingénieurs qui peuvent faire partie de son équipe. Il communique avec les managers, avec les ingénieurs des autres équipes. Il peut obtenir une image plus complète de ce que les autres équipes font en général, ce qu'il aime également.
Roman : Maxim, dites-nous ce qui a été le plus excitant pour cette étape de l'interview, pour toutes les étapes?
Maxim : Maintenant, mon impression est déjà quelque peu floue, c'était déjà il y a quelques années. Je me souviens que le moment le plus excitant pour moi était quand, 2 heures avant d'arriver à l'entretien, j'ai renversé un verre de café. Je ne me souviens pas de ce qui s'est passé avec les entretiens eux-mêmes. L'informatique ou l'architecture m'inquiétaient là-bas. Mais je me souviens que toute mon humeur a été renversée par cette affaire. Dieu merci, tout s'est bien passé. Il me semble que personne n'a remarqué ou gardé le silence avec tact.
Roman : Pour continuer, vous souvenez-vous que cela vous a aidé à traverser cette interview correctement? Quelles connaissances, quelles sont vos compétences? Qu'est-ce qui vous a permis de le passer aussi clairement que vous le pensez?
Maxim : J'ai ici une opinion qui n'est pas entièrement confirmée par les faits. C'est, comme vous le dites, ce que je pense m'a aidé.
Tout d'abord, j'ai passé pas mal de temps chez
HackerRank , à résoudre diverses tâches sur toutes les structures de données standard, algorithmes, etc., juste en me bourrant la main. C'est très utile, car néanmoins une telle informatique "nue" n'est pas très courante dans le travail quotidien, et il est bon de se préparer à un entretien avec quelque chose de séparé.
Deuxièmement, c'est la
capacité d'expliquer ses pensées . La résolution de problèmes informatiques est une entrevue sur cinq ou six qui se présente devant le candidat. D'autres interviews sont, par exemple, une conversation sur l'architecture, sur la façon dont les systèmes sont construits, sur les approches, les modèles et les pratiques à utiliser. Ici, le grand rôle n'est pas joué par la largeur et la profondeur des connaissances, mais par le fait que vous pouvez transmettre ces connaissances à l'interlocuteur.
Il y a deux points principaux:
- Expérience . À ce moment-là, je travaillais en tant que chef d'équipe depuis un certain temps et j'avais souvent des discussions avec les membres de l'équipe sur quoi et comment faire.
- Langue anglaise . Si vous travaillez dans une entreprise et une équipe russophones, il peut être assez difficile de réajuster et d'expliquer ces choses que vous semblez connaître, mais il est difficile de le dire en anglais pour être compris tout de suite. Pour moi, c'était beaucoup de stress, même si je connaissais bien la langue à ce moment-là, mais parler lors de l'entretien était un défi assez important.
Uber Private Day
Ilya : Maxim, vous travaillez chez Uber depuis un bon moment. Veuillez nous dire comment se déroule votre journée de travail ordinaire. Par où commencer et comment finir la journée? Quoi de neuf pour le déjeuner?
Maxim : Ma journée commence un peu à 10h00 du matin. Nous n'avons pas de journée de travail fixe. Il y a un certain temps où toutes les réunions ont généralement lieu. Il peut y avoir des différences selon le projet. Mais dans l'ensemble, je viens quelque part à cette époque. La première chose que je fais est de me connecter à notre VPN fonctionnel, car nous avons tous les artefacts derrière le VPN et nous supprimons les modifications qui ont été apportées du jour au lendemain.
Nous avons plusieurs bureaux dans le monde, il arrive donc souvent que vous veniez le matin et que vous voyiez l'histoire des commits bien plus que ce que vous avez vu pendant la journée, car cela ne prend qu'une journée de travail en Amérique, à San Francisco, à New York, où nous avons également de grands bureaux. Il arrive souvent que si j'avais des succursales non fermées, je traite la résolution de fusion.
Vient ensuite le travail, en fonction du projet particulier sur lequel je suis actuellement. Je n'entrerai pas dans les détails de l'organisation du travail de l'équipe de projet, etc. Ce sera l'un des sujets de ma
présentation . En règle générale, le matin, nous nous levons. Cela peut ne pas être tous les jours, par exemple, tous les deux jours, selon la phase du projet, pendant 10 à 15 minutes. Il s'agit d'une petite conspiration au sujet de qui fait quoi, qui a des problèmes, si nous nous inscrivons dans le calendrier que nous avons nous-mêmes défini. Si tout à coup quelque chose doit être fait, alors nous décidons qui le fera et quand nous vérifierons les résultats de cette action.
Vient ensuite l'heure du déjeuner. Il se trouve qu'aux Pays-Bas, il est de coutume de dîner assez tôt, et les gens viennent surtout travailler tôt. À midi, généralement tout le monde part déjà pour le déjeuner.
Après cela, personnellement, j'ai la
phase la
plus productive, 4-5 heures , lorsque je suis engagé dans des tâches courantes. Je vais au tableau, regarde, quelles sont les tâches, même si en général à ce moment je sais déjà quoi faire. Je crée une nouvelle succursale. Dans ce fil, j'apporte quelques modifications au code, je collecte la construction, je vois ce qui est cassé et ce qui ne l'est pas. Ensuite, je soumets le commit pour examen. Il fait actuellement l'objet d'un examen. Parfois, cela arrive maintenant. Parfois, si vous avez besoin d'un avis d'une équipe tierce, cela peut durer une journée, car l'autre équipe dort très probablement, car elle est dans un fuseau horaire différent. Après cela, si tout va bien, le commit est reversé au maître, et tout le monde est content. Ensuite, je passe à l'opération suivante avec un nouveau problème.
Roman : Vous faites sûrement des pauses entre les tâches lorsque vous avez besoin de réfléchir ou que la pensée ne va pas. Certes, il y a des périodes où vous n'êtes pas assis devant le moniteur. Comment passez-vous ce temps?
Maxim : Premièrement, nous avons des tables sympas sur lesquelles vous pouvez non seulement vous asseoir, mais aussi vous tenir debout, parfois même un si petit changement aide. Honnêtement, je n'aime pas vraiment les distractions pendant cette journée de travail concentrée. Le matin, allez prendre un verre de café, le soir, voyez comment quelqu'un de la FIFA joue sur la PlayStation, oui.
Mais pendant que les énigmes disparaissent, vous devez fig. Je peux aller verser de l'eau, peut-être avoir quelques mots avec un collègue, et presque tout. Mais c'est juste ma préférence personnelle. Je ne sais pas comment travailler de manière à jouer au tennis de table en milieu de journée, par exemple. J'ai besoin de temps pour me reposer, de travailler, puis de nouveau de me reposer.
Roman : Je vois. J'ai remarqué qu'au tout début, vous aviez dit que vous vous connectiez via VPN. Autrement dit, tout en travaillant au bureau, vous utilisez toujours un VPN pour accéder au réseau de travail, non?
Maxim : En partie, via notre réseau de bureaux, certaines ressources sont disponibles qui ne sont pas disponibles à partir d'un réseau externe tiers. Mais certaines ressources ne sont disponibles que pour VPN. Je ne sais pas exactement quelles étaient les raisons d'une telle politique de sécurité. Franchement, pourquoi cela a été accepté, je n'ai pas compris. C'est pratique parce que je peux faire tout ce que je fais au bureau à partir du même VPN de n'importe où dans le monde.
Alexei : Écoutez, une telle phrase a clignoté: "Je vais au tableau." Signifiait un traqueur de tâches? Si oui, lequel utilisez-vous? Ou est-ce un véritable endroit physique où ces beaux autocollants sont collés, où vous devez monter et prendre votre prochaine tâche?
Maxim : Habituellement, nous utilisons le tracker de tâches.
Nous utilisons Phabricator. Il y a des équipes qui aiment les planches physiques, les autocollants physiques, les marqueurs. Si vous devez travailler sur un tel projet, je le ferai probablement. Mais en principe, chez nous, chaque équipe est organisée à sa manière. Parfois, il arrive que notre conseil d'administration, s'il s'agit d'un très petit projet, puisse être un signe dans Excel, de sorte que les gens ne se soucient pas beaucoup de tous les rapports et d'autres choses.
J'ai dit au début que l'entreprise était encore une petite startup. Nous sommes toujours flexibles dans la méthodologie de la façon dont nous faisons notre travail, selon le type de projet sur lequel nous travaillons actuellement, ce que nous en attendons.
Alexey : Question sur le workflow. Suivez-vous en quelque sorte le temps que vous passez assis directement et à écrire le code? Ou peut-être le faites-vous de manière centrale?
Maxim : nous ne suivons pas spécifiquement le temps consacré aux tâches. Nous regardons l'avancement du projet au fur et à mesure. Cela dépend déjà de qui gère ce projet. Lorsque j'agis en tant que chef de projet, il est généralement plus pratique pour moi de consulter les résultats de la semaine. Au début de la semaine, nous disons que nous voulons faire vendredi prochain, que nous voulons montrer et démontrer. Ensuite, nous regardons, il s'est avéré ou non, nous analysons ce qui a mal tourné, pourquoi nous avons réussi. S'ils ont retravaillé, en ce sens, nous ferons plus que prévu, nous découvrirons également pourquoi. Je n'ai entendu aucune des équipes parler du suivi du temps en heures de la quantité de développeur et de ce qu'il a fait spécifiquement un jour donné. Il me semble que personne ne fait ça avec nous.
Les outils
Roman : Ce n'est pas la première fois que j'entends dire qu'Uber utilise des outils Facebook, que ce soit Phabricator ou Buck. Quelle en est la raison?
Maxim : Je ne peux pas parler de politique mondiale. Je ne suis même pas sûr que ce soit le cas, utilisons les outils de Facebook. Buck nous convient selon certains critères. Il y a un grand projet, construire du temps et tout ça. Avec Phabricator, je ne sais pas. Cela s'est produit avant de rejoindre l'entreprise. Je sais que certaines équipes tentent de créer une partie de leur petite instance Jira, mais c'est toujours dans l'esprit de l'expérience. L'équipe utilise ces outils différemment. Nous n'avons aucune sorte de politique globale nous permettant d'utiliser tout ce que Facebook fait.
Route vers et depuis le travail
Alexei : Dites-moi ce qui se passe à la fin de votre journée de travail. Au fait, à quelle heure? Est-il en quelque sorte fixé dans le temps?
Maxim : Habituellement, je pars quelque part à 7 heures avec quelque chose. C'est spécifiquement mon emploi du temps, je pense qu'après un certain temps cela peut changer vers une arrivée et un départ plus tôt. Beaucoup de gens viennent à 8 et vont à 5.
Alexei : Comment arrivez-vous au travail? Faites-vous du vélo comme un vrai Néerlandais?
Maxim : Moi, comme un vrai Néerlandais, je monte à bicyclette jusqu'au métro puis je prends le métro pour aller travailler. Maintenant, notre bureau est situé à côté d'un très grand centre de transport, et là, un vélo n'est tout simplement pas nécessaire. Mais avant cela, je parcourais
chaque jour la magnifique forêt d'Amsterdam à
vélo sur 12 km aller simple . C'était incroyable. Ce bureau me manque vraiment à cause de cette route.
Ilya : Combien de temps as-tu pour travailler?
Maxim : 30-40 minutes.
À propos d'Amsterdam
Alexei : Pendant tout le temps que tu as vécu à Amsterdam, qu'est-ce que tu as le plus aimé? Pourquoi cette ville à votre avis? Quelle est la chose la plus cool?
Maxim :
Le plus cool d'Amsterdam est sa ville voisine de Haarlem , où j'ai vécu pendant un an. C'est une petite ville complètement merveilleuse qui, comme Amsterdam, il n'y a que très peu de touristes. Il est très cool d'un point de vue culturel. Malgré le fait qu'il soit petit, il y a des cinémas, des théâtres, diverses activités, quelqu'un se produit tous les week-ends. J'aime vraiment le style et le rythme de vie locaux dans le sens où les gens se rapportent à leur travail, comment ils se rapportent à leur famille. Le fameux
Life Work Balance . Il n'est pas très courant de "labourer". La plupart des carrières des gens ne sont pas en premier lieu. , , - , , , , 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 , .
, , .
, , .