paint-brush
Mi viaje como desarrollador de Solidityby@alcueca
2,476
2,476

Mi viaje como desarrollador de Solidity

Comencé a codificar contratos inteligentes hace cinco años, a la edad de 38 años, y pasé de no tener experiencia en programación profesional a crear contratos inteligentes de vanguardia.
featured image - Mi viaje como desarrollador de Solidity
Alberto Cuesta Cañada  HackerNoon profile picture

Comencé a codificar contratos inteligentes hace cinco años, a la edad de 38 años, y pasé de no tener experiencia en programación profesional a crear contratos inteligentes de vanguardia.


Muchos han preguntado cómo podrían seguir un camino similar. Si bien no existe un recurso o secreto particular para el éxito, existe un patrón que también puedes utilizar.


Aquí está mi viaje.

El principio

En 2018, me mudé recientemente con mi esposa y mi hijo pequeño de Melbourne a Lisboa, para que todos pudiéramos estar más cerca de la familia. Tenía una carrera decente como ingeniero de supercomputación y arquitecto de soluciones para banca de inversión y pensé que Lisboa sería lo suficientemente grande como para encontrar un trabajo.


Pronto, descubrí que el mercado laboral en Lisboa no necesitaba ingenieros en supercomputación y que mi experiencia como arquitecto de soluciones solo me permitiría desempeñar aburridos puestos de mando intermedio.


Me había interesado la tecnología blockchain durante mucho tiempo, pero nunca me metí en ella. Luego leí un artículo sobre lo difícil que era contratar ingenieros de blockchain y vi una oportunidad.

Le escribí al autor para agradecerle por la inspiración para buscar trabajo en blockchain. Empezamos a hablar y, junto con un amigo suyo, decidimos iniciar TechHQ, una consultoría blockchain con elevados ideales. Dentro de nuestra consultoría de tres personas, yo sería el experto en tecnología.


Tuve aproximadamente un mes para pasar de ser un arquitecto de soluciones corporativo a crear proyectos basados en blockchain que pudiéramos vender a los clientes.


Sin experiencia previa, yo sería el experto en tecnología.


Una de mis tareas era escribir artículos técnicos sobre blockchain para atraer clientes, al igual que el artículo que me llevó a conocer a mis socios. Escribir estos artículos y hacer público lo que aprendí sería clave en mi carrera.


Mi primer artículo sería sobre empezando en ese trabajo y detalla mis primeros pasos en blockchain. Mi introducción a Solidity fue completar el Tutorial de CriptoZombies .


Nuestra primera oportunidad de negocio surgió unos meses después con un proyecto para CementoDAO . Habíamos incorporado a Bernardo, un hacker local joven y talentoso , quien en algún momento pidió ayuda con las matemáticas involucradas. No sabía mucho, pero podría intentar hacer Trabajo de fijación para construir una curva AMM personalizada usando logaritmos.

Esa tarea me llevó aproximadamente un mes, y Bernardo me enseñó solidez, javascript, git y trufa. Realmente no sabía nada. Los resultados no fueron tan estelares: fueron excesivamente diseñados e ineficientes incluso para los estándares de 2018. en mi ignorancia ,
Realmente creía que era de primer nivel .


Los resultados no fueron tan estelares: fueron excesivamente diseñados e ineficientes incluso para los estándares de 2018.


Habiendo adquirido algunas capacidades de codificación sólidas y con Bernardo solo capacitado en desarrollo frontend, me hice cargo de los contratos inteligentes de CementDAO. Desafortunadamente, debido en parte a la implementación ineficiente de Fixidity, nunca avanzamos a la etapa de la red principal.


Mientras buscábamos más clientes, seguí experimentando para poder escribir más artículos, porque así es como esperábamos conseguir clientes. Al final se me ocurrió una idea interesante para un solución de cadena de suministro . Aunque esta idea no tuvo éxito, me llevó a idear unacontrato de control de acceso basado en roles eso fue realmente decente.


Justo cuando la quiebra parecía inminente, este mismo código nos aseguró otro cliente: Bloque Alianza nos contrató para codificar una plataforma de emisión de blockchain con una serie de funciones autorizadas.


A pesar del terrible desempeño de los contratos inteligentes, solo necesitaban una prueba de concepto en Ganache, que entregamos. Aprendí lecciones importantes sobre la arquitectura de contratos inteligentes, almacenamiento en cadena e integración frontend.


A pesar del terrible desempeño… aprendí lecciones importantes


Nuevamente no teníamos ingresos y teníamos muy poco efectivo. Decidí renunciar a mi salario y comprar un tercio de la empresa para no quebrar. No pensé que tuviéramos muchas posibilidades de triunfar como empresa, pero no importaba, estaba codificando, estaba aprendiendo, me estaba divirtiendo. Parecía una oferta económica para obtener una excelente experiencia blockchain.


Mientras buscábamos más clientes. colaboré en contratos-hq20 con uivlis , desarrollando y documentando varios patrones de solidez y casos de uso. Por supuesto yo escribió muchos artículos a cerca de ellos .


El punto de inflexión

