“Parece-me que estamos chegando ao momento em que todos serão capazes de codificar. Código é liberdade.

Habr, olá! Continuamos uma série de entrevistas com ex-alunos do Newprolab, nos quais eles falam sobre sua história de mudança para o campo de trabalho com big data. As histórias são todas diferentes e serão interessantes para quem está pensando em mudar de carreira ou em como o novo conhecimento pode ajudar a resolver os problemas atuais. Hoje provavelmente temos a segunda opção. Conheça - Dmitry Rodin, no meu coração, desenvolvedor, colaborador da plataforma analítica de código aberto Rockstat ; co-fundador, co-autor e professor de Deus Digital - programas educacionais para profissionais digitais; CEO Xeteq .

Conversamos com Dima sobre linguagens de programação e quais soluções ele escreve sobre elas, sobre seu projeto de código aberto e por que ele faz isso, sobre uma nova especialidade que eles ensinam etc.

imagem

- Dima, conte-nos um pouco sobre você.

- Meu ofício de caramelo imediatamente vem à minha mente, eu brinco por um longo tempo, mas sério, no meu coração eu sou um programador, bem ou um arquiteto, gosto de pensar e criar novas soluções, envolver outras pessoas neles. Nos últimos 10 anos, estive envolvido em tecnologias de marketing e fiquei tão empolgado com elas que isso se transformou em um hobby. Ele desenvolveu quase tudo: desde um sistema de gerenciamento de publicidade e DSP até antifraude com módulos de monitoramento de hardware. Acho que aprendi zen, mas isso não é exato.

- Você programa há mais de 15 anos, diga-me quantas linguagens de programação você conhece e usa em seu trabalho e em seus projetos pessoais?

- Eu acho que contar o número de idiomas está errado, a habilidade mais importante é entender vários conceitos de idiomas e, em seguida, não haverá praticamente nenhuma diferença no que escrever. Sim, é claro, cada idioma tem suas próprias vantagens e armadilhas, não se esqueça disso.

- E de quais idiomas você começou e o que está usando agora.

- Agora, para mim, não há muita diferença no que escrever. Comecei com o desenvolvimento de sites em PHP, há mais de 15 anos. É verdade que eu não o uso há muitos anos.

Depois do PHP, havia o Ruby, então era uma linguagem de hype, muitas conferências foram realizadas e sua estrutura - Ruby on Rails - tornou-se um modelo para muitas outras. Em geral, foi em Ruby que muitos conceitos nasceram, que mais tarde adotaram e degeneraram em outras linguagens de programação e em seus ecossistemas.

Então comecei a desenvolver ativamente em JavaScript (node.js). Os navegadores competiram em velocidade e segurança e, durante essa corrida, nasceu um poderoso mecanismo JavaScript V8, localizado dentro do navegador Chromium (nota: o navegador aberto no qual o Chrome se baseia). Alguns caras decidiram pegar esse mecanismo e prendê-lo ao libevent, o que resultou em uma coisa assíncrona e altamente produtiva que fez outras linguagens de programação de script do lado do servidor, embora com sintaxe e ecossistema nojentos da JavaScript. Foi nessa linguagem do servidor que eu a desenvolvi.

Quanto a mim, o JavaScript era a linguagem mais terrível, era quase impossível se sair bem, ou seja, escreva código compatível que seja conveniente para depurar, testar e desenvolver. Mas, nos últimos anos, o JS melhorou bastante: a própria linguagem evoluiu, muitas ferramentas de montagem apareceram e, o mais importante, complementos que permitem descrever tipos de dados, verificar a conformidade e encontrar possíveis erros que um desenvolvedor pode cometer, eliminando a maioria deles. Um desses complementos é o TypeScript, eu o uso em vez de JS puro há vários anos.

É claro que você não pode se afastar do Python, está tudo lá, funciona de forma conveniente e rápida o suficiente, você não precisa criar nada, pode fazer quase o que quiser. Está bem adaptado para trabalhar com dados: muitos pacotes matemáticos, ferramentas convenientes como o Jupyter, exigem pelo menos a ausência de restrições quanto ao tamanho do número nos cálculos matemáticos.

