Roman Semko es Senior developer en Python, Javascript y Blockchain con una experiencia extensiva en otras tecnologías como Angular, React y machine learning, con las que ha estado trabajando desde el 2002. Semko es, sin dudas, uno de los desarrolladores más activos en la comunidad alrededor de IOTA y es responsable de herramientas tales como Romeo, Nelson, Carriota Fields y Hercules que tienden a facilitar la ejecución e intereacción con Full Nodes.
De parte del equipo de IOTA Hispano queremos agradecer el tiempo que le ha dedicado a concedernos esta entrevista así como sus esfuerzos desarrollando soluciones para mejorar la experiencia de usuario en un proyecto que necesita mucho de ello.
Daniel De Michele (Carpincho Dem)
Director de contenidos, IOTA Hispano
IOTA Evangelist Network member
Roman, ¿cómo te presentarías en pocas palabras?
Bueno, soy español con raíces ucranianas. Crecí en un entorno multinacional en el sur de España. Estudié economía, finanzas e informática en Madrid y Darmstadt (Alemania). He trabajado como asesor financiero durante algunos años antes de pasar a una carrera de IT a tiempo completo. Junto con mi hermano y su esposa creamos una pequeña empresa familiar que desarrolla soluciones B2B desde hace casi 10 años. Trabajamos principalmente detrás de escena con una organización meticulosa. Nuestra presencia pública en la comunidad de IOTA es una excepción a esa regla.
Cuéntanos un poco acerca de cuándo y cómo comenzaste a involucrarte en el mundo crypto y las DLT.
Mi padre solía decir que los flujos financieros son la sangre de la economía. Es un mundo fascinante para mí. Tan fascinante como el tecnológico. ¡De la combinación de estos mundos surge algo que ha despertado mi interés y me mantiene fascinado! He seguido el mundo crypto durante muchos, muchos años. Sin embargo, la tecnología Blockchain nunca fue viable para un uso global en mi opinión. Así que mi participación se limitó principalmente a ver cómo se desarrollaba en la línea lateral.
¿Cómo describirías tu acercamiento a IOTA? ¿Cuándo oíste del proyecto por primera vez y en qué momento decidiste que valía la pena comenzar a desarrollar soluciones sobre la Tangle?
Me encontré con IOTA por primera vez hace aproximadamente dos años. Sin embargo, no me involucré financieramente sino hasta el año pasado. Comencé a escribir en Medium sobre cryptos con enfoque en IOTA. Ese también fue el momento en que comenzamos a generar ideas como compañía (Semkodev) para proyectos en IOTA. Anteriormente, habíamos trabajado en una solución para administrar flotas y entendíamos la importancia de controlar infraestructuras grandes de manera eficiente. Si IOTA se adopta a nivel global, el mundo necesitará algo así como un sistema «telemático» para los flujos financieros e informativos enredados. Así nació CarrIOTA.
Por entonces IOTA no estaba lo suficientemente maduro como para hacerlo funcionar. Cosas como el autodescubrimiento P2P no existían, pero eran extremadamente importantes para nuestro proyecto. El paso más lógico fue ayudarnos a nosotros mismos ayudando a la comunidad. Comenzamos a abrir todos y cada uno de los aspectos de CarrIOTA como bibliotecas y utilidades separadas que la comunidad podría probar y usar.
Este trabajo comunitario se convirtió rápidamente en más importante que el producto final. Es muy gratificante ver a IOTA evolucionar y ser capaz de contribuir a su éxito.
¿Considerarías unirte a la Fundación IOTA o prefieres continuar creando herramientas como un desarrollador de la comunidad?
Trabajar como empleado para una entidad rígida definitivamente nos ralentizaría. Somos rápidos, porque nuestro equipo tiene historia. Trabajamos durante una década en la constelación actual optimizandonos paralograr un alto nivel de eficiencia. Sabemos cómo reaccionar rápidamente ante las cambiantes condiciones ambientales. Nosotros
prototipamos productos en velocidades récord. Un equipo pequeño y establecido siempre tendrá una ventaja sobre una empresa más grande que todavía no se ha encontrado a sí misma.
Supongo que todo depende de las condiciones. El apoyo financiero siempre es bienvenido, en la medida en que no obstaculice nuestra velocidad, creatividad y libertad para tomar decisiones.
De lo contrario, continuaremos desarrollando como renegados. Como me gusta decir: puedes trabajar en la base (de la tecnología), sin estar en la Fundación. Trabajar para IF no debe ser el «santo grial» para un desarrollador en la comunidad de IOTA. Una base comunitaria fuerte es igual de importante.
¿Qué relación tienes con la IF y el equipo de core developers? ¿Interactúan en el proceso de desarrollo de nuevas herramientas?
Conocí a Dom en un meetup en Berlín. También tuvimos contactos esporádicos con diferentes miembros de IF. Veo más interés en nuestro trabajo desde el lado de la Fundación. Esto es muy halagador. Dicho esto, nuestras decisiones y desarrollos son independientes de la Fundación.
Creo que, a medida que la tecnología crezca, en algún momento será muy importante que los principales actores se alíneen sobre el futuro del protocolo. Algo así como The World Wide Web Consortium.
Sabemos que eres un desarrollador Senior en Python/Django. ¿Por qué utilizaste la librería Javascript en lugar de optar por PyOTA?
¡También soy un Senior Javascript developer! Nuestra idea detrás de CarrIOTA fue escribir todo el código de la aplicación usando un solo lenguaje. Este enfoque cambió luego con la introducción de Hercules.
A pesar de que no sólo te dedicas al desarrollo de proyectos para IOTAQ has desarrollado una cantidad considerable de herramientas que apuntan a mejorar la experiencia con el IRI/Wallet ¡¿De dónde sacas tiempo para hacer todo esto?!
Me gusta decir: «la motivación mueve montañas». Sin embargo, ni yo ni mi equipo somos superhumanos. Hemos trabajado bastantes horas más allá de nuestros proyectos habituales en los últimos meses, esa es la verdad. Pero el secreto es realmente conocer a tu equipo, tus puntos fuertes y, lo más importante, saber organizarte. Para la vida privada o para un solo hombre, recomiendo “solo scrumming”. ¡Hace maravillas!
Crees que el recientemente lanzado fondo para el Ecosistema de IOTA es una herramienta diseñada correctamente para incrementar la participación de la comunidad? ¿Sugerirías alguna mejora a partir de tu breve experiencia?
La constitución de una Fundación en Alemania es un movimiento inteligente de prestigio. Sin embargo, es una pesadilla burocrática y muy limitada en sus acciones. Si fuera por mí, habría dividido las entidades para tener el «brazo derecho» de una Fundación que responda y administre el Fondo más rápidamente. Tampoco tenía que estar en Alemania.
El apoyo financiero definitivamente ayudará a proyectos jóvenes al tiempo en que atraerá a más desarrolladores. Lo único que espero es que no se convierta en una carga burocrática para los propietarios de proyectos.
¿Las herramientas que desarrollas para ayudar en el área de Full Nodes son auditadas de algún modo para garantizar de que hacen lo que se supone que hacen de modo seguro?
Nuestras herramientas son prototipos que mejoran algunos aspectos, nada más. Algunas cosas se construyeron sobre proyectos y herramientas similares que fueron probados y auditados a fondo. Tomemos a Nelson, por ejemplo: sus orígenes son de un área completamente diferente (desafortunadamente, no puedo ser más específico aquí). Y ha probado su eficiencia y confiabilidad. (¡Es fascinante cómo las ideas de un reino completamente diferente pueden encontrar un nuevo hogar en los lugares más inesperados!)
Sin embargo, todas nuestras herramientas están lejos de estar listas para producción. ¡Todavía necesitan mucho más amor y dedicación!
IOTA es tecnología «cutting edge» y eso implica que la mayoría del tiempo debemos lidiar con falta de documentación. ¿De qué modo has encarado este problema en tu experiencia desarrollando herramientas? ¿Qué consejos le darías a otros devs comenzando a transitar este camino?
Aprendan los conceptos básicos: Java, JavaScript, etcétera. Hagan preguntas. Intenten crear un proyecto de muestra y verán cómo aparecen más preguntas. Google es tu amigo. Echa un vistazo y comienza a leer el código. Intenta dibujar y visualizar diferentes componentes y cómo interactúan. Lo más importante, ¡diviértete con lo que estás haciendo!
Carriota Field tiene 1368 nodos al tiempo en que realizo esta pregunta. ¿Tiene este esquema un SPF en la instancia de Load Balancing?
CarrIOTA Field es un prototipo y una demostración de un Load Balancer efectivo para los nodos IOTA. Está lejos de estar listo. Tuvimos que reducirlo un poco en las últimas semanas debido a los altos costos.
Sin embargo, el stacki que tengo en mente lo hará completamente resistente a la mayoría de los ataques. Para esto necesitamos recursos, obviamente, que no tenemos en este momento. Mientras escribo esto, ¡Field genera 9 terabytes de tráfico al día!
Gracias a las generosas donaciones, podemos seguir utilizándolo durante al menos los próximos 3 meses. Mi esperanza es finalmente lanzar la versión de código abierto y descentralizar el Field hasta entonces.
También hay un proyecto prototipo sobre la mesa para crear una segunda capa de red sobre IOTA, una red de Fields que pueden autodescubrirse entre sí, distribuir el trabajo entre ellos y permitir que sus usuarios sean completamente indiferentes respecto de los nodos o Fields a que se conectan.
¿Podría contarnos brevemente cómo funciona el Load Balancing en Carriota Fields?
Toma una solicitud del usuario y la reenvía a varios nodos de Field activos y conectados. Cuando esos nodos responden, la respuesta se verifica por su validez y se devuelve al usuario. Además de los controles de validez y algunas otras cosas, no es tan diferente de un Load Balancer habitual.
A partir de lo que sabemos ¿de qué modo imaginas que Qubic transformará el escenario crypto?
Solo puedo especular sobre cómo sería el Qubic final y de lo que sería capaz. Si mis suposiciones son correctas, dará lugar a una explosión crypto-cámbrico liderada por IOTA. Ya estamos estudiando un caso de uso alucinante, que guardaré para mí mismo para no estropear la sorpresa. 🙂 ¡Usen su imaginación!