With over eight years in programming -mostly web- I got exhausted of every new shiny technology. All claiming to resolve the existing difficulties originated by another piece of software.
In the beginning, it was just raw HTML, CSS for beauty, and even worse JavaScript than nowadays (I genuinely mean that); then jQuery (💙) came into the game, providing a beautiful abstraction on top of the JavaScript API; it was mostly sugar syntax for manipulating the DOM (and more) but horrible spaghetti code as part of the trade-off.
Then Backbone.js joined the discussion, introducing an MVC pattern, then Angular.JS, and then Ember with a Rails-like model (producing a more organized code).
The list is incomplete; of course, there are more. React became open source, AngularJS became just Angular (now with TypeScript batteries and a more robust API).
The exact history for the back-end; once Node.js became widely adopted. We had Express, Koa, Hapi, Restify, fastify, and many more. The same front-end loop is now in the server, with different flavors trying to fix other technology's complexities.
Please don’t mention the task runners and bundlers, please don’t.
Did they fix the whole thing? Honestly, I don’t know… but I had to learn all of them.
Then, after the tediousness and all the weight of dealing with new technologies every N months, I decided to understand the root of things and became a Node.js contributor.
I started with tests. I pushed really hard to improve the Node.js test coverage. That helped me get more comfortable with the API and comprehend how and why things behave as they do. Then, I began to grab issues, try to solve bugs, and answer questions. All the test improvement work allowed me to pinpoint where is the misbehaving code and contribute more to the Node.js project. Then, I got hired by NodeSource, and nowadays, I’m an official Node.js core team member and releaser.
But I wanted more, go deeper; I forked libuv to discover the anatomy of the Node.js event loop. I had a couple of pull requests landed there; that was (still) a milestone for me.
“Thirsting to know what God knows” (The Golem, Jorge Luis Borges). I got a V8 copy. I was bisecting the whole JavaScript engine, the heart (among others that I don’t care) of all the technologies that I hate (and probably love). Dealing with frustrations and long compile times, I became a V8 contributor by adding a new feature to the API. I’m still working on V8 and learning tons of new things.
I discovered a new passion; I fell in love with compilers as a concept and as a software unit. I’m investigating TurboFan (I even fixed a bug in it), and Maglev is aiming to fix a couple of problems in TurboFan. I just entered the same loop but in a different spectrum, a more horrible one.
Today, I can say I’m thrilled to learn new technologies; all this road up to this point flattened the learning curve of -almost- any framework.
Now; I want to build and learn stuff; try to discover a new passion and enjoy the ride!
You can be my companion on this road; I post on Twitter (yes, Twitter), read more of my blog, and visit my website.
Thanks for reading 💚.