“Me parece que nos estamos acercando al momento en que todos podrán codificar. El código es libertad ".

Habr, hola! Continuamos una serie de entrevistas con ex alumnos de Newprolab en las que hablan sobre su historia de mudarse al campo de trabajar con big data. Las historias son todas diferentes y serán interesantes para aquellos que están pensando en cambiar sus trayectorias profesionales o sobre cómo los nuevos conocimientos pueden ayudar a resolver los problemas actuales. Hoy lo más probable es que tengamos la segunda opción. Conoce - Dmitry Rodin, en mi corazón un desarrollador, colaborador de la plataforma analítica de código abierto Rockstat ; cofundador, coautor y profesor de Dios digital : programas educativos para profesionales digitales; CEO Xeteq .

Hablamos con Dima sobre los lenguajes de programación y qué soluciones escribe sobre ellos, sobre su proyecto de código abierto y por qué lo hace, sobre una nueva especialidad que enseñan, etc.

imagen

- Dima, cuéntanos un poco sobre ti.

- Mi artesanía de caramelo viene a mi mente de inmediato, bromeo al respecto durante mucho tiempo, pero en serio, en mi corazón soy programador o arquitecto, me gusta pensar y crear nuevas soluciones, involucrar a otras personas en ellos. Durante los últimos 10 años he estado involucrado en tecnologías de marketing, y me dejé llevar tanto que se convirtió en un pasatiempo. Desarrolló casi todo: desde un sistema de gestión de publicidad y DSP hasta antifraude con módulos de monitoreo de hardware. Creo que aprendí Zen, pero eso no es exacto.

- Has estado programando durante más de 15 años, dime cuántos lenguajes de programación conoces y utilizas en tu trabajo y tus proyectos personales.

- Creo que contar el número de idiomas es incorrecto, la habilidad más importante es comprender varios conceptos de idiomas, y luego prácticamente no habrá diferencia sobre qué escribir. Sí, por supuesto, cada idioma tiene sus propias ventajas y dificultades, no debe olvidarse de esto.

- Y desde qué idiomas comenzaste y qué estás usando ahora.

- Ahora para mí no hay mucha diferencia sobre qué escribir. Comencé a desarrollar sitios en PHP, fue hace más de 15 años. Es cierto que no lo he usado en muchos años.

Después de PHP existió Ruby, luego fue un lenguaje exagerado, se realizaron muchas conferencias y su marco, Ruby on Rails, se convirtió en un modelo para muchos otros. En general, fue en Ruby donde nacieron muchos conceptos, que luego adoptaron y degeneraron en otros lenguajes de programación y sus ecosistemas.

Luego comencé a desarrollar activamente en JavaScript (node.js). Los navegadores una vez compitieron en velocidad y seguridad, y durante esa carrera nació un motor V8 de JavaScript muy potente, ubicado dentro del navegador Chromium (nota: el navegador abierto en el que se basa Chrome). Algunos muchachos decidieron tomar este motor y fijarlo en forma liberadora, lo que resultó en una cosa asincrónica muy productiva que hizo otros lenguajes de programación de secuencias de comandos del lado del servidor, aunque con una desagradable sintaxis y ecosistema de JavaScript de la época. Fue en este lenguaje de servidor que lo desarrollé.

En cuanto a mí, JavaScript era el lenguaje más terrible, era casi imposible hacerlo bien, es decir. escriba código compatible que sea conveniente para depurar, probar y desarrollar. Pero en los últimos años, JS ha mejorado enormemente: el lenguaje en sí mismo ha evolucionado, han aparecido muchas herramientas de ensamblaje y, lo más importante, complementos que le permiten describir tipos de datos, verificar el cumplimiento y encontrar posibles errores que un desarrollador puede cometer, eliminando así la mayoría de ellos. Uno de estos complementos es TypeScript, lo he estado usando en lugar de JS puro durante varios años.

Por supuesto, no puedes alejarte de Python, todo está ahí, funciona de manera conveniente y rápida, no tienes que encontrar nada, puedes hacer casi lo que quieras. Está bien adaptado para trabajar con datos: muchos paquetes matemáticos, herramientas convenientes como Jupyter, toman al menos la ausencia de restricciones en el tamaño del número en los cálculos matemáticos.

Mi favorito, que, sin embargo, trabajo menos es Elixir. Se basa en otro lenguaje funcional, Erlang, creado por Ericsson para programar equipos de telecomunicaciones. Su característica principal es el paralelismo y la tolerancia a fallas. Por cierto, apareció hace mucho tiempo, prácticamente de mi edad. Elixir es igual de salvajemente paralelo y tolerante a fallas. Erlang y Elixir tienen características arquitectónicas interesantes, por ejemplo, un solo servidor puede manejar varios millones de conexiones simultáneas mediante el uso de su propia implementación de procesos livianos y mensajes a través de conexiones livianas. Es cierto que Erlang tiene una sintaxis extremadamente inconveniente e inexpresiva.