O meu favorito, que, no entanto, eu menos trabalho é o Elixir. É baseado em outra linguagem funcional, Erlang, criada pela Ericsson para programação de equipamentos de telecomunicações. Sua principal característica é o paralelismo e a tolerância a falhas. A propósito, ele apareceu há muito tempo, praticamente da minha idade. O Elixir é tão paralelo quanto tolerante a falhas. Erlang e Elixir têm recursos arquiteturais interessantes, por exemplo, um único servidor pode lidar com vários milhões de conexões simultâneas através do uso de sua própria implementação de processos leves e de mensagens através de conexões leves. É verdade que Erlang tem uma sintaxe extremamente inconveniente e inexpressiva.

Então, Elixir, de fato, é o mesmo Erlang com todo o seu poder, mas com uma sintaxe muito mais agradável e conveniente de Ruby. No Xeteq, criamos um MTA produtivo nele (nota: agente de transferência de email, ou seja, servidor de email). No entanto, ainda tenho medo de fazer projetos de grande escala no Elixir. Ao usá-lo, você deve escrever demais: o que implementou há muito tempo em outras linguagens como bibliotecas prontas, você deve fazer isso sozinho. Embora às vezes seja útil "reinventar a roda", você pode inventar algo novo e que vale a pena. E a comunidade é meio lenta. Todos os projetos têm uma comunidade muito pequena, por exemplo, a estrutura da Web básica de plug-in - possui menos de 2 mil estrelas, seu analógico é o python flask, que tem quase 40 mil, e o ruby ​​sinatra tem um pouco mais de 10 mil.

- Vamos falar sobre projetos. Conte-nos sobre seus projetos mais interessantes, significativos e importantes, e qual é o destino deles.

- Meu primeiro projeto sério foi "Blonde.ru". Em 2009, era um projeto muito ambicioso, cuja essência era que cada pessoa, sem conhecimento especial em publicidade contextual, possa lançar independentemente uma campanha publicitária, e ao mesmo tempo em todas as redes de publicidade e a partir de uma interface simples. Foi lá que eu cresci muito profissionalmente e conheci pessoas que influenciaram muito minha vida. Aconteceu que, depois de alguns meses, o presidente do diretor técnico ficou desocupado e, enquanto procuravam por ele, me indicaram o diretor interino. Algum tempo passou e a cadeira estava vazia. A chefe da empresa, Yura Eliseev, assumiu e me tornou uma diretora técnica de pleno direito, não sei pelo que ele era guiado, eu era muito verde para essa posição, embora talvez tenha visto algo em mim ( risos - comentário do autor ). Aliás, foi lá que nos encontramos com Alexander Shvets (com ele, fundamos o Deus Digital). Ele veio até nós na posição de programador, enquanto ainda era aluno de Baumanka e foi o melhor. Em geral, nos tornamos bons amigos. O projeto está vivo, foi renomeado e transformado várias vezes, entrou no mercado externo e agora é conhecido como Aori.

- E depois do Blonde.ru você começou a fazer seu primeiro projeto, certo?

- Sim, meu amigo e eu decidimos criar um widget de produto, na verdade, a rede de publicidade Yandex.Market. Para deixar mais claro: existe o Yandex.Direct e o YAN (Yandex Advertising Network) - sites diferentes onde estão localizados seus blocos, e eles alcançam uma pessoa através de uma pesquisa ou exibição temática. O Yandex.Market não possuía isso, mas havia uma API de conteúdo especial através da qual era possível receber ofertas quentes das lojas e um link para o envio de pessoas interessadas. E se uma compra foi feita, recebemos 50% do custo pago pelo anunciante. Rapidamente, vi o mecanismo - um widget que é colocado no site, que determina o tópico, analisa o interesse de uma pessoa, para fazer uma seleção automática de produtos do Market. Isso funcionou muito bem. Aprendemos como arbitrar bem (“arbitragem” - para comprar um espaço de anúncio e torná-lo lucrativo por outro canal), para identificar sites bons / ruins, e começamos a comprar ativamente espaço em muitos sites e colocar nosso widget lá. Entre os sites havia um automóvel grande. Como resultado, obtivemos um crescimento muito rápido, mas, por algum motivo desconhecido, a Yandex rescindiu unilateralmente o contrato conosco. Fizemos o possível para descobrir o motivo, mas não conseguimos, tivemos que fechar o projeto. Foi uma grande tristeza, porque muito esforço foi colocado nesse projeto e o desempenho foi muito bom. Agora, tenho certeza de que foi uma boa experiência que me ensinou a avaliar adequadamente os riscos. Em geral, a experiência é apenas positiva e, se algo não for bem-sucedido, apenas ajudará a evitar dificuldades ainda maiores no futuro.

