paint-brush
Meine Reise als Solidity-Entwicklervon@alcueca
2,579 Lesungen
2,579 Lesungen

Meine Reise als Solidity-Entwickler

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

Zu lang; Lesen

Ich begann vor fünf Jahren, im reifen Alter von 38 Jahren, mit der Programmierung intelligenter Verträge und entwickelte den Schritt von keiner professionellen Programmiererfahrung zum Aufbau hochmoderner intelligenter Verträge.
featured image - Meine Reise als Solidity-Entwickler
Alberto Cuesta Cañada  HackerNoon profile picture

Ich begann vor fünf Jahren, im reifen Alter von 38 Jahren, mit der Programmierung intelligenter Verträge und entwickelte den Schritt von keiner professionellen Programmiererfahrung zum Aufbau hochmoderner intelligenter Verträge.


Viele haben gefragt, wie sie einen ähnlichen Weg einschlagen könnten. Es gibt zwar keine bestimmte Ressource oder ein bestimmtes Erfolgsgeheimnis, aber es gibt ein Muster, das Sie ebenfalls verwenden können.


Hier ist meine Reise.

Der Anfang

Im Jahr 2018 war ich kürzlich mit meiner Frau und meinem kleinen Kind von Melbourne nach Lissabon gezogen, damit wir alle näher bei der Familie sein konnten. Ich hatte eine gute Karriere als Supercomputer-Ingenieur und Lösungsarchitekt für das Investmentbanking und dachte, dass Lissabon groß genug wäre, um einen Job zu finden.


Bald stellte ich fest, dass der Arbeitsmarkt in Lissabon überhaupt keinen Bedarf an Supercomputing-Ingenieuren hatte und dass mein Hintergrund als Lösungsarchitekt mir nur langweilige Positionen im mittleren Management bescheren würde.


Ich interessiere mich schon seit langem für die Blockchain-Technologie, habe mich aber nie wirklich damit beschäftigt. Dann las ich einen Artikel darüber, wie schwierig es war, Blockchain-Ingenieure einzustellen, und sah eine Chance.

Ich habe dem Autor geschrieben, um ihm für die Inspiration zu danken, einen Job im Blockchain-Bereich zu suchen. Wir kamen ins Gespräch und beschlossen zusammen mit einem Freund, TechHQ zu gründen, ein Blockchain-Beratungsunternehmen mit hohen Idealen. Innerhalb unserer dreiköpfigen Beratung wäre ich der Tech-Experte.


Ich hatte ungefähr einen Monat Zeit, um von der Tätigkeit eines Unternehmenslösungsarchitekten zur Erstellung von Blockchain-basierten Projekten überzugehen, die wir an Kunden verkaufen konnten.


Ohne Vorkenntnisse wäre ich der Technikexperte.


Eine meiner Aufgaben bestand darin, technische Artikel zum Thema Blockchain zu schreiben, um Kunden zu gewinnen, genau wie der Artikel, der mich dazu gebracht hatte, meine Partner kennenzulernen. Das Schreiben dieser Artikel und die Öffentlichkeitsarbeit über das, was ich gelernt habe, wäre der Schlüssel zu meiner Karriere.


Mein allererster Artikel würde davon handeln den Einstieg in diesen Job und beschreibt meine ersten Schritte in der Blockchain. Meine Einführung in Solidity war der Abschluss des CryptoZombies-Tutorial .


Unsere erste Geschäftsmöglichkeit ergab sich einige Monate später mit einem Projekt für ZementDAO . Wir hatten Bernardo an Bord, ein junger und talentierter lokaler Hacker , der irgendwann um Hilfe bei der Mathematik bat. Ich wusste nicht viel, aber ich konnte es versuchen Fixidity arbeitet daran, mithilfe von Logarithmen eine benutzerdefinierte AMM-Kurve zu erstellen.

Diese Aufgabe hat mich etwa einen Monat gekostet, wobei Bernardo mir Solidität, Javascript, Git und Trüffel beigebracht hat. Ich wusste eigentlich nichts. Die Ergebnisse waren alles andere als herausragend – selbst für 2018-Verhältnisse überentwickelt und ineffizient. In meiner Unwissenheit ,
Ich war wirklich davon überzeugt, dass es erstklassig war .


Die Ergebnisse waren alles andere als herausragend – selbst für 2018-Verhältnisse überentwickelt und ineffizient