Entonces, Elixir, de hecho, es el mismo Erlang con todo su poder, pero con una sintaxis mucho más agradable y conveniente de Ruby. En Xeteq, creamos un MTA productivo (nota: agente de transferencia de correo, es decir, servidor de correo). Sin embargo, todavía tengo miedo de hacer proyectos a gran escala en Elixir. Al usarlo, debe escribir demasiado usted mismo: lo que ha implementado durante mucho tiempo en otros idiomas como bibliotecas listas para usar, debe hacerlo usted mismo. Aunque a veces es útil "reinventar la rueda", puede inventar algo nuevo y valioso. Y la comunidad es un poco lenta. Todos los proyectos tienen una comunidad muy pequeña, por ejemplo, tome el marco web básico de complementos: tiene menos de 2 mil estrellas, su análogo es matraz de pitón, que tiene casi 40 mil, y ruby ​​sinatra tiene un poco más de 10 mil.

- Hablemos de proyectos. Cuéntanos sobre tus proyectos más interesantes, significativos e importantes, y cuál es su destino.

- Mi primer proyecto serio fue "Blonde.ru". En 2009, fue un proyecto muy ambicioso, cuya esencia era que cada persona, sin un conocimiento especial en publicidad contextual, puede lanzar independientemente una campaña publicitaria, y al mismo tiempo en todas las redes publicitarias y desde una interfaz simple. Fue allí donde crecí muy profesionalmente y conocí a personas que influyeron mucho en mi vida. Dio la casualidad de que, después de unos meses, el presidente del director técnico quedó vacante y, mientras lo buscaban, me nombraron director en funciones. Pasó un tiempo y la silla estaba vacía. El jefe de la compañía, Yura Eliseev, me tomó y me convirtió en un director técnico de pleno derecho, no sé por qué fue guiado, estaba bastante verde para este puesto, aunque tal vez vi algo en mí ( risas - comentario del autor ). Por cierto, fue allí donde nos encontramos con Alexander Shvets (con él fundamos Digital God). Él vino a nosotros en la posición de programador, mientras todavía era un estudiante de Baumanka y estaba en esto el mejor. En general, nos hicimos muy buenos amigos. El proyecto está vivo, ha sido renombrado y transformado varias veces, ingresó a los mercados extranjeros, ahora se lo conoce como Aori.

- Y después de Blonde.ru comenzaste a hacer tu primer proyecto, ¿verdad?

- Sí, mi amigo y yo decidimos hacer un widget de producto, de hecho, la red de publicidad Yandex.Market. Para que quede más claro: existe Yandex.Direct y YAN (Yandex Advertising Network), diferentes sitios donde se encuentran sus bloques, y se ponen al día con una persona a través de una búsqueda o una exhibición temática. Yandex.Market no tenía esto, pero había una API de contenido especial a través de la cual era posible recibir ofertas populares de las tiendas y un enlace donde enviar a las personas interesadas. Y si se realizó una compra, el anunciante nos dio el 50% del costo pagado. Rápidamente vi el motor: un widget que se coloca en el sitio, determina el tema, analiza lo que le interesa a una persona y realiza una selección automática de productos del mercado. Esto funcionó muy bien. Aprendimos a arbitrar bien ("arbitraje": comprar un espacio publicitario y rentabilizarlo a través de otro canal), identificar sitios buenos / malos, y comenzamos a comprar activamente espacios publicitarios en muchos sitios y colocar nuestro widget allí. Entre los sitios había un automóvil grande. Como resultado, obtuvimos un crecimiento muy rápido, pero, por alguna razón desconocida, Yandex rompió unilateralmente el contrato con nosotros. Hicimos todo lo posible para averiguar la razón, pero no lo hicimos, tuvimos que cerrar el proyecto. Fue una gran tristeza, porque se puso mucho esfuerzo en este proyecto y el rendimiento fue muy bueno. Ahora estoy seguro de que fue una buena experiencia que me enseñó cómo evaluar adecuadamente los riesgos. En general, la experiencia solo es positiva, y si algo no tiene éxito, solo lo ayudará a evitar dificultades aún mayores en el futuro.

imagen

- Y, sin embargo, ganando todo tipo de experiencia, continuó con nuevos proyectos. ¿Qué pasó después?

