paint-brush
Mon parcours en tant que développeur Soliditypar@alcueca
2,538 lectures
2,538 lectures

Mon parcours en tant que développeur Solidity

par Alberto Cuesta Cañada 7m2023/11/27
Read on Terminal Reader

Trop long; Pour lire

J'ai commencé à coder des contrats intelligents il y a cinq ans, à l'âge de 38 ans, et je suis passé d'une absence d'expérience professionnelle en programmation à la création de contrats intelligents de pointe.
featured image - Mon parcours en tant que développeur Solidity
Alberto Cuesta Cañada  HackerNoon profile picture

J'ai commencé à coder des contrats intelligents il y a cinq ans, à l'âge de 38 ans, et je suis passé d'une absence d'expérience professionnelle en programmation à la création de contrats intelligents de pointe.


Beaucoup ont demandé comment ils pourraient suivre un chemin similaire. Bien qu’il n’y ait pas de ressource particulière ni de secret pour réussir, il existe un modèle que vous pouvez également utiliser.


Voici mon parcours.

Le début

En 2018, j'avais récemment déménagé avec ma femme et mon jeune enfant de Melbourne à Lisbonne, afin que nous puissions tous nous rapprocher de notre famille. J'ai eu une carrière décente en tant qu'ingénieur en calcul intensif et architecte de solutions pour la banque d'investissement et je pensais que Lisbonne serait suffisamment grande pour que je trouve un emploi.


Bientôt, j'ai découvert que le marché du travail à Lisbonne n'avait absolument pas besoin d'ingénieurs en superinformatique et que ma formation d'architecte de solutions ne me permettrait que d'ennuyer des rôles de cadre intermédiaire.


Je m'intéresse à la technologie blockchain depuis longtemps, mais je ne m'y suis jamais vraiment lancé. Ensuite, j'ai lu un article sur la difficulté d'embaucher des ingénieurs blockchain et j'ai vu une opportunité.

J'ai écrit à l'auteur pour le remercier de m'avoir inspiré à chercher un emploi dans la blockchain. Nous avons discuté et, avec un de ses amis, nous avons décidé de créer TechHQ, un cabinet de conseil en blockchain avec de nobles idéaux. Au sein de notre cabinet de conseil composé de trois personnes, je serais l'expert technique.


J'ai eu environ un mois pour passer du statut d'architecte de solutions d'entreprise à la création de projets basés sur la blockchain que nous pourrions vendre aux clients.


Sans expérience préalable, je serais l'expert en technologie.


Une de mes missions était de rédiger des articles techniques blockchain pour attirer des clients, les mêmes que l'article qui m'avait amené à rencontrer mes partenaires. Écrire ces articles et rendre public ce que j'ai appris serait la clé de ma carrière.


Mon tout premier article porterait sur commencer à ce travail et détaille mes premiers pas dans la blockchain. Mon introduction à Solidity consistait à terminer le Tutoriel CryptoZombies .


Notre première opportunité commerciale s'est présentée quelques mois plus tard avec un projet de CimentDAO . Nous avions embarqué Bernardo, un jeune et talentueux hacker local , qui à un moment donné a demandé de l'aide pour les calculs impliqués. Je ne savais pas grand-chose, mais je pourrais essayer de faire Fixidity travaille pour créer une courbe AMM personnalisée à l'aide de logarithmes.

Cette tâche m'a pris environ un mois, Bernardo m'apprenant la solidité, le javascript, git et la truffe. Je ne savais vraiment rien. Les résultats ont été loin d’être stellaires : sur-conçus et inefficaces, même selon les normes de 2018. Dans mon ignorance ,
Je pensais sincèrement que c’était du premier niveau .


Les résultats ont été loin d’être stellaires : sur-conçus et inefficaces, même selon les normes de 2018.