imagem

- E, no entanto, ganhando todo tipo de experiência, você continuou a criar novos projetos. O que aconteceu depois?

- De alguma forma, decidi criar meu próprio contador para coletar dados sobre o comportamento das pessoas nos sites e calcular estatísticas com base nisso - como a forma como o Google Analytics e o Yandex.Metrica coletam seus dados. Um código é colocado no site, ele monitora todas as ações dos visitantes no site, envia para o servidor, o servidor recebe esses dados e os armazena em um banco de dados distribuído. Este projeto é chamado Rockstat. Mais tarde, pensei em fazer um serviço de análise de ponta a ponta com base nele, o que, a propósito, agora é uma dor para muitas empresas. Mas eu não teria força nem tempo para me desenvolver e nem sequer comecei. E é bom que eu não tenha, agora tenho uma opinião de que os serviços de análise de ponta a ponta fazem seu trabalho. Eles são adequados para aqueles que não entendem análise e marketing, que não entendem como tudo deve funcionar ou para quem tem poucas necessidades. Em outros casos, eles são limitados pela falta de integração ou incompatibilidade da lógica do trabalho. Mas achei um uso interessante para dados brutos coletados pelo contador.

- o que?

- Por exemplo, considere a atribuição multicanal com base no comportamento do visitante do site, e não no número da visita. A atribuição é uma maneira de distribuir o valor das vendas entre os canais de publicidade que participaram. O modelo de atribuição baseado na passagem probabilística do funil já se tornou popular, mas é adequado apenas para sites onde há um funil e um ciclo de vendas não muito longo - essa é a maioria das lojas on-line. Mas há outro lado: imóveis, carro, vestidos de noiva, onde o ciclo de decisão é muito mais longo e um funil adequado no site simplesmente está ausente. Para eles, criei um índice de atividade / comportamento de engajamento. Naquela época, meu contador já possuía vários usuários, o que me permitiu testar a hipótese, calcular a atribuição com base no envolvimento dos usuários na interação com o site. Eu peguei dois sites onde existe um funil e um ciclo de vendas não muito curto. Comparei os resultados do modelo com base na passagem probabilística do funil e o modelo com base no envolvimento, verificou-se que eles se correlacionam visivelmente. Afinal, vivemos em tal época: se o conteúdo da página não captar ou não dar esperança, será imediatamente fechado.

Eu pensei que isso poderia ser útil e em demanda. Passei por várias empresas, contei como elas podem melhorar a maneira de avaliar a eficácia dos canais de publicidade, mas acabou sendo muito difícil ... É difícil de entender e acrescenta dificuldades com justificativa de gastos. Em geral, existem muito poucas pessoas que querem fazer seu trabalho muito bem, que são motivadas pelo que fazem e que estão se esforçando para tomar novos patamares. Mais frequentemente, acontece que, quando encontram uma decisão difícil e incompreensível, preferem pontuar sobre ela, não complicam suas vidas. Ele falou na Data Science Week, Moscow Digital, com uma história sobre esse modelo. Havia muitos interessados, mas ninguém estava maduro.

E então houve outra virada, alguns caras vieram até mim para falar sobre análise (pensei que sim), mas acabou que eles me ofereceram um emprego e uma posição muito incomum para mim como diretor de marketing; e não em algum lugar lá fora, mas na filha promissora de Sberbank Plazius. Essa experiência merece uma história separada, então talvez eu a pule.

