Creo applicazioni web moderne e strumenti digitali personalizzati per aiutare le attività a crescere attraverso l'innovazione tecnologica. La mia passione è unire informatica ed economia per generare valore reale.
La mia passione per l'informatica è nata tra i banchi dell'Istituto Tecnico Commerciale di Maglie, dove ho scoperto il potere della programmazione e il fascino di creare soluzioni digitali. Fin da subito, ho capito che l'informatica non era solo codice, ma uno strumento straordinario per trasformare idee in realtà.
Durante gli studi superiori in Sistemi Informativi Aziendali, ho iniziato a intrecciare informatica ed economia, comprendendo come la tecnologia possa essere il motore della crescita per qualsiasi attività. Questa visione mi ha accompagnato all'Università degli Studi di Bari, dove ho conseguito la Laurea in Informatica, approfondendo le mie competenze tecniche e la mia passione per lo sviluppo software.
Oggi metto questa esperienza al servizio di imprese, professionisti e startup, creando soluzioni digitali su misura che automatizzano processi, ottimizzano risorse e aprono nuove opportunità di business. Perché la vera innovazione inizia quando la tecnologia incontra le esigenze reali delle persone.
Minhas Habilidades
Analisi Dati & Modelli Previsionali
Trasformo i dati in insights strategici con analisi approfondite e modelli predittivi per decisioni informate
Automação de Processos
Creo strumenti personalizzati che automatizzano operazioni ripetitive e liberano tempo per attività a valore aggiunto
Sistemas Personalizados
Sviluppo sistemi software su misura, dalle integrazioni tra piattaforme alle dashboard personalizzate
Credo fermamente che l'informatica sia lo strumento più potente per trasformare le idee in realtà e migliorare la vita delle persone.
🚀
Democratizar a Tecnologia
La mia missione è rendere l'informatica accessibile a tutti: dalle piccole imprese locali alle startup innovative, fino ai professionisti che vogliono digitalizzare la propria attività. Ogni realtà merita di sfruttare le potenzialità del digitale.
💡
Unir TI e Negócios
Non è solo questione di scrivere codice: è capire come la tecnologia possa generare valore reale. Intrecciando competenze informatiche e visione economica, aiuto le attività a crescere, ottimizzare processi e raggiungere nuovi traguardi di efficienza e redditività.
🎯
Criar Soluções Personalizadas
Ogni attività è unica, e così devono esserlo le soluzioni. Sviluppo strumenti personalizzati che rispondono alle esigenze specifiche di ciascun cliente, automatizzando processi ripetitivi e liberando tempo per ciò che conta davvero: far crescere il business.
Transforme Seu Negócio com Tecnologia
Che tu gestisca un negozio, uno studio professionale o un'azienda, posso aiutarti a sfruttare le potenzialità dell'informatica per lavorare meglio, più velocemente e in modo più intelligente.
Il mio percorso accademico e le tecnologie che padroneggio
Certificazioni Professionali
8 certificazioni conseguite
Nuovo
Visualizza
Reinvention With Agentic AI Learning Program
Anthropic
Dicembre 2024
Nuovo
Visualizza
Agentic AI Fluency
Anthropic
Dicembre 2024
Nuovo
Visualizza
AI Fluency for Students
Anthropic
Dicembre 2024
Nuovo
Visualizza
AI Fluency: Framework and Foundations
Anthropic
Dicembre 2024
Nuovo
Visualizza
Claude with the Anthropic API
Anthropic
Dicembre 2024
Visualizza
Master SQL
RoadMap.sh
Novembre 2024
Visualizza
Oracle Certified Foundations Associate
Oracle
Ottobre 2024
Visualizza
People Leadership Credential
Connect
Settembre 2024
💻 Linguaggi & Tecnologie
☕Java
🐍Python
📜JavaScript
🅰️Angular
⚛️React
🔷TypeScript
🗄️SQL
🐘PHP
🎨CSS/SCSS
🔧Node.js
🐳Docker
🌿Git
💼
12/2024 - Presente
Custom Software Engineering Analyst
Accenture
Bari, Puglia, Italia · Ibrida
Analisi e sviluppo di sistemi informatici attraverso l'utilizzo di Java e Quarkus in Health and Public Sector. Formazione continua su tecnologie moderne per la creazione di soluzioni software personalizzate ed efficienti e sugli agenti.
💼
06/2022 - 12/2024
Analista software e Back End Developer Associate Consultant
Links Management and Technology SpA
Esperienza nell'analisi di sistemi software as-is e flussi ETL utilizzando PowerCenter. Formazione completata su Spring Boot per lo sviluppo di applicazioni backend moderne e scalabili. Sviluppatore Backend specializzato in Spring Boot, con esperienza in progettazione di database, analisi, sviluppo e testing dei task assegnati.
💼
02/2021 - 10/2021
Programmatore software
Adesso.it (prima era WebScience srl)
Esperienza nell'analisi AS-IS e TO-BE, evoluzioni SEO ed evoluzioni website per migliorare le performance e l'engagement degli utenti.
🎓
2018 - 2025
Laurea in Informatica
Università degli Studi di Bari Aldo Moro
Bachelor's degree in Computer Science, focusing on software engineering, algorithms, and modern development practices.
📚
2013 - 2018
Diploma - Sistemi Informativi Aziendali
Istituto Tecnico Commerciale di Maglie
Technical diploma specializing in Business Information Systems, combining IT knowledge with business management.
Contate-me
Tem um projeto em mente? Vamos conversar! Preencha o formulário e responderei em breve.
* Campi obbligatori. I tuoi dati saranno utilizzati solo per rispondere alla tua richiesta.
Introdução: CI/CD para Desenvolvedores Frontend
Todo desenvolvedor frontend mais cedo ou mais tarde enfrenta a mesma pergunta: como posso automatizar
o processo de build, teste e deploy da minha aplicação? A resposta moderna chama-se CI/CD
(Integração Contínua / Deploy Contínuo), e o GitHub Actions representa hoje a
ferramenta mais acessível e poderosa para implementá-lo diretamente no repositório do projeto.
Neste primeiro artigo da série DevOps para Desenvolvedores Frontend, construiremos
do zero um pipeline completo para uma aplicação Angular: desde o primeiro workflow de integração contínua
até o deploy automático em produção. Cada conceito é explicado com exemplos práticos e código
pronto para uso.
O Que Você Aprenderá Neste Artigo
Os conceitos fundamentais do GitHub Actions: workflow, job, step e trigger
Como configurar um workflow CI para Angular (install, lint, test, build)
Como implementar o deploy automático no Firebase e Vercel
Estratégias de cache para acelerar os pipelines
Matrix strategy para testar em múltiplas versões do Node.js
Como configurar artifacts e branch protection rules
Como criar workflows reutilizáveis
1. Conceitos Fundamentais do GitHub Actions
O GitHub Actions é uma plataforma de automação integrada ao GitHub. Cada automação baseia-se em
quatro conceitos-chave que formam uma hierarquia precisa:
Hierarquia do GitHub Actions
Conceito
Descrição
Analogia
Workflow
Um arquivo YAML em .github/workflows/ que define toda a automação
A receita completa
Job
Um grupo de steps que é executado num runner específico
Uma fase da receita
Step
Um comando ou ação individual dentro de um job
Uma instrução específica
Trigger
O evento que inicia o workflow (push, PR, schedule, etc.)
O momento de começar
Um workflow pode conter múltiplos jobs, e cada job pode conter múltiplos steps. Os jobs são executados
em paralelo por padrão, mas podem ser configurados com dependências para execução sequencial.
Estrutura de um Workflow YAML
Cada workflow reside no diretório .github/workflows/ do repositório. Aqui está a
estrutura base de um arquivo workflow:
# .github/workflows/ci.yml
name: CI Pipeline
# Trigger: quando executar o workflow
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
# Variáveis de ambiente globais
env:
NODE_VERSION: '20'
# Os jobs a executar
jobs:
build:
# Runner: máquina virtual onde executar
runs-on: ubuntu-latest
# Steps do job
steps:
# Step 1: Checkout do código
- name: Checkout repository
uses: actions/checkout@v4
# Step 2: Setup Node.js
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version:
#123;{ env.NODE_VERSION }}
# Step 3: Instalação de dependências
- name: Install dependencies
run: npm ci
# Step 4: Build
- name: Build application
run: npm run build
Os Principais Triggers
Os triggers determinam quando um workflow é iniciado. O GitHub Actions suporta dezenas de eventos,
mas para projetos frontend os mais utilizados são push, pull_request, schedule e workflow_dispatch.
Atenção com os Triggers de Push
O filtro paths é muito útil para evitar builds desnecessários: se você modifica apenas o README,
não faz sentido reexecutar todo o pipeline. No entanto, tenha cuidado para não excluir arquivos críticos
como angular.json ou tsconfig.json que afetam o build.
2. Workflow CI Completo para Angular
Vamos construir agora um workflow de Integração Contínua completo para um projeto Angular. Este
workflow executará em sequência: instalação de dependências, linting, testes unitários e build de produção.
Este workflow define três jobs em sequência graças à keyword needs: primeiro o lint,
depois os testes, e finalmente o build. Se o lint falha, os testes não são executados; se os testes falham,
o build não inicia.
Cache Avançado de Dependências
A keyword cache: 'npm' na action setup-node fornece um cache básico.
Para um controle mais granular, podemos usar diretamente a action actions/cache.
A chave de cache usa o hash do arquivo package-lock.json: quando as dependências
não mudam, o cache é reutilizado e a instalação é completamente ignorada.
3. Matrix Strategy: Testes Multi-Versão
A matrix strategy permite executar o mesmo job com combinações diferentes
de parâmetros. Para um projeto Angular, é particularmente útil para testar em múltiplas versões do Node.js.
Quando Usar a Matrix Strategy
Testes em múltiplas versões do Node.js (LTS atual e anterior)
Testes em múltiplos sistemas operacionais (ubuntu, windows, macos)
Build para diferentes ambientes (staging, production)
Testes com diferentes versões de navegadores
4. CD: Deploy Automático no Firebase
Após construir e testar a aplicação, o próximo passo é o deploy automático.
Vejamos como configurar o deploy no Firebase Hosting, uma das opções mais comuns para
aplicações Angular.
Preview Deploy para Pull Requests
Uma funcionalidade poderosa do Firebase Hosting é a possibilidade de criar preview channels
automáticos para cada Pull Request, permitindo à equipe verificar as alterações antes do merge.
5. Artifacts: Compartilhar Arquivos entre Jobs
Os artifacts permitem compartilhar arquivos entre diferentes jobs do mesmo workflow.
Isto é fundamental para separar o build do deploy sem recompilar.
Boas Práticas para Artifacts
Configure sempre retention-days para não desperdiçar espaço de armazenamento
Use nomes descritivos para os artifacts (angular-dist, coverage-report)
Envie apenas os arquivos necessários, não todo o diretório node_modules
Para arquivos muito grandes, considere a compressão antes do upload
6. Branch Protection Rules
As branch protection rules do GitHub permitem impor restrições nos branches
críticos. Quando combinadas com os workflows CI, criam uma barreira de qualidade automática.
Require a pull request before merging: Impede pushes diretos para main
Require status checks to pass before merging: Os workflows CI devem passar
Require branches to be up to date before merging: O branch deve estar atualizado
Require conversation resolution before merging: Todos os comentários devem estar resolvidos
7. Workflows Reutilizáveis
Ao gerir múltiplos repositórios com configurações similares, os reusable workflows
evitam a duplicação de código. Um workflow reutilizável é definido com o trigger workflow_call.
Vantagens dos Workflows Reutilizáveis
DRY: Um único ponto de manutenção para a lógica CI/CD
Padronização: Todos os repositórios seguem as mesmas práticas
Versionamento: Pode referenciar uma versão específica do workflow (@main, @v1)
Segurança: Os segredos são passados explicitamente, não compartilhados globalmente
8. Exemplo Completo: Pipeline End-to-End
Combinemos todos os conceitos num pipeline completo que gere CI e CD com branch protection.
A opção concurrency é crucial: se fizer múltiplos pushes seguidos no mesmo branch,
o workflow anterior é automaticamente cancelado, poupando minutos de execução.
9. Debugging e Boas Práticas
Quando um workflow falha, o debugging pode ser frustrante. Aqui estão as estratégias mais eficazes:
ACTIONS_RUNNER_DEBUG = true para logs detalhados do runner
ACTIONS_STEP_DEBUG = true para logs detalhados de cada step
Boas Práticas para GitHub Actions
Use npm ci em vez de npm install para instalações determinísticas
Fixe sempre as versões das actions (@v4 em vez de @main)
Configure concurrency para evitar builds duplicados
Use o cache para reduzir os tempos de execução
Separe os jobs para ter feedback rápido (lint falha imediatamente, não após o build)
Use environment para proteger os segredos de produção
Configure timeout-minutes para evitar jobs bloqueados
Monitore o consumo de minutos do GitHub Actions no plano da sua conta
Conclusão
Neste artigo construímos um pipeline CI/CD completo para uma aplicação Angular
usando GitHub Actions. Explorámos os conceitos fundamentais (workflow, job, step, trigger),
implementamos o cache de dependências, configuramos a matrix strategy para testes multi-versão,
e configuramos o deploy automático no Firebase e Vercel.
A chave do sucesso com os pipelines CI/CD é a iteração progressiva: comece com um workflow
simples (lint + build), depois adicione os testes, e finalmente o deploy automático. Não tente
implementar tudo de uma vez.
No próximo artigo da série, exploraremos Docker para desenvolvedores frontend,
aprendendo a containerizar uma aplicação Angular com Dockerfile multi-stage e a gerir
ambientes de desenvolvimento com Docker Compose.