Hi, I'm Juan Pirela,
I grew up in Venezuela and since an early age I got into computers. I remember the story started back when I was around 10, and we would have power outages, as this happened, I would use a laptop that my parents gave me and would go through files always wondering, "What is an HTML file?", "What is a .dll?", "How can I make something like a program?". There were many questions that were filled with curiosity, and ultimately that curiosity led me to learning programming.
As I got more into programming by asking the regular questions, my journey started with Visual Basic 2008, and then as I started learning, I needed more power which led me to learning C and playing around with Habbo Emulators (like this) to create my own Habbo Hotel.
Years later, in 2018 I tried creating a data storage blockchain which I called Datalink, it never succeeded, never even got it across the testnet line, but it brought a lot of learning.
In the journey of engineering, I’ve worked at relevant companies like Supabase where I was a core member of the functions team, creating serverless infrastructure for users. Similarly, there was a project in 2023 that attempted to create serverless functions on top of Arweave, this project was called EXM. Today, all that knowledge is brought into our open source projects at Decent Land Labs, available for our developer community.
Years later, I find myself doing great things at Decent Land Labs, and focusing specifically on the microservice backend of our systems and the storage side of our products.
I constantly research new ways to design and improve existing solutions for decentralized and database systems.
You will be hearing from me on certain improvements that are being worked on, one of them being asynchronous precompiles inside Reth.
The idea is simple: The result of a precompile should be:
- Non-blocking
- Asynchronous
- Complete
By non-blocking, we mean that regardless of what the precompile does, it needs to have the assurances that it will never violate the block time (1s) so its result will never be a timeout. By asynchronous, we mean that it needs to be done outside of the EVM, and outside of the node itself. Ultimately, by complete we mean that the response of the precompile must be available on the contract side (EVM) at one point in the future in byte form. It must be complete.
As we analyze the challenges that come with bridging a greater performance to decentralized applications, we've found ourselves working towards innovative solutions in problems that sometimes go underseen.
Find me on this blog,
Juan.