Enquanto ainda trabalhava em Plazius, comecei a ensinar. Eu e meu amigo, juntamente com a plataforma Tceh, lançamos o curso educacional em tempo integral "Especialista em publicidade programática". O curso ajudou as pessoas a aumentar sua competência no difícil campo da publicidade tecnológica ou até a adquirir uma nova profissão. E então acabei no Linkprofit, onde comecei a criar tecnologias de marketing focadas principalmente no mercado, e não no atendimento às necessidades da empresa. Então a empresa estava se reestruturando, sem perceber, fui nomeado chefe da nova empresa de TI Xeteq, incluída no grupo de empresas LT Digital.

- Espere, e o Rockstat? Ele abandonou, já que ninguém entendeu?

- Uma vez pensei: "Por que o Rockstat está saindo?" Talvez alguém se beneficie. Refez o serviço em uma caixa, adicionou ferramentas de dados e o colocou em código aberto chamado Alcolytics. E então começou ... Por volta do projeto, começou a reunir uma comunidade de caras muito profissionais, com quem eu já havia conhecido raramente. Eles começaram a apresentá-lo em casa. Fiquei tão impressionado! Além disso, eles abordaram com muita competência como usá-lo, eu nem pensava nisso. Decidi por mim mesmo que trabalharia apenas com entusiastas e profissionais, e deixaria o resto ir para a floresta, nem entraria em contato com aqueles que não sabem o que queriam, que precisavam "vender" a ideia e provar sua eficácia.

Comecei a gastar quase todo o meu tempo livre no desenvolvimento deste projeto, fiquei muito motivado pelo retorno visível. "Para quê, eu costumava comercializar tudo, se estou cansado do fato de que eles usam e as pessoas gostam", pensei. Em geral, no começo foi de alguma forma assustador, de repente um bug, mas eu nem consigo consertá-lo ou eles o instalam errado, estragam tudo e depois dizem que o software não funciona (* risos - comentário do autor *). Eu conhecia uma dúzia de servidores com Alcolytics, provavelmente havia mais, mas esse conhecimento era suficiente para alta motivação, eu estava constantemente desenvolvendo o projeto, e ele estava ficando cada vez melhor.

Um usuário do Alcolytics coletou dados de crm e chamadas, análise integrada. Esses dados foram necessários para criar uma atribuição inteligente entre sites. Isso tinha que ser feito lá fora, porque não havia como executar o código dentro. Decidi tornar possível a criação de pequenos scripts para o desenvolvimento de minhas APIs, o que nos permitirá levar esses dados para crm ou onde quer que sejam utilizados. Eu trabalhei muitas opções, mas em todo lugar havia algum tipo de falha. Decidi fazer um layout de serviço para o Docker, mas fiquei tão empolgado com esse processo que, dois meses depois, percebi que havia criado minha plataforma de microsserviço, mas queria fazer uma coisa simples para executar scripts. Fiquei muito cativado com o pensamento: "Por que preciso de análises se não há como automatizar a tomada de decisões?" Basta ver os números várias vezes e fica claro em que casos o que fazer. Isso permite que você faça um software comercial, geralmente com um preço decente ou complexo, do ponto de vista da implementação e suporte, de código aberto.

- Sim, decisões simples não são para você, se você faz alguma coisa, em grande parte.

- Imaginei quantas automações diferentes seriam possíveis de implementar. Eles executarão várias tarefas: gerenciar o orçamento e os lances de publicidade ou, se falarmos sobre publicidade em RTB, será possível mudar os usuários de um segmento para outro se eles mudarem o status no sistema. Você pode fazer o que quiser. No processo de trabalho nesta plataforma, inventei muitas "bicicletas", nunca havia inventado tanto antes. Ninguém vai me elogiar por isso, mas eu gosto deles e eles ficaram muito legais. Há outro argumento muito bom - tudo funciona no mesmo servidor por US $ 10, mantendo um site com 1 a 2 milhões de visitantes por mês, sem sobrecarregar. Estruturas desenvolvidas para 2 linguagens de programação que implementam toda a funcionalidade necessária, organizando a interação com outros microsserviços. A propósito, grandes empresas agora são criadas em torno de tecnologias de microsserviço.

