About
I am a committed and self-driven software developer, currently working in a technological centre in Spain.
I mainly focus on the development of smart contracts, subgraphs and front ends, but I am also skilled in developing machine learning models, zero-knowledge circuits and back-end applications.
I use the following tech stacks:
- Blockchain: I write smart contracts in Solidity with Hardhat and Foundry and in Vyper with Brownie.
- Subgraphs: I implement subgraphs and index contract data with TheGraph.
- Front end: I develop user interfaces with React components in TypeScript, using usually Next.js or Vite, and also have basic knowledge of Svelte. I use JavaScript Web3 libraries such as Ethers.js, Viem or Wagmi to implement Web3 interactivity. I manage application state with Redux and Redux Toolkit, and generally use the GraphQL language to consume data from subgraphs.
- Back end: I use Express.js in order to manage server and API routes in Node.js, and Flask when using Python. I also have knowledge of MongoDB to manage databases.
- Zero-knowledge: I implement zero-knowledge circuits in Circom language, as well as perform trusted setups and generate witnesses, proofs, verifiers, etc., using SnarkJS.
- Machine learning: I have knowledge of parametric and non-parametric modeling in supervised learning, Deep Q-Network in reinforcement learning and of clustering and PCA techniques in unsupervised learning. I have experience implementing and optimizing feed-forward and convolutional, as well as recurrent (LSTM and GRU) and recursive networks. I usually code in Python and primarily use libraries such as Scikit-learn, XGBoost, LightGBM, PyTorch and Keras.
- Data science: I perform exploratory data analysis using mainly the Pandas, Numpy, SciPy, Matplotlib and Seaborn libraries.
I try to uphold engineering best practices, both in terms of design and security patterns. I have knowledge of developing applications using hexagonal architecture, and of coding modular smart contracts, also using upgradeable contracts and the ERC-2535 diamond pattern.