Run Loop é um podcast sobre quem faz produtos com as próprias mãos. Nos próximos meses, os desenvolvedores serão convidados que falarão na conferência AppsConf nos dias 8 e 9 de outubro.
Na primeira
edição, Maxim Efimov se tornou um convidado. Sob o corte, sua história é sobre uma entrevista e trabalho na Uber, sobre a mudança para Amsterdã (você também quer ir para lá) e, é claro, sobre o AppsConf.

Apresentadores: Ilya Tsarev, Alexey Mileev, Roman Busygin.
Ilya Tsarev está envolvido no desenvolvimento de iOS no Alfa Bank, fala em várias reuniões e conferências.
Alexey Mileev está desenvolvendo uma versão Android do App in the Air, está liderando um canal Telegram para desenvolvimento Android e supervisiona aplicativos para relatórios no AppsConf.
Roman Busygin - desenvolvedor de iOS da Yandex, participou de muitos discursos e podcasts, também é membro do Comitê do Programa AppsConf.
Fora
Maxim Efimov . Maxim trabalha na Uber e começa com o conhecido.
Maxim Efimov sobre si mesmo
Maxim : Estou envolvido em desenvolvimento comercial desde 2011. Saí do Android em 2013, ou seja, há 5 anos. Antes da Uber, eu estava envolvido principalmente no desenvolvimento de design. Eu sou da cidade de Novosibirsk, onde comecei em uma empresa de terceirização, depois me mudei para Moscou, trabalhei em projetos semelhantes principalmente no mercado russo. Agora moro em Amsterdã há quase 2 anos e trabalho para a Uber. Aqui temos um escritório de desenvolvimento, no qual lidamos principalmente com tudo relacionado a pagamentos. Meu principal papel é desenvolvedor de Android em uma equipe dedicada a apoiar pagamentos no aplicativo de passageiros. Embora estejamos criando nossa Estrutura de pagamentos, que em princípio é usada por quase todos os aplicativos na infraestrutura do Uber. Desempenho um certo papel no desenvolvimento dessa estrutura: no que fazemos, como fazemos, como alguns processos são construídos. Este é o meu principal projeto favorito da empresa em que estou trabalhando atualmente.
Por que uber
Ilya : Maxim, por favor, diga-nos por que o Uber? Como você decidiu que quer trabalhar lá? Como você chegou lá, e agora tudo girou?
Maxim : Eu pensei que você começaria a me fazer as mesmas perguntas que eles me fizeram na entrevista. Durante muito tempo, fizemos aos nossos candidatos a pergunta: "Por que o Uber?".
Honestamente, eu queria desenvolver em alguma grande empresa, onde pudesse crescer não apenas em amplitude. A terceirização é principalmente para fazer coisas do mesmo tipo o mais rápido possível. No Uber, sim, em princípio, isso pode ser dito sobre quase qualquer grande empresa de supermercado, isso é um desenvolvimento no interior. Ou seja, aquelas coisas que são feitas em pequenos projetos em um mês e, de alguma forma, elas funcionam e os apóiam; nessas empresas, eles podem fazer vários anos com várias grandes equipes.
Essa é uma mudança de fase quando a quantidade entra em qualidade. A quantidade de esforço que a empresa gasta no desenvolvimento de algo cria um produto qualitativamente diferente. Não necessariamente estamos falando sobre o produto, mas sobre o aplicativo. Pode ser algum tipo de biblioteca, algum tipo de nível de pilha no desenvolvimento ou algo parecido. Sempre me envolveu muito. Ou seja: como fazer grandes coisas; como é organizado tecnicamente; como é organizado em termos de gerenciamento de pessoas; Quantas pessoas você precisa fazer essas coisas.
O Uber ainda é a startup mais cara e de crescimento mais rápido . Esta é uma empresa que, por um lado, já se estabeleceu no mercado, é uma marca reconhecida e reconhecida. Esta não é uma nova inicialização que acabou de ser organizada. Por outro lado, de acordo com as resenhas que encontrei antes mesmo de conseguir um emprego lá, esta é uma empresa na qual ainda há um pouco de burocracia e cultura corporativa. Em termos de espírito, ainda é uma startup. Do ponto de vista do mercado, já é uma grande empresa estabelecida.
Além disso,
eu realmente gosto de Amsterdã, é ótimo morar aqui . Por coincidência, decidi que essa era uma proposta muito boa e deveria ser aceita.
Alexei : Você mencionou que, durante algum tempo, durante as entrevistas, eles perguntaram: "Por que Uber?" Qual foi a resposta mais popular?
Maxim : Esta é uma pergunta difícil. Quando comecei a entrevista, quase não fizemos essa pergunta. Portanto, não tenho fatos reais da minha experiência. Lembro-me do que os outros caras disseram. Todo mundo começou a dizer que é ótimo trabalhar em uma empresa de tecnologia, tudo é legal e interessante. Então eles foram perguntados: “Bom. Por que não o Facebook? ” E então a diversão começou. As pessoas disseram que isso é no Uber, que não está no Facebook. Esta é uma pergunta que, ao que me parece, não está totalmente correta na entrevista. É: "Vamos lá, elogie-me por que você veio a mim." Não me lembro de boas respostas para essa pergunta, para que elas sejam honestas, por um lado, e interessantes para falar sobre elas.
Entrevista na Uber
Romano : Maxim, como tudo começou? Como sempre, com uma carta no LinkedIn ou foi de alguma forma diferente?
Maxim : Sim, havia uma carta no LinkedIn. A única coisa que era incomum era que eu fui encontrado diretamente pelo meu futuro líder. Ou seja, esses não são recrutadores em busca de pessoas, mas uma pessoa específica que mais tarde foi, embora por pouco tempo, mas meu chefe direto. Ele escreveu, nós contatamos. Uma rodada de entrevistas começou. Posso dizer se me pergunto como isso funciona.
Roman : Sim, é muito interessante ouvir sobre como o processo de entrevista foi organizado.
Maxim : Ele então e agora está organizado quase da mesma forma. Portanto, vou lhe contar a última coisa que me lembro. Primeiro, alguém encontra uma pessoa. Uma porcentagem muito grande de pessoas que atualmente trabalham na empresa recebeu recomendação. Ou seja, os funcionários da empresa que já trabalham recomendam alguém e ele entra no sistema de contratação. Mas algumas pessoas são recrutadas apenas através dos perfis do LinkedIn.
Depois que a pessoa foi encontrada, e ficou claro que ele era pelo menos de alguma forma relevante para abrir posições, eles escreveram para ele. Em seguida é o telefone inicial simplesmente para um interesse comum. A primeira ligação é apenas para se conhecer, perguntar se há algum interesse na empresa ou se há perguntas que precisam ser esclarecidas imediatamente.
Depois disso, temos uma triagem técnica por telefone. É uma hora com dois engenheiros que se comunicam com o candidato sobre vários tópicos técnicos relacionados à sua especialização. Esta parte da entrevista é construída de maneira muito diferente, dependendo da posição em que o candidato está se candidatando. Isso é back-end, desenvolvedores de dispositivos móveis, cientista de dados - todo mundo entrevista um pouco diferente.
Especificamente para desenvolvedores de dispositivos móveis, geralmente fazemos algumas perguntas gerais sobre Engenheiro de Software, um pouco de Ciência da Computação. Pedimos a uma pessoa on-line para escrever uma solução para um problema não tão trivial, mas não para as olimpíadas, para ver como uma pessoa pode escrever código ao vivo. Naturalmente, todo mundo entende que ninguém vive a uma velocidade no editor jamais escreveu um código em sua vida, exceto uma entrevista. Não queremos ver imediatamente uma amostra de um produto de software industrial pronto, mas ver como uma pessoa pensa, quais tarefas ele define para si mesma,
como resolve problemas e como funciona seu processo de pensamento .
Alexey : Aqui está outra pergunta sobre o recrutamento após a pergunta. Com que frequência os candidatos estão interessados no que terão de trabalhar? Qual é o tamanho da base de código? Em que pilha tecnológica é construída? Existe muito legado? Quando você foi ao Uber, estava interessado?
Maxim : Claro. Esta é uma pergunta para a maior parte: "E o que, de fato, terá que ser feito realmente pelas mãos?" Se eu o entendo agora, com o que trabalhar, quais ferramentas, quanto do que precisa ser suportado. Eu estava interessado Quando consegui um emprego na empresa, era apenas o momento da fase ativa da redação do nosso novo pedido de passageiro, lançado em novembro de 2016. Então eles me disseram em uma entrevista de texto aberto que existe um aplicativo antigo. Sim, é legado e pode não ser muito bem escrito. Mas eles também disseram que estão fazendo uma nova aplicação.
Os candidatos também entram em detalhes de tecnologia com bastante frequência. É verdade que isso geralmente é discutido na fase de uma conversa pessoal. Se esta entrevista for boa, damos um pouco de lição de casa. Somente nós, engenheiros móveis, fazemos isso. Nem o backend nem a ciência de dados fazem isso. Depois disso, temos uma rodada de entrevistas no local - já em andamento. Cinco a seis entrevistas em um dia. Quando um candidato chega ao escritório e fica lá de manhã à noite. As entrevistas, é claro, não acontecem seguidas, há intervalos para descanso e almoço. É hora de conhecermos o candidato e reconhecermos a empresa. Ele se comunica não apenas com os engenheiros que podem estar em sua equipe. Ele se comunica com gerentes, com engenheiros de outras equipes. Ele pode obter uma imagem mais completa do que as coisas interessantes de outras equipes fazem em geral, das quais ele também gosta.
Roman : Maxim, por favor, diga-nos o que foi mais emocionante para esta etapa da entrevista, para todas as etapas?
Maxim : Agora, minha impressão já está um pouco borrada, já faz alguns anos, afinal. Lembro que o momento mais emocionante para mim foi quando, duas horas antes de chegar à entrevista, derrubei um copo de café. Não me lembro do que aconteceu com as entrevistas. A ciência da computação ou a arquitetura me preocupavam lá. Mas lembro que todo o meu humor foi abalado por esse caso. Graças a Deus tudo correu bem. Parece-me que ninguém notou ou com tato ficou em silêncio.
Roman : Para continuar, você se lembra que isso ajudou você a passar por essa entrevista corretamente? Que conhecimento, quais são suas habilidades? O que permitiu que você passasse tão claramente quanto pensa?
Maxim : Aqui tenho uma opinião que não é totalmente confirmada por fatos. Como você disse, foi o que eu acho que me ajudou.
Primeiro, passei bastante tempo no
HackerRank , resolvendo várias tarefas em todas as estruturas de dados, algoritmos etc., apenas enchendo minha mão. Isso é bastante útil, porque, no entanto, uma ciência da computação "nua" não é muito comum no trabalho cotidiano e é bom se preparar para uma entrevista com algo separado.
Em segundo lugar, é a
capacidade de explicar os pensamentos . Resolver problemas da ciência da computação é uma entrevista em cinco ou seis que aparece diante do candidato. Outras entrevistas são, por exemplo, uma conversa sobre arquitetura, sobre como os sistemas são construídos, quais abordagens, padrões e práticas usar. Aqui, o grande papel é desempenhado não pela largura e profundidade do conhecimento, mas pelo fato de você poder transmitir esse conhecimento ao interlocutor.
Existem dois pontos principais:
- Experiência . Naquela época, eu trabalhava como líder de equipe há algum tempo e muitas vezes discutia com os membros da equipe sobre o que e como fazer.
- Idioma inglês Se você trabalha em uma empresa e uma equipe de língua russa, pode ser bastante difícil reajustar e explicar as coisas que você parece saber, mas acha difícil dizer isso em inglês para ser entendido imediatamente. Para mim, foi bastante estressante, embora eu conhecesse bem o idioma na época, mas falar na entrevista foi um grande desafio.
Uber Private Day
Ilya : Maxim, você trabalha na Uber há um tempo decente. Diga-nos como é o seu dia de trabalho normal. Por onde você começa e como termina o dia? O que há para o almoço?
Maxim : Meu dia começa um pouco às 10:00 da manhã. Não temos um dia útil fixo. Há algum tempo em que todos os comícios geralmente são realizados. Pode haver algumas diferenças dependendo do projeto. Mas, no geral, estou chegando a algum lugar nessa época. A primeira coisa que faço é conectar-se à nossa VPN de trabalho, porque temos todos os artefatos por trás da VPN e retiramos as alterações que foram feitas da noite para o dia.
Como temos vários escritórios em todo o mundo, muitas vezes acontece que você vem pela manhã e vê a história dos commits muito mais do que o que viu durante o dia, porque leva apenas um dia útil na América, em São Francisco, em Nova York, onde também temos grandes escritórios. Muitas vezes acontece que, se eu tivesse algumas ramificações não fechadas, lido com a resolução de mesclagem.
A seguir, o trabalho, dependendo do projeto em que estou atualmente. Não vou me aprofundar em como o trabalho da equipe do projeto é organizado. Este será um dos tópicos da minha
apresentação . Por via de regra, de manhã, temos algum apoio. Pode não ser todos os dias, por exemplo, todos os dias, dependendo da fase do projeto, por 10 a 15 minutos. Essa é uma pequena conspiração sobre o tópico de quem faz o quê, quem tem problemas, se encaixamos no cronograma que nós mesmos descrevemos. Se de repente algo precisar ser feito, decidimos quem o fará e quando verificaremos os resultados dessa ação.
Então chega a hora do almoço. Aconteceu que, na Holanda, é costume jantar bem cedo, e as pessoas costumam trabalhar mais cedo. Às 12:00, geralmente todos já saem para almoçar.
Depois disso, pessoalmente, tenho a
fase mais produtiva, 4-5 horas , quando estou envolvido nas tarefas atuais. Vou ao quadro, olha, quais são as tarefas, embora, normalmente, neste momento eu já saiba o que fazer. Eu faço um novo ramo. Neste tópico, faço algumas alterações no código, coleciono a compilação, vejo o que está quebrado e o que não está. Em seguida, submeto o commit para revisão. Ele está passando por uma revisão. Às vezes isso acontece agora. Às vezes, se você precisar de uma revisão de uma equipe de terceiros, ela poderá se arrastar por um dia, porque a outra equipe provavelmente está dormindo, pois está em um fuso horário diferente. Depois disso, se tudo estiver bem, o commit será devolvido ao mestre e todos ficarão felizes. Em seguida, prossigo para a próxima operação com um novo problema.
Romano : Certamente você faz algumas pausas entre as tarefas quando precisa pensar ou o pensamento não vai. Certamente, existem alguns períodos em que você não está sentado na frente do monitor. Como você passa esse tempo?
Maxim : Em primeiro lugar, temos mesas legais nas quais você não pode apenas sentar, mas também ficar de pé, às vezes até uma mudança tão pequena ajuda. Sinceramente, não gosto de nenhuma distração durante esse dia de trabalho concentrado. De manhã, tome um café, à noite, veja como alguém da FIFA joga no PlayStation, sim.
Mas enquanto os quebra-cabeças vão, você precisa descobrir. Posso derramar água, talvez ter algumas palavras com um colega e quase tudo. Mas esta é apenas a minha preferência pessoal. Não sei trabalhar de maneira a jogar tênis de mesa no meio do dia, por exemplo. Preciso de tempo para descansar, tempo para trabalhar e, novamente, tempo para descansar.
Romano : Entendo. Percebi que no começo você disse que estava se conectando via VPN. Ou seja, enquanto trabalha no escritório, você ainda usa uma VPN para obter acesso à rede em funcionamento, certo?
Máximo : Em parte, por meio da rede do escritório, estão disponíveis alguns recursos que não estão disponíveis em nenhuma rede externa de terceiros. Mas alguns recursos estão disponíveis apenas para VPN. Não sei exatamente quais foram os motivos de tal política de segurança. Por que foi aceito, francamente, eu não entendi. É conveniente porque eu posso fazer tudo o que faço no escritório a partir da mesma VPN de qualquer lugar do mundo.
Alexei : Olha, essa frase brilhou: "Eu estou indo para o quadro". Significou algum rastreador de tarefas? Se sim, qual você usa? Ou é um lugar físico real, onde esses lindos adesivos são colados, onde você precisa subir e executar sua próxima tarefa?
Maxim : Geralmente usamos o rastreador de tarefas.
Nós usamos o Phabricator. Existem equipes que amam quadros físicos, adesivos físicos, marcadores. Se você tiver que trabalhar nesse projeto, provavelmente o farei. Mas, em princípio, conosco, cada equipe é organizada à sua maneira. Às vezes, acontece que nosso conselho, se for um projeto muito pequeno, pode ser um sinal no Excel, para que as pessoas não se preocupem muito com todos os relatórios e outras coisas.
Eu disse no começo que a empresa ainda é uma pequena startup. Ainda somos flexíveis na metodologia de como fazemos nosso trabalho, dependendo do tipo de projeto em que estamos trabalhando atualmente, do que queremos dele.
Alexey : A questão é sobre o fluxo de trabalho. De alguma forma, você controla o tempo que passa sentado diretamente e escrevendo o código? Ou talvez você faça isso centralmente?
Máximo : não controlamos especificamente o tempo das tarefas. Nós olhamos para o progresso do projeto como ele vai. Já depende de quem está gerenciando este projeto. Quando eu ajo como líder de projeto, geralmente é mais conveniente analisar os resultados da semana. No início da semana, dizemos que queremos fazer na próxima sexta-feira, que queremos mostrar e demonstrar. Então olhamos, acabou ou não, analisamos o que deu errado, por que conseguimos. Se eles retrabalharam, no sentido de que faremos mais do que planejamos, também descobriremos o porquê. Não ouvi nenhuma das equipes sobre o rastreamento do tempo em horas de quanto o desenvolvedor é e o que ele fez especificamente em um determinado dia. Parece-me que ninguém está fazendo isso conosco.
As ferramentas
Roman : Esta não é a primeira vez que ouvi dizer que o Uber usa ferramentas do Facebook, seja Phabricator ou Buck. Qual o motivo disso?
Maxim : não posso dizer sobre política global. Eu nem tenho certeza se é assim que vamos usar as ferramentas do Facebook. Buck nos convém de acordo com certos critérios. Há um grande projeto, tempo de construção e tudo isso. Com o Phabricator, eu não sei. Isso aconteceu antes de eu ingressar na empresa. Sei que algumas equipes estão tentando criar uma pequena instância de Jira, mas isso ainda está no espírito do experimento. A equipe usa essas ferramentas de maneira diferente. Não temos nenhum tipo de política global que nos permita usar tudo o que o Facebook faz.
Caminho para e do trabalho
Alexei : Conte-me mais o que acontece quando seu dia de trabalho termina. A propósito, que horas? De alguma forma, está fixado no tempo?
Maxim : Geralmente deixo em algum lugar às 7 com alguma coisa. Esta é especificamente a minha agenda, acho que depois de um tempo poderá mudar para uma chegada e partida mais cedo. Muitas pessoas chegam às 8 e vão para as 5.
Alexei : Como você começa a trabalhar? Você anda de bicicleta como um verdadeiro holandês?
Maxim : Eu, como um verdadeiro holandês, ando de bicicleta para o metrô e depois ando de metrô para o trabalho. Agora, nosso escritório está localizado próximo a um centro de transporte muito grande e simplesmente não é necessária uma bicicleta. Antes disso, porém, percorria a maravilhosa floresta de Amsterdã de
bicicleta todos os dias por 12 km de ida . Foi incrível. Eu realmente sinto falta desse escritório por causa dessa estrada.
Ilya : Quanto tempo você começa a trabalhar?
Máximo : 30-40 minutos.
Sobre Amsterdã
Alexei : Durante todo o tempo em que você morou em Amsterdã, o que você mais gostou? Por que essa cidade é na sua opinião? Qual é a coisa mais legal?
Maxim :
A coisa mais legal de Amsterdã é a cidade vizinha de Haarlem , onde morei por um ano. Esta é uma pequena cidade completamente maravilhosa, que como Amsterdã, só existem muito poucos turistas. Ele é muito legal do ponto de vista cultural. Apesar de pequeno, existem cinemas, teatros, diversas atividades, alguém se apresenta todo fim de semana. Eu realmente gosto do estilo local e do ritmo de vida no sentido de como as pessoas se relacionam com seu trabalho, como se relacionam com sua família. O famoso
Life Work Balance . Não é muito costume "arar". A maioria das carreiras das pessoas não está em primeiro 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 , .
, , .
, , .