- De alguna manera, me propuse crear mi propio contador para recopilar datos sobre el comportamiento de las personas en los sitios web y calcular estadísticas basadas en esto, como la forma en que Google Analytics y Yandex.Metrica recopilan sus datos. Se coloca un código en el sitio, monitorea todas las acciones de los visitantes en el sitio, lo envía al servidor, el lado del servidor recibe estos datos y los almacena en una base de datos distribuida. Este proyecto se llama Rockstat. Más tarde, pensé en hacer un servicio de análisis de extremo a extremo basado en él, que, por cierto, ahora es un dolor para muchas empresas. Pero no tendría ni la fuerza ni el tiempo para desarrollarme, y ni siquiera comencé. Y es bueno que no lo haya hecho, ahora tengo la opinión de que los servicios de análisis de extremo a extremo hacen su trabajo. Son adecuados para aquellos que no entienden la analítica y el marketing, que no entienden cómo debería funcionar todo o para quienes tienen pocas necesidades. En otros casos, están limitados por la falta de integración o incompatibilidad de la lógica del trabajo. Pero encontré un uso interesante para los datos sin procesar recopilados por el contador.

- que?

- Por ejemplo, considere la atribución multicanal basada en el comportamiento del visitante del sitio y no en el número de visita. La atribución es una forma de distribuir el valor de las ventas entre los canales publicitarios que participaron en ella. El modelo de atribución basado en el paso probabilístico del embudo ya se ha hecho popular, pero solo es adecuado para sitios donde hay un embudo y un ciclo de ventas no demasiado largo: esta es la mayoría de las tiendas en línea. Pero hay otro lado: bienes raíces, un automóvil, vestidos de novia, donde el ciclo de decisión es mucho más largo y simplemente no existe un embudo adecuado en el sitio. Para ellos, se me ocurrió un índice de actividad / comportamiento de compromiso. En ese momento, mi contador ya tenía varios usuarios, esto me permitió probar la hipótesis, calcular la atribución en función de la participación de los usuarios en la interacción con el sitio. Tomé dos sitios donde hay un embudo y un ciclo de ventas no demasiado corto. Comparé los resultados del modelo basado en el paso probabilístico del embudo y el modelo basado en la participación, resultó que se correlacionan notablemente. Después de todo, vivimos en ese momento: si el contenido de la página no capta o no da esperanza, entonces se cerrará de inmediato.

Pensé que esto podría ser útil y muy solicitado. Revisé varias compañías, les dije cómo pueden mejorar la forma de evaluar la efectividad de los canales publicitarios, pero resultó ser demasiado difícil ... Es difícil de entender y agrega dificultades para justificar los gastos. En general, hay muy pocas personas que quieren hacer su trabajo realmente bien, que se sienten motivados por lo que hacen y que se esfuerzan por alcanzar nuevas alturas. Más a menudo, resulta que cuando se encuentran con una decisión difícil e incomprensible, prefieren anotar en ella, no complicarán sus vidas. Él habló en Data Science Week, Moscow Digital con una historia sobre este modelo. Había muchos interesados, pero nadie estaba maduro.

Y luego hubo otro giro, algunos chicos vinieron a mí para hablar sobre análisis (pensé que sí), pero resultó que vinieron a ofrecerme un trabajo y a un puesto muy inusual para mí como director de marketing; y no en algún lugar, sino en la prometedora hija de Sberbank Plazius. Esta experiencia merece una historia separada, por lo que tal vez la omita.

Mientras todavía trabajaba en Plazius, comencé a enseñar. Mi amigo y yo, junto con la plataforma Tceh, lanzamos el curso educativo a tiempo completo "Especialista en publicidad programática". El curso ayudó a las personas a aumentar su competencia en el difícil campo de la publicidad tecnológica o incluso a adquirir una nueva profesión. Y luego terminé en Linkprofit, donde comencé a crear tecnologías de marketing que se enfocaban principalmente en el mercado y no en satisfacer las necesidades de la empresa. Luego, la compañía se estaba reestructurando, sin darme cuenta, fui nombrado jefe de la nueva compañía de TI Xeteq, que estaba incluida en el grupo de compañías LT Digital.

- Espera, ¿qué hay de Rockstat? ¿Lo abandonó, ya que nadie lo entendió?

- Una vez pensé: "¿Por qué sale Rockstat?" Quizás alguien se beneficie. Rehizo el servicio en una caja, agregó herramientas de datos y lo puso en código abierto llamado Alcolytics. Y luego comenzó ... Alrededor del proyecto comenzó a reunir una comunidad de muchachos muy profesionales, a quienes había conocido muy raramente antes. Comenzaron a presentarlo en casa. ¡Estaba tan asombrado! Además, se acercaron de manera muy competente a cómo usarlo, ni siquiera tenía tales pensamientos. Luego decidí por mí mismo que trabajaría solo con personas entusiastas y profesionales, y dejaría que el resto se fuera al bosque, ni siquiera me pondría en contacto con aquellos que no saben lo que querían, que necesitaban "vender" la idea y luego demostrar su efectividad.