Nachdem ich einige solide Programmierfähigkeiten erworben hatte und nur Bernardo über Kenntnisse in der Frontend-Entwicklung verfügte, übernahm ich die Smart Contracts für CementDAO. Leider sind wir, teilweise aufgrund der ineffizienten Implementierung von Fixidity, nie in die Mainnet-Phase gelangt.


Während wir nach mehr Kunden suchten, experimentierte ich weiter, damit ich mehr Artikel schreiben konnte, denn so erwarteten wir, Kunden zu gewinnen. Irgendwann kam mir eine interessante Idee für ein Supply-Chain-Lösung . Obwohl diese Idee keinen Erfolg hatte, brachte sie mich dazu, eine zu entwickelnRollenbasierter Zugangskontrollvertrag das war eigentlich in Ordnung.


Gerade als die Insolvenz unmittelbar bevorstand, sicherte uns genau dieser Code einen weiteren Kunden: AllianceBlock hat uns beauftragt, eine Blockchain-Ausgabeplattform mit einer Reihe von berechtigten Rollen zu programmieren.


Trotz der schrecklichen Leistung bei den Smart Contracts brauchten sie nur einen Proof-of-Concept für Ganache, den wir lieferten. Ich habe wichtige Lektionen über intelligente Vertragsarchitektur gelernt, On-Chain-Speicher und Frontend-Integration.


Trotz schrecklicher Leistung … habe ich wichtige Lektionen gelernt


Wir hatten erneut keine Einnahmen und waren sehr knapp bei Kasse. Ich beschloss, auf mein Gehalt zu verzichten und ein Drittel des Unternehmens zu kaufen, damit wir nicht bankrott gingen. Ich glaubte nicht, dass wir als Unternehmen große Chancen hatten, es zu schaffen, aber das spielte keine Rolle, ich habe programmiert, ich habe gelernt, ich hatte Spaß. Es schien ein günstiges Angebot zu sein, um ein großartiges Blockchain-Erlebnis zu bekommen.


Während wir nach mehr Kunden suchten. Ich habe daran mitgearbeitet HQ20-Verträge mit uivlis , Entwicklung und Dokumentation verschiedener Soliditätsmuster und Anwendungsfälle. Natürlich, ich schrieb viele Artikel über sie .


Der Wendepunkt

Irgendwann ging dem Unternehmen erneut das Geld aus und wir mussten uns alle auf die Suche nach einem Job machen. Dann stolperte ich über einOffenes Problem in OpenZeppelin . Sie brauchten so etwas wie eine verknüpfte Liste, und ich hatte das zuerst für CementDAO, dann für hq20-Verträge und sogar für hq20-Verträge gemacht habe einen schönen Artikel darüber geschrieben .


Nach Gesprächen mit Nventuro , mein Beitrag wurde integriert als EnumerableSet.sol in einer der OpenZeppelin-Veröffentlichungen. Ich hatte es geschafft. Ein Teil meines Codes war endlich live. Und mit OpenZeppelin nicht weniger.


Ermutigt durch diesen Erfolg nahm ich die Herausforderung von OpenZeppelin an, ihre Zutrittskontrollverträge zu überarbeiten. Ich hatte Spitzenarbeit zum Thema der gescheiterten Supply-Chain-Anwendung geleistet, sie mit AllianceBlock perfektioniert und noch einmalhabe einen ausführlichen Artikel zu diesem Thema geschrieben .


Ich wusste, dass ich es schaffen könnte. Dies führte schließlich zur Veröffentlichung von AccessControl.sol im 3.0-Version der offenen Zeppelin-Verträge, was wiederum ein großer Meilenstein in meiner Karriere war.


Ich hatte es geschafft. Ein Teil meines Codes war endlich live. Und mit OpenZeppelin nicht weniger.


Ich brauchte noch einen Job und wurde Blockchain-Lehrer für BeyondSkills. Ich müsste Online-Kurse erstellen, um Solidity-Programmierung zu lehren. Wie immer war ich für den Job nicht wirklich qualifiziert. Ich wusste, wie man einige Dinge programmiert, aber ich hatte große Wissenslücken. Bis dahin hatte ich selbst noch nicht einmal einen Vertrag abgeschlossen.