Além disso, quando você cria uma solução de código aberto, não é uma pena tirar um pedaço de outro código aberto, por exemplo, clientes móveis, o que levaria muito tempo para ser implementado. No comércio, é claro, não é assim - são enormes riscos à reputação e, de fato, uma vergonha. Eu aprendi muito sobre código aberto legal quando comecei a trabalhar com ele.

Agora, este não é um projeto que resolve problemas específicos, é uma plataforma que ajuda a realizar seus desejos e, com facilidade, não se incomoda com coisas técnicas complexas e chatas.

Lançado recentemente em alfa, testando a 3ª versão , retornando o nome original Rockstat . A documentação ainda é pequena, existem muitos erros, mas os usuários estão satisfeitos. Entre elas, existem grandes empresas: uma companhia aérea e a próxima da fila é um anunciante dos 30 melhores da Rússia. Claro, existem mais usuários no total. Temos uma pequena comunidade no TG (@rockstats), os caras relatam problemas e realizações.

- Por que e por que você gasta tanto tempo e dinheiro pessoal em um projeto, que você publica em código aberto. O que te motiva?

- Parece-me que o projeto Rockstat pode mudar bastante o mundo digital. É claro que o padrão é adequado para pequenas empresas e os gigantes tomam decisões complicadas, mas existem empresas com especialistas talentosos e necessidades complexas em algum lugar no meio, existem cada vez mais. Eles criam soluções ousadas e eficazes com as próprias mãos. Não se sabe se o mercado os seguirá ou não, porque é conhecido pelo que a Rússia é famosa. Por algum tempo vou desenvolver o projeto aqui, mas só ele vai crescer um pouco, vou tentar declarar em outros mercados.

Foi um longo caminho, mas agora posso dizer honestamente: "Não sei por que preciso de dinheiro, onde colocá-lo". , - , , . open source , , : « - ?» , , , . , .

— ?

— , ( – . ). . , , email . – , – , . , : , , 00-, . , . – (Message Transfer Agent) – . . 2-3 MPV ( ). , . – . , , . – «» , . Elixir, , , , Elixir .

— , , , « » ? ?

— . Hadoop . , , , - ; , . , : Hadoop, , « », DMP, — . : ; . , , . , .

— Digital God — . ?

— , , : ( ), Ad-/Mar-Tech. , Facebook, . digital . : digital . , , .. , , : , , .

( ) , , – ( – . ). . , , . 2- , 3- . , . .

– , , , . , – . . , , . , , . , , .

Rockstat : , , . , , , , , . - ( Rockstat ). , , . , . - API, - , scraper- , API.

Rockstat Digital God – . – « » . - . «, » — , . - , . - , , . , , , . , , .

imagem
1 Digital God Digital Rockstar

— . , Digital God? ?

— , , , , , . , , .

digital , digital, , , , , .

— , ?

— - , , , . , , . , . - , , , , , .

— ., , . , , .

— , , ó , : , . , , . , ( , - DigitalGod) . , : « , . \, ». , , , . , , , .

, IT : - , , , , . , , , , , , . , , .

— , ? , / ?

— , , , , . , - , .

, , . , , . - , , , . , . , , , - , , , .

— , ? , .

— ( – . ). , , , . , . , , - .

— , ?

- Não tenho nenhuma visão interessante sobre esse assunto, para ser sincero. Eu percebo a vida como um jogo de computador - você apenas passa pelos níveis, escolhe entre diferentes ações que pode calcular e faz uma escolha. Meu código aberto provavelmente espremerá projetos comerciais fora do mercado, e os cursos de Deus Digital definirão um novo nível para os profissionais digitais. Portanto, é interessante o que tudo isso vai dar ou não dar certo. Joguei jogos de computador na minha infância, então cresci e percebi que a vida também é um jogo, mas muito mais emocionante, gráficos muito melhores e quantas linhas e níveis de desenvolvimento possíveis ...

Source: https://habr.com/ru/post/pt430364/


All Articles