Al final, la empresa volvió a quedarse sin dinero y todos tuvimos que empezar a buscar trabajo. Entonces, me topé con untema abierto en OpenZeppelin . Necesitaban algo así como una lista enlazada, y lo hice primero para CementDAO, luego para los contratos hq20 e incluso escribió un buen artículo al respecto .


Después de conversaciones con Nventuro , mi aporte se integró como EnumerableSet.sol en uno de los lanzamientos de OpenZeppelin. Lo había logrado. Parte de mi código finalmente estuvo activo. Y nada menos que con OpenZeppelin.


Animado por este éxito, afronté el desafío de OpenZeppelin de renovar sus contratos de control de acceso. Hice un trabajo de vanguardia sobre el tema de la aplicación fallida de la cadena de suministro, lo perfeccioné con AllianceBlock y nuevamenteEscribí un artículo completo sobre el tema. .


Sabía que podía hacerlo. Esto finalmente llevó a la publicación de ControldeAcceso.sol en el lanzamiento 3.0 de contratos abiertos de zeppelin, lo que nuevamente fue un gran hito en mi carrera.


Lo había logrado. Parte de mi código finalmente estuvo activo. Y nada menos que con OpenZeppelin.


Todavía necesitaba un trabajo y me convertí en instructor de Blockchain para BeyondSkills. Tendría que crear cursos en línea para enseñar programación de solidez. Como siempre, no estaba realmente calificado para el trabajo. Sabía cómo codificar algunas cosas, pero tenía grandes lagunas en mis conocimientos. Hasta entonces ni siquiera había firmado un contrato.


Tuve que hablar en video y hacer tutoriales sobre desarrollo de solidez. También tuve que ser minucioso porque los cursos debían ser consistentes. El mismo patrón que con los artículos aplicados aquí; Fui aprendiendo cosas e inmediatamente enseñándolas, y eso me llevó a aprender mucho sobre el desarrollo de la solidez.


Desafortunadamente, la empresa cerró debido a impugnaciones legales y ese contenido nunca se hizo público. Quizás sea mejor así.


Fui aprendiendo cosas e inmediatamente enseñándolas y eso me llevó a aprender mucho sobre el desarrollo de la solidez.


Mientras grababa esos cursos, se me acercó Allan Niemerg para obtener ayuda con matemáticas de punto fijo para un documento técnico que tenía . A diferencia de otras muchas personas con una idea que me contactaron en ese momento, Allan tenía dinero de un fondo de capital riesgo del que nunca había oído hablar. Paradigma , y lo tomé en serio.

Para entonces, ya había codificado Fixidity, publicado varios artículos sobre matemáticas de punto fijo y traté de ayudar tanto a OpenZeppelin como al equipo central de Solidity, sin éxito. También sabía que los AMM con funciones logarítmicas no eran triviales y conocía a un tal Mikhail a quien podíamos contratar para que funcionaran.

Fui el primer empleado en @yield. Convencí a Allan para que contratara bruce desde mis tiempos en TechHQ como ingeniero frontend, y los tres, con la ayuda de un muy joven Georgios , lanzó con éxito Yield v1 en la red principal.


Aprendí mucho – sobre motores de deuda garantizada , integración de protocolos , errores de redondeo, permisos fuera de la cadena , préstamos flash , y eficiencia del gas , para nombrar unos pocos. Como la mayoría de mis intentos de hacer algo que nunca había hecho antes, no fue un gran éxito.


Una de las cosas que aprendimos es que, a diferencia de Uniswap, necesitaríamos realizar cambios en el protocolo para buscar la adecuación del producto al mercado. Como nuestros contratos eran en su mayoría inmutables, pronto comenzamos a trabajar en Yield v2.

Avance rápido hasta hoy

Yield Protocol v2 estuvo activo durante aproximadamente dos años y aprendí mucho de él, pero ahora está cerrando. Si bien nuestro trabajo técnico fue de primera categoría, las tasas fijas no se adaptan al mercado de productos en las finanzas descentralizadas a partir de ahora.


De nuevo en la naturaleza, estoy eligiendo el camino difícil nuevamente y en lugar de conseguir otro rol de ingeniero líder/CTO, me estoy estableciendo como asesor de otras empresas emergentes que podrían beneficiarse de las lecciones que aprendí. No existen manuales sobre cómo hacer esto y sé que las lagunas en mi conocimiento son enormes, pero también lo son las oportunidades de mejora.


A estas alturas deberías ver el patrón. Me quedo fuera de mi zona de confort, fallando a menudo, pero siempre enseñando a otros lo que aprendo. Este mismo artículo podría verse como un ejemplo.


Si tengo suerte, encontraré algo que alguien quiera, como CementDAO, AllianceBlock, contratos para OpenZeppelin, cursos BeyondSkills y, finalmente, Yield. Si no puedo encontrar a alguien que lo necesite, siempre hay algo que aprender y sobre lo que escribir, como todos mis artículos.


Me quedo fuera de mi zona de confort, fallando a menudo, pero siempre enseñando a otros lo que aprendo.


El ciclo de intentar, fallar, aprender y enseñar no es mi invención, pero funciona. A menudo me hace parecer un idiota, y tal vez eso sea lo más difícil para algunos. Yo mismo llevo mis fracasos con orgullo.


Gracias por leer. Espero que esto te dé algo de inspiración. Buena suerte.