I am a software developer from Galicia, Spain; Wanna chat? :)
I am a software developer from Galicia, Spain; Wanna chat? :)
Stack: Python (Flask, Prefect), SolidJS, PostgreSQL, Paged.js, TinyMCE.
A comprehensive reporting system built for a private client to consolidate cybersecurity data from multiple sources (FortiSOAR, Sekoia, etc.).
Data Pipeline: Scheduled Prefect flows fetch data from APIs every few hours, normalize it, and store it in PostgreSQL. I designed a hybrid schema using standard indexed columns for critical data and a JSONB column to dump the full raw API response. This approach ensures complex future queries and schema evolution without needing a separate Document database.
Frontend & Backend: A Flask API serves as the bridge between the database and a SolidJS frontend. The frontend choice was made keeping the existing team in mind, who were not familiar with React or Solid. SolidJS was chosen because it uses JSX—meaning any skills they learn are easily transferable to React if they ever need them—but offers a much simpler mental model with fewer complex re-render gotchas and bugs. Analysts use this interface to generate, review, and edit reports for specific clients and timeframes.
Reporting Engine: The frontend includes pre-defined report pages that can be heavily customized using a TinyMCE WYSIWYG editor. Finally, Paged.js is used to handle complex print pagination, transforming the web view into a pixel-perfect, exportable A4 document.
Private client project. No repository or live links available.
Stack: NodeJS w/ Puppeteer, Axios, Cheerio, Handlebars, SQLite.
OpenAI API, Azure Image Recognition, Apify.
PHP w/ PicoCMS.
Website aimed at foreigners coming to A Coruña. It showcases some informational info, a calendar of events, and services aimed at this demographic.
What's interesting about this site, is that it scrapes events from plenty of sites using Puppeteer, handles the result with SQLite and Handlebars, and uploads the calendar to a static site.
But some events are only published in Instagram, and that poses many challenges.
So I decided to download the posts from instagram accounts, push the post image through image recognition / OCR (Azure API), then use a ChatGPT API with Function Calling to retrieve how many events there are in a given post, and its critical info (dates, title, etc).
I wouldn't say it's flawless, but I managed to get a 80% solution for very little money.
I'm quite happy with my Function Calling JSON definition, it works pretty well despite LLMs not being deterministic.
Stack: React, HTML, CSS, Vanilla JS.
In this project, I've got ~ 1 week to implement a Figma design into working templates. About three months to implement other complex logic.
I built the core application using React for the main architecture and state management, while implementing some specific, highly interactive components using Vanilla CSS and Javascript.
I made: React architecture, templates for every screen, and some complex/heavy logic components like a meal compositor with several screens, and a training page with moving cards, timers, etc.
This was a team of four people total.