Ayant acquis quelques capacités de codage solide et avec seulement Bernardo compétent en développement frontend, j'ai repris les contrats intelligents pour CementDAO. Malheureusement, en partie à cause de la mise en œuvre inefficace de Fixidity, nous n'avons jamais progressé jusqu'au stade du réseau principal.


Alors que nous recherchions plus de clients, j'ai continué à expérimenter afin de pouvoir écrire plus d'articles, car c'est ainsi que nous nous attendions à obtenir des clients. Finalement, j'ai eu une idée intéressante pour un solution de chaîne d'approvisionnement . Même si cette idée n'a pas abouti, elle m'a amené à proposer uncontrat de contrôle d'accès basé sur les rôles c'était en fait décent.


Juste au moment où la faillite semblait imminente, ce code nous a assuré un autre client : AllianceBloc nous a engagé pour coder une plateforme d'émission de blockchain avec un certain nombre de rôles autorisés.


Malgré des performances épouvantables sur les contrats intelligents, ils n'avaient besoin que d'une preuve de concept sur Ganache, que nous avons livrée. J'ai appris des leçons importantes sur l'architecture des contrats intelligents, stockage en chaîne et l'intégration front-end.


Malgré des performances épouvantables… j’ai appris des leçons importantes


Encore une fois, nous n’avions aucun revenu et nous étions très à court de liquidités. J'ai décidé de renoncer à mon salaire et d'acheter un tiers de l'entreprise pour éviter la faillite. Je ne pensais pas que nous avions de grandes chances de réussir en tant qu'entreprise, mais cela n'avait pas d'importance, je codais, j'apprenais, je m'amusais. Cela semblait être une bonne affaire pour vivre une excellente expérience blockchain.


Pendant que nous cherchions plus de clients. j'ai collaboré à hq20-contrats avec uivlis , développant et documentant divers modèles de solidité et cas d'utilisation. Bien sûr je a écrit beaucoup des articles à propos d'eux .


Le tournant

Finalement, l’entreprise a de nouveau manqué d’argent et nous avons tous dû commencer à chercher du travail. Ensuite, je suis tombé sur unproblème ouvert dans OpenZeppelin . Ils avaient besoin de quelque chose comme une liste chaînée, et je l'avais d'abord fait pour CementDAO, puis pour les contrats hq20, et même j'ai écrit un bel article à ce sujet .


Après des discussions avec Nventuro , ma contribution a été intégrée comme EnumerableSet.sol dans l'une des versions d'OpenZeppelin. Je l'avais fait. Une partie de mon code était enfin disponible. Et avec OpenZeppelin rien de moins.


Encouragé par ce succès, j'ai relevé le défi d'OpenZeppelin consistant à réorganiser ses contrats de contrôle d'accès. J'avais effectué un travail de pointe sur le thème de l'application de chaîne d'approvisionnement défaillante, je l'avais perfectionné avec AllianceBlock, et encore une foisécrit un article approfondi sur le sujet .


Je savais que je pouvais le faire. Cela a finalement conduit à la publication de AccessControl.sol dans le version 3.0 de contrats ouverts avec des zeppelins, ce qui, encore une fois, a été une étape importante dans ma carrière.


Je l'avais fait. Une partie de mon code était enfin disponible. Et avec OpenZeppelin rien de moins.


J'avais toujours besoin d'un travail et je suis devenu instructeur Blockchain pour BeyondSkills. Je devrais créer des cours en ligne pour enseigner la programmation solide. Comme d’habitude, je n’étais pas vraiment qualifié pour le poste. Je savais coder certaines choses, mais j'avais d'énormes lacunes dans mes connaissances. Jusque-là, je n'avais même pas déployé de contrat moi-même.


J'ai dû parler en vidéo et faire des tutoriels sur le développement de la solidité. Il fallait aussi que je sois minutieux car les cours devaient être cohérents. Le même schéma que pour les articles appliqués ici ; J'apprenais des choses et je les enseignais immédiatement, ce qui m'a amené à apprendre beaucoup sur le développement de la solidité.


