One of the best decisions in my developer career was to go beyond just using tools.
I decided to create my tools, not for commercial propose, but to know how these technologies actually work and to improve my tech skills.
This is a short story about how this decision changed my life.
I've always been the
CSS guy. In 2015 my passion for
CSS took me quickly to the status of "reference" in my country (Brazil).
Okay, but in my first days of coding, my
Everything has changed when I received an invite to talk in Front in Valle (a big front-end conference in my country) that I could talk about any topic. So I had an idea as naive as it was brilliant. I decided to learn about
🍌 The Brazilian CSS superset.
In 2016 I created the
CSS preprocessor called
banana CSS, the objective of this project was to learn
Node.js, how to
AST, how to create
gulp plugins, and more.
Okay, at this point I felt the necessity to learn more about
In 2017 I created a project called
millenium.js, the description for this project is:
Virtual DOM. Ideal for creating ultra-light and fast applications with
Or my favorite description:
🚀 Render your
front-endin less than 12 parsecs.
In this project, I learned about performance, good practices for creating
JSX, and more. Of course, I kept all the good practices from the old projects.
See an online DEMO with Redux.
In 2018, after I watched the Ready Player One movie, I left the movie theater determined to create a game with
Creating a game with
But, the natural decision (for me) was: Creating a new tool for creating games.
For this project, I decided to define some funny rules:
- Don't use
- Use only
CSSto render animations.
- Write a functional code.
- Try to write the maximum of
universalcode as possible.
Finally, I created the
🎮 The 2D game engine for manage collisions.
In this project, I learned more about
algorithms (for calculating the elements collisions), and much more.
Again, of course, I kept all good practices like
unit tests, hum...
At this point, I had a revelation:
OMG, why did I never think of creating my automated testing tool?
While working on
burnout.js I built the
N.O.M.s (my testing tool) and wrote 100% of the
unit tests using the
What were the goals of creating my test library?
- It should work in the browser and
- Create all assertions in pure
- Don't use a custom
CLIfor run tests.
Curiosity: I used mocha to write the
N.O.M.s unit tests. Ironic but funny 😅!
After these personal projects (and a lot of others), in 2019/2020 I spend my time working on corporate products, creating complex Front-End applications, and leading a
full-stack development team.
For my surprise, in the last years of open source development, I’ve improved my technical level a lot and I had no problems with implementing complex architectures using
back-end APIs (
MongoDB, and a lot of tools/good practices for web applications!
I finish this blog post complementing the first paragraph:
One of the best decisions in my developer career was to go beyond just using tools, I decided to create them.
Thanks a lot for reading my first English blog post.