Sobre mí
Soy un desarrollador de software comprometido y con iniciativa, trabajando actualmente en un centro tecnológico en España.
Me centro principalmente en el desarrollo de contratos inteligentes, subgrafos y front ends, pero también tengo conocimientos en el desarrollo de modelos de aprendizaje automático, circuitos de conocimiento cero y aplicaciones de back end:
Utilizo los siguientes stacks tecnológicos:
- Blockchain: Escribo contratos inteligentes en Solidity con Hardhat y Foundry y en Vyper con Brownie.
- Subgrafos: Implemento subgrafos e indexo datos de contratos con TheGraph.
- Front end: Desarrollo interfaces de usuario con componentes de React en TypeScript, normalmente utilizando Next.js o Vite, y también poseo conocimiento básico de Svelte. Utilizo librerías Web3 de JavaScript tales como Ethers.js, Viem o Wagmi para implementar interactividad Web3. Gestiono el estado de aplicaciones mediante Redux y Redux Toolkit, y utilizo generalmente el lenguaje GraphQL para consumir datos de los subgrafos.
- Back end: Utilizo Express.js para gestionar servidor y rutas API en Node.js, y Flask cuando utilizo Python. También tengo conocimiento de MongoDB para gestionar bases de datos.
- Conocimiento cero: Implemento circuitos de conocimiento cero en el lenguaje Circom, al igual que realizo configuraciones confiables y genero testigos, pruebas, verificadores, etc., utilizando SnarkJS.
- Aprendizaje automático: Tengo conocimientos de modelado paramétrico y no paramétrico en aprendizaje supervisado, Red profunda Q en aprendizaje por refuerzo y de clusterizado y técnicas de PCA en aprendizaje no supervisado. Tengo experiencia implementando y optimizando arquitecturas de redes neuronales prealimentadas y convolucionales, así como recurrentes (LSTM y GRU) y redes recursivas. Normalmente programo en Python y utilizo principalmente librerías como Scikit-learn, XGBoost, LightGBM, PyTorch y Keras.
- Ciencia de datos: Desarrollo análisis exploratorio de datos utilizando principalmente las librerías Pandas, Numpy, SciPy, Matplotlib y Seaborn.
Intento mantener las mejores prácticas de ingeniería, tanto en cuanto a patrones de diseño como de seguridad. Tengo conocimientos de desarrollo de aplicaciones utilizando arquitectura hexagonal, y de codificación de contratos inteligentes modulares, utilizando también contratos actualizables y el patrón de diamante ERC-2535.