Comencé a pasar casi todo mi tiempo libre en el desarrollo de este proyecto, estaba muy motivado por el retorno visible. "Para qué, solía querer comercializar todo si estoy harto del hecho de que lo usan, y a la gente le gusta", pensé. En general, al principio era de alguna manera aterrador, de repente un error, pero ni siquiera puedo solucionarlo o lo instalarán mal, estropearán todo y luego dirán que el software no funciona (* risas - comentario del autor *). Conocía una docena de servidores con Alcolytics, probablemente había más, pero este conocimiento era suficiente para una alta motivación, estaba desarrollando constantemente el proyecto y cada vez era mejor.

Un usuario de Alcolytics recopiló datos de crm y llamadas, análisis integrados. Estos datos fueron necesarios para construir una atribución inteligente entre sitios. Esto tenía que hacerse afuera, porque no había forma de ejecutar el código adentro. Luego decidí hacer posible crear pequeños scripts para el desarrollo de mis API, lo que nos permitirá llevar estos datos a CRM o donde sea que los usemos. Trabajé muchas opciones, pero en todas partes había algún tipo de falla. Decidí hacer un diseño de servicio para Docker, pero este proceso me dejó tan impresionado que dos meses después me di cuenta de que había creado mi plataforma de microservicio, pero quería hacer algo simple para ejecutar scripts. Me cautivó mucho la idea: "¿Por qué necesito análisis si no hay forma de automatizar la toma de decisiones?" Es suficiente mirar los números varias veces, y está claro en qué caso qué hacer. Esto le permite hacer software comercial, generalmente con un precio decente, o complejo, desde el punto de vista de implementación y soporte, de código abierto.

- Sí, las decisiones simples no son para ti, si haces algo, entonces a lo grande.

- Me imaginé cuántas automatizaciones diferentes sería posible implementar. Realizarán diversas tareas: gestionar el presupuesto publicitario y las ofertas o, si hablamos de publicidad RTB, será posible desplazar a los usuarios de un segmento a otro si cambian el estado del sistema. Puedes hacer lo que quieras. En el proceso de trabajar en esta plataforma, inventé muchas "bicicletas", nunca antes había inventado tanto. Nadie me elogiará por esto, pero me gustan y resultaron ser geniales. Hay otro argumento muy bueno: todo funciona en el mismo servidor por $ 10, manteniendo un sitio con 1-2 millones de visitantes por mes, sin forzar en absoluto. Desarrollé marcos para 2 lenguajes de programación que implementan toda la funcionalidad necesaria, organizando la interacción con otros microservicios. Por cierto, las grandes empresas ahora se basan en tecnologías de microservicios.

Y también, cuando crea una solución de código abierto, no es una pena tomar una pieza de otro código abierto, por ejemplo, clientes móviles, lo que llevaría mucho tiempo implementarlo. En el comercio, por supuesto, esto no es así: estos son enormes riesgos de reputación y, de hecho, una pena. Aprendí mucho sobre el código abierto cuando comencé a trabajar con él.

Ahora, este no es un proyecto que resuelva problemas específicos, es una plataforma que ayuda a realizar sus deseos y, para hacerlo fácilmente, no se moleste con cosas tecnológicas complejas y aburridas.

Recientemente lanzado en alpha probando la tercera versión , devolviendo el nombre original Rockstat . La documentación aún es pequeña, hay muchos errores, pero los usuarios están satisfechos. Entre ellos hay grandes empresas: una aerolínea, y la siguiente en la línea es un anunciante del top 30 de Rusia. Por supuesto, hay más usuarios en total. Tenemos una pequeña comunidad en TG (@rockstats), los chicos informarán sobre problemas y logros.

- Por qué y por qué gastas tanto tiempo y dinero personal en un proyecto, que luego publicas en código abierto. ¿Qué te motiva?

- Me parece que el proyecto Rockstat puede cambiar enormemente el ámbito digital. Está claro que el estándar es adecuado para pequeñas empresas, y los gigantes toman decisiones complicadas, pero hay empresas con especialistas talentosos y necesidades complejas en algún punto intermedio, cada vez hay más. Crean soluciones audaces y efectivas con sus propias manos. No se sabe si el mercado los seguirá o no, porque se sabe por qué Rusia es famosa. Durante algún tiempo desarrollaré el proyecto aquí, pero solo él crecerá un poco, intentaré declararlo en otros mercados.

Fue un largo camino, pero ahora puedo decir honestamente: "No sé por qué necesito dinero, dónde ponerlo". , - , , . 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 – . – « » . - . «, » — , . - , . - , , . , , , . , , .

imagen
1 Digital God Digital Rockstar

— . , Digital God? ?

— , , , , , . , , .

digital , digital, , , , , .

— , ?

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

— ., , . , , .

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

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

— , ? , / ?

— , , , , . , - , .

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

— , ? , .

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

— , ?

— - , . — , , , . open source, , , Digital God digital . , . , , – , , , …

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


All Articles