Malheureusement, l’entreprise a fermé ses portes en raison de contestations judiciaires et ce contenu n’a jamais été rendu public. C'est peut-être mieux ainsi.


J'apprenais des choses et je les enseignais immédiatement et cela m'a amené à apprendre beaucoup sur le développement de la solidité.


Pendant l'enregistrement de ces cours, j'ai été approché par Allan Niemerg pour obtenir de l'aide en mathématiques à virgule fixe pour un livre blanc qu'il avait . Contrairement aux nombreuses autres personnes ayant une idée qui m'ont contacté à l'époque, Allan avait de l'argent provenant d'un fonds de capital-risque dont je n'avais jamais entendu parler. Paradigme , et je l'ai pris au sérieux.

À ce moment-là, j'avais codé Fixidity, publié plusieurs articles sur les mathématiques en virgule fixe et essayé d'aider à la fois OpenZeppelin et l'équipe principale de Solidity, sans succès. Je savais aussi que les AMM dotés de fonctions logarithmiques n'étaient pas anodins, et je connaissais un gars de Mikhail avec qui nous pourrions embaucher pour les faire fonctionner.

J'ai été la première recrue chez @yield. J'ai convaincu Allan d'embaucher Bruce de mes années TechHQ en tant qu'ingénieur frontend, et nous tous les trois, avec l'aide d'un très jeune Georges , lancé avec succès Yield v1 sur le réseau principal.


J'ai beaucoup appris - sur moteurs de dette garantie , intégration de protocole , erreurs d'arrondi, permis hors chaîne , prêts flash , et efficacité du gaz , pour n'en nommer que quelques-uns. Comme la plupart de mes tentatives pour faire quelque chose que je n’avais jamais fait auparavant, cela n’a pas été un grand succès.


L’une des choses que nous avons apprises est que, contrairement à Uniswap, nous devrons apporter des modifications au protocole pour rechercher l’adéquation produit-marché. Comme nos contrats étaient pour la plupart immuables, nous avons rapidement commencé à travailler sur Yield v2.

Avance rapide jusqu'à aujourd'hui

Yield Protocol v2 est en ligne depuis environ deux ans et j'en ai beaucoup appris, mais maintenant, il est en train de fermer. Bien que notre travail technique ait été de premier ordre, les taux fixes ne sont pas encore adaptés au marché des produits dans la finance décentralisée.


De nouveau dans la nature, je choisis à nouveau le chemin difficile et au lieu d'obtenir un autre rôle d'ingénieur principal/CTO, je me propose de conseiller d'autres startups qui pourraient bénéficier des leçons que j'ai apprises. Il n’existe pas de manuel expliquant comment procéder et je sais que les lacunes dans mes connaissances sont vastes, tout comme les possibilités d’amélioration.


À présent, vous devriez voir le modèle. Je reste juste en dehors de ma zone de confort, échouant souvent, mais enseignant toujours aux autres ce que j'apprends. Cet article même pourrait être considéré comme un exemple.


Si j'ai de la chance, je trouverai quelque chose que quelqu'un veut, comme CementDAO, AllianceBlock, des contrats pour OpenZeppelin, les cours BeyondSkills et enfin Yield. Si je ne trouve pas quelqu'un qui a un besoin, il y a toujours quelque chose à apprendre et à écrire, comme tous mes articles.


Je reste juste en dehors de ma zone de confort, échouant souvent, mais enseignant toujours aux autres ce que j'apprends.


La boucle essayer, échouer, apprendre et enseigner n’est pas mon invention, mais elle fonctionne. Cela me fait souvent passer pour un idiot, et c'est peut-être ce qui est le plus difficile pour certains. Moi-même, je porte mes échecs avec fierté.


Merci d'avoir lu. J'espère que cela vous donnera un peu d'inspiration. Bonne chance.