Ich musste per Video sprechen und Tutorials über Soliditätsentwicklung machen. Ich musste auch gründlich sein, weil die Kurse konsistent sein mussten. Das gleiche Muster wie bei den hier angewendeten Artikeln; Ich lernte Dinge und lehrte sie sofort, und das führte dazu, dass ich viel über die Entwicklung von Solidität lernte.


Leider wurde das Unternehmen aufgrund rechtlicher Probleme geschlossen und der Inhalt wurde nie veröffentlicht. Vielleicht ist es so besser.


Ich habe Dinge gelernt und sie sofort gelehrt, und das hat dazu geführt, dass ich viel über die Entwicklung von Solidität gelernt habe.


Während ich diese Kurse aufzeichnete, wurde ich angesprochen Allan Niemerg für Hilfe bei der Festkomma-Mathematik für ein Whitepaper, das er hatte . Im Gegensatz zu den vielen anderen Leuten mit einer Idee, die mich damals kontaktierten, hatte Allan Geld von einem VC-Fonds, von dem ich noch nie gehört hatte. Paradigma , und ich habe ihn ernst genommen.

Zu diesem Zeitpunkt hatte ich Fixidity programmiert, mehrere Artikel über Festkomma-Mathematik veröffentlicht und versucht, sowohl OpenZeppelin als auch dem Solidity-Kernteam zu helfen, allerdings ohne Erfolg. Ich wusste auch, dass AMMs mit logarithmischen Funktionen nicht trivial waren, und wusste von einem Mikhail, den wir damit beauftragen könnten, sie zum Laufen zu bringen.

Ich war der erste Mitarbeiter bei @yield. Ich habe Allan überzeugt, ihn einzustellen Bruce aus meiner TechHQ-Zeit als Frontend-Ingenieur, und wir alle drei, mit der Hilfe eines sehr jungen Georgios , Yield v1 wurde erfolgreich im Mainnet gestartet.


Ich habe viel gelernt – über Motoren für besicherte Schulden , Protokollintegration , Rundungsfehler, Off-Chain-Genehmigungen , Blitzkredite , Und Gaseffizienz , um ein paar zu nennen. Wie die meisten meiner Versuche, etwas zu tun, was ich noch nie zuvor getan hatte, war es kein großer Erfolg.


Eines der Dinge, die wir gelernt haben, ist, dass wir im Gegensatz zu Uniswap Änderungen am Protokoll vornehmen müssten, um eine Produktmarktanpassung zu gewährleisten. Da unsere Verträge größtenteils unveränderlich waren, begannen wir bald mit der Arbeit an Yield v2.

Schneller Vorlauf zu Heute

Yield Protocol v2 war etwa zwei Jahre lang aktiv und ich habe viel daraus gelernt, aber jetzt wird es eingestellt. Obwohl unsere technische Arbeit erstklassig war, sind feste Zinssätze derzeit nicht für den Produktmarkt im dezentralen Finanzwesen geeignet.


Wieder unterwegs in der Wildnis, wähle ich wieder den schwierigen Weg und anstatt eine weitere Rolle als leitender Ingenieur/CTO zu übernehmen, werde ich als Berater für andere Startups tätig, die von den Lektionen, die ich gelernt habe, profitieren könnten. Es gibt keine Handbücher dazu, und ich weiß, dass die Wissenslücken groß sind, aber auch die Verbesserungsmöglichkeiten.


Jetzt sollten Sie das Muster erkennen. Ich bleibe knapp außerhalb meiner Komfortzone, scheitere oft, lehre aber immer andere, was ich lerne. Dieser Artikel könnte als Beispiel angesehen werden.


Wenn ich Glück habe, finde ich etwas, das jemand will, wie CementDAO, AllianceBlock, Verträge für OpenZeppelin, BeyondSkills-Kurse und schließlich Yield. Wenn ich niemanden mit einem Bedürfnis finde, gibt es immer etwas zu lernen und dann darüber zu schreiben, wie über alle meine Artikel.


Ich bleibe knapp außerhalb meiner Komfortzone, scheitere oft, lehre aber immer andere, was ich lerne.


Die Schleife aus Ausprobieren, Scheitern, Lernen und Lehren ist nicht meine Erfindung, aber sie funktioniert. Oft sehe ich dadurch wie ein Idiot aus, und für manche ist das vielleicht das Schwierigste. Ich selbst trage meine Fehler mit Stolz.


Danke fürs Lesen. Ich hoffe, das wird Ihnen etwas Inspiration geben. Viel Glück.