Sobre mí
Soy un desarrollador de software trabajando actualmente en un centro tecnológico en España.
Me centro principalmente en el desarrollo de front ends, contratos inteligentes y subgrafos, aunque también tengo una sólida experiencia en el desarrollo de modelos de aprendizaje automático, circuitos de conocimiento cero y aplicaciones de back end.
Mis conocimientos técnicos incluyen:
- Blockchain: diseño y desarrollo de contratos inteligentes escritos en Solidity con Hardhat y Foundry y en Vyper con Brownie.
- Subgrafos: implementación de subgrafos e indexación de datos de contratos con TheGraph.
- Front end: desarrollo de 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: experiencia en el uso de 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: implementación de circuitos de conocimiento cero en el lenguaje Circom, además de configuraciones confiables y generación de testigos, pruebas, verificadores, etc., utilizando SnarkJS.
- Aprendizaje automático: 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: 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.