[{"content":"A zero-dependency Go client to automatically update DNS entries on Cloudflare based on the current public IP address of your machine. Useful for self-hosted services behind a dynamic IP.\nFeatures Zero external dependencies (only Go standard library) Docker support with docker-compose.yaml Configurable via a simple config file Lightweight and fast Usage docker compose up -d Technologies: Go, Docker\n","permalink":"https://portfolio.zeollad.com/projects/cloudflare-ddns-go/","summary":"\u003cp\u003eA zero-dependency Go client to automatically update DNS entries on Cloudflare based on the current public IP address of your machine. Useful for self-hosted services behind a dynamic IP.\u003c/p\u003e\n\u003ch2 id=\"features\"\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eZero external dependencies (only Go standard library)\u003c/li\u003e\n\u003cli\u003eDocker support with \u003ccode\u003edocker-compose.yaml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eConfigurable via a simple config file\u003c/li\u003e\n\u003cli\u003eLightweight and fast\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"usage\"\u003eUsage\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker compose up -d\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Go, Docker\u003c/p\u003e","title":"cloudflare-ddns-go"},{"content":"A Telegram bot that monitors weather alert bulletins from the Tuscany civil protection agency and notifies subscribed users in real time.\nFeatures Parses official XML bulletins from the Tuscany civil protection agency Notifies users based on their subscribed locations Persistent user data with local database Automated scheduling for bulletin checks Technologies: Node.js, JavaScript, Telegram Bot API\n","permalink":"https://portfolio.zeollad.com/projects/allerta-meteo-toscana-bot/","summary":"\u003cp\u003eA Telegram bot that monitors weather alert bulletins from the Tuscany civil protection agency and notifies subscribed users in real time.\u003c/p\u003e\n\u003ch2 id=\"features\"\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eParses official XML bulletins from the Tuscany civil protection agency\u003c/li\u003e\n\u003cli\u003eNotifies users based on their subscribed locations\u003c/li\u003e\n\u003cli\u003ePersistent user data with local database\u003c/li\u003e\n\u003cli\u003eAutomated scheduling for bulletin checks\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Node.js, JavaScript, Telegram Bot API\u003c/p\u003e","title":"allerta-meteo-toscana-bot"},{"content":"Personal Wordle-inspired game built as a side project.\nTechnologies: Java\n","permalink":"https://portfolio.zeollad.com/projects/rcl-wordle/","summary":"\u003cp\u003ePersonal Wordle-inspired game built as a side project.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Java\u003c/p\u003e","title":"rcl-wordle"},{"content":"My solutions to the Advent of Code 2024 challenge — a series of daily algorithmic puzzles published every December.\nTechnologies: Go\n","permalink":"https://portfolio.zeollad.com/projects/advent-of-code-2024/","summary":"\u003cp\u003eMy solutions to the \u003ca href=\"https://adventofcode.com/2024\"\u003eAdvent of Code 2024\u003c/a\u003e challenge — a series of daily algorithmic puzzles published every December.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Go\u003c/p\u003e","title":"advent-of-code-2024"},{"content":"My Bachelor\u0026rsquo;s thesis at the University of Pisa (April 2024). The project explores how Ethereum blockchain data can be modeled and queried as a property graph using Neo4j.\nAbstract The Ethereum blockchain generates a massive volume of transaction data. Traditional relational databases struggle to capture the highly connected, graph-like nature of blockchain interactions. This thesis proposes and evaluates a graph model for Ethereum data using Neo4j, enabling more expressive queries for analytics and investigation.\nTechnologies: Neo4j, Python, Cypher\n","permalink":"https://portfolio.zeollad.com/projects/cs-thesis/","summary":"\u003cp\u003eMy Bachelor\u0026rsquo;s thesis at the University of Pisa (April 2024). The project explores how Ethereum blockchain data can be modeled and queried as a property graph using Neo4j.\u003c/p\u003e\n\u003ch2 id=\"abstract\"\u003eAbstract\u003c/h2\u003e\n\u003cp\u003eThe Ethereum blockchain generates a massive volume of transaction data. Traditional relational databases struggle to capture the highly connected, graph-like nature of blockchain interactions. This thesis proposes and evaluates a graph model for Ethereum data using Neo4j, enabling more expressive queries for analytics and investigation.\u003c/p\u003e","title":"Graph Models for Ethereum Blockchain in Neo4j"},{"content":"Contributed to node-rate-limiter-flexible, a widely used Node.js library for request rate limiting with atomic increments in single and distributed environments.\nContribution Added AWS DynamoDB as a supported backend storage option, enabling serverless and cloud-native deployments to use the library without requiring Redis or other in-memory stores.\n→ Pull Request #234\nTechnologies: JavaScript, Node.js, AWS DynamoDB\n","permalink":"https://portfolio.zeollad.com/projects/node-rate-limiter-contribution/","summary":"\u003cp\u003eContributed to \u003ca href=\"https://github.com/animir/node-rate-limiter-flexible\"\u003enode-rate-limiter-flexible\u003c/a\u003e, a widely used Node.js library for request rate limiting with atomic increments in single and distributed environments.\u003c/p\u003e\n\u003ch2 id=\"contribution\"\u003eContribution\u003c/h2\u003e\n\u003cp\u003eAdded \u003cstrong\u003eAWS DynamoDB\u003c/strong\u003e as a supported backend storage option, enabling serverless and cloud-native deployments to use the library without requiring Redis or other in-memory stores.\u003c/p\u003e\n\u003cp\u003e→ \u003ca href=\"https://github.com/animir/node-rate-limiter-flexible/pull/234\"\u003ePull Request #234\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e JavaScript, Node.js, AWS DynamoDB\u003c/p\u003e","title":"Open Source Contribution: node-rate-limiter-flexible"},{"content":"Work Experience Backend Engineer @ Defenda Solutions Oct 2024 – Present · Lucca, Italy\nDesigned and maintained backend services focused on cybersecurity and threat intelligence. Implemented Dark Web monitoring pipelines and automated data analysis workflows with ClickHouse and LLMs. Technologies: Python, FastAPI, Node.js, Bun.js, TypeScript, MySQL, ClickHouse, Bash, OpenAI, Go\nBackend Engineer @ Spacest 2019 – Sep 2024 · Pisa, Italy\nLed migration of the legacy Java/Spring backend to a scalable Node.js microservice architecture using Prisma and TypeScript. Developed API throttling system with AWS Lambda authorizers. Built a multi-channel notification system (email, SMS, Telegram) for internal and customer communications using Twilio API. Introduced Redis caching for optimizing API response time and worked on centralized logging with Graylog. Technologies: Java, Spring Boot, TypeScript, Nest.js, Node.js, Prisma.io, Redis, Docker, GitHub Actions, AWS (S3, SQS, EC2, CloudWatch, ELB), Graylog, MySQL\nEducation Bachelor\u0026rsquo;s Degree in Computer Science University of Pisa · Apr 2024\nThesis: Graph Models for Ethereum Blockchain in Neo4j\nHigh School Diploma — IT Technician I.T.I.S. G. Marconi · Pontedera (PI) · 2011–2016\nCertifications 2015 — Cisco CCNA Network Fundamentals 2018 — English B1 Certificate Languages Language Level Italian Native English Intermediate (B2) ","permalink":"https://portfolio.zeollad.com/experience/","summary":"\u003ch2 id=\"work-experience\"\u003eWork Experience\u003c/h2\u003e\n\u003ch3 id=\"backend-engineer--defenda-solutions\"\u003eBackend Engineer @ \u003ca href=\"https://defendasolutions.it\"\u003eDefenda Solutions\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOct 2024 – Present · Lucca, Italy\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDesigned and maintained backend services focused on cybersecurity and threat intelligence.\u003c/li\u003e\n\u003cli\u003eImplemented Dark Web monitoring pipelines and automated data analysis workflows with ClickHouse and LLMs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Python, FastAPI, Node.js, Bun.js, TypeScript, MySQL, ClickHouse, Bash, OpenAI, Go\u003c/p\u003e\n\u003chr\u003e\n\u003ch3 id=\"backend-engineer--spacest\"\u003eBackend Engineer @ \u003ca href=\"https://spacest.com\"\u003eSpacest\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e2019 – Sep 2024 · Pisa, Italy\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLed migration of the legacy Java/Spring backend to a scalable Node.js microservice architecture using Prisma and TypeScript.\u003c/li\u003e\n\u003cli\u003eDeveloped API throttling system with AWS Lambda authorizers.\u003c/li\u003e\n\u003cli\u003eBuilt a multi-channel notification system (email, SMS, Telegram) for internal and customer communications using Twilio API.\u003c/li\u003e\n\u003cli\u003eIntroduced Redis caching for optimizing API response time and worked on centralized logging with Graylog.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTechnologies:\u003c/strong\u003e Java, Spring Boot, TypeScript, Nest.js, Node.js, Prisma.io, Redis, Docker, GitHub Actions, AWS (S3, SQS, EC2, CloudWatch, ELB), Graylog, MySQL\u003c/p\u003e","title":"Experience"},{"content":"Languages TypeScript JavaScript Python Go Java Rust C / C++ Bash PHP\nFrameworks \u0026amp; Libraries Nest.js Node.js Bun.js FastAPI Spring Boot Hono Prisma.io\nDatabases \u0026amp; Storage MySQL ClickHouse Redis DynamoDB Neo4j\nCloud \u0026amp; Infrastructure AWS S3 AWS EC2 AWS Lambda AWS SQS AWS CloudWatch AWS ELB\nDocker GitHub Actions Nginx Graylog Serverless Framework\nConcepts Microservices REST APIs Distributed Systems Threat Intelligence\nGraph Models API Rate Limiting Event-Driven Architecture Linux CI/CD\nLanguages (spoken) Language Level Italian Native English Intermediate (B2) ","permalink":"https://portfolio.zeollad.com/skills/","summary":"\u003ch2 id=\"languages\"\u003eLanguages\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eTypeScript\u003c/code\u003e \u003ccode\u003eJavaScript\u003c/code\u003e \u003ccode\u003ePython\u003c/code\u003e \u003ccode\u003eGo\u003c/code\u003e \u003ccode\u003eJava\u003c/code\u003e \u003ccode\u003eRust\u003c/code\u003e \u003ccode\u003eC / C++\u003c/code\u003e \u003ccode\u003eBash\u003c/code\u003e \u003ccode\u003ePHP\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"frameworks--libraries\"\u003eFrameworks \u0026amp; Libraries\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eNest.js\u003c/code\u003e \u003ccode\u003eNode.js\u003c/code\u003e \u003ccode\u003eBun.js\u003c/code\u003e \u003ccode\u003eFastAPI\u003c/code\u003e \u003ccode\u003eSpring Boot\u003c/code\u003e \u003ccode\u003eHono\u003c/code\u003e \u003ccode\u003ePrisma.io\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"databases--storage\"\u003eDatabases \u0026amp; Storage\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMySQL\u003c/code\u003e \u003ccode\u003eClickHouse\u003c/code\u003e \u003ccode\u003eRedis\u003c/code\u003e \u003ccode\u003eDynamoDB\u003c/code\u003e \u003ccode\u003eNeo4j\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"cloud--infrastructure\"\u003eCloud \u0026amp; Infrastructure\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eAWS S3\u003c/code\u003e \u003ccode\u003eAWS EC2\u003c/code\u003e \u003ccode\u003eAWS Lambda\u003c/code\u003e \u003ccode\u003eAWS SQS\u003c/code\u003e \u003ccode\u003eAWS CloudWatch\u003c/code\u003e \u003ccode\u003eAWS ELB\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003eDocker\u003c/code\u003e \u003ccode\u003eGitHub Actions\u003c/code\u003e \u003ccode\u003eNginx\u003c/code\u003e \u003ccode\u003eGraylog\u003c/code\u003e \u003ccode\u003eServerless Framework\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"concepts\"\u003eConcepts\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eMicroservices\u003c/code\u003e \u003ccode\u003eREST APIs\u003c/code\u003e \u003ccode\u003eDistributed Systems\u003c/code\u003e \u003ccode\u003eThreat Intelligence\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003eGraph Models\u003c/code\u003e \u003ccode\u003eAPI Rate Limiting\u003c/code\u003e \u003ccode\u003eEvent-Driven Architecture\u003c/code\u003e \u003ccode\u003eLinux\u003c/code\u003e \u003ccode\u003eCI/CD\u003c/code\u003e\u003c/p\u003e","title":"Skills"}]