🎖️ Conhecimentos

HTML

Brasão html
Brasão html

Sou estudante de Engenharia de Software e desenvolvedor em formação, com foco na construção de aplicações web estruturadas e responsivas.

Tenho conhecimento em HTML semântico, aplicando corretamente tags como header, main, section, article, aside, nav e footer para organizar o conteúdo de forma clara, acessível e otimizada para SEO.

Estruturo layouts com mentalidade mobile-first, compreendendo que o mobile não é uma versão reduzida do desktop, mas a base da aplicação. Desenvolvo o HTML pensando na estrutura principal e utilizo CSS (Grid e Flexbox) para expandir a experiência em telas maiores.

Possuo entendimento sobre organização de componentes, separação de responsabilidades e estrutura limpa de código, buscando sempre clareza, manutenção simples e escalabilidade.

Estou em constante evolução, aprimorando minha capacidade de transformar layouts em interfaces bem estruturadas, acessíveis e alinhadas às boas práticas da web.

CSS

Brasão css
Brasão css

Possuo conhecimento em CSS moderno, aplicando boas práticas para construção de layouts organizados, responsivos e reutilizáveis.

Trabalho com abordagem mobile-first, estruturando primeiro a experiência para dispositivos móveis e expandindo para telas maiores utilizando media queries de forma estratégica.

Utilizo CSS Grid e Flexbox para criação de layouts complexos, compreendendo a diferença entre organização estrutural (Grid) e alinhamento/distribuição (Flexbox).

Tenho experiência na criação de componentes reutilizáveis, organização modular de arquivos (como separação por componentes e importação em arquivo principal) e aplicação consistente de espaçamentos, sombras, bordas e tipografia.

Também entendo a importância da hierarquia visual, responsividade e manutenção do código, buscando sempre clareza, escalabilidade e padronização no estilo da aplicação.

JavaScript

Brasão javascript
Brasão javascript

Possuo conhecimento fundamental em JavaScript, com foco na compreensão da lógica de programação e manipulação básica do DOM.

Desenvolvi aplicações simples para praticar conceitos como variáveis, condicionais, estruturas de repetição e funções, consolidando a base necessária para evolução na linguagem.

Meu foco atual está no fortalecimento da lógica e na escrita de código claro e organizado, priorizando boas práticas e entendimento da base da linguagem antes de avançar para frameworks.

Java

Brasão java
Brasão java

Possuo conhecimento em Java com foco no desenvolvimento backend e construção de APIs REST. Trabalho aplicando os princípios da programação orientada a objetos (POO), utilizando encapsulamento, herança, polimorfismo e abstração na modelagem de entidades e regras de negócio.

Tenho experiência na criação de APIs utilizando o ecossistema Spring, estruturando aplicações em camadas bem definidas (Controller, Service e Repository), compreendendo a importância da separação de responsabilidades e organização do código para facilitar manutenção e escalabilidade.

Git

Brasão git
Brasão git

Utilizo o Git como ferramenta central de versionamento, organizando meus projetos de forma estruturada e segura.

Tenho conhecimento em controle de versões distribuído, aplicando corretamente, conceitos como commit, branch, merge, pull e push para manter histórico claro, rastreável e confiável.

Estruturo meu fluxo com mentalidade controle incremental, compreendendo que cada commit deve representar uma unidade lógica de alteração. Escrevo mensagens descritivas e utilizo branches para desenvolvimento isolado, garantindo organização e estabilidade do código principal.

Possuo entendimento sobre versionamento colaborativo, resolução de conflitos e boas práticas de integração, buscando sempre clareza no histórico, rastreabilidade e manutenção eficiente do projeto.

Busco continuamente formas mais eficientes e organizadas de trabalhar com versionamento, aprimorando meu fluxo e minhas práticas no dia a dia dos projetos.

Linux

Brasão Linux
Brasão Linux

Sou entusiasta em sistema Linux, com foco na compreensão e administração de ambientes baseados em software livre.

Tenho conhecimento em fundamentos do Linux, utilizando terminal para navegação no sistema de arquivos, gerenciamento de permissões, manipulação de processos e administração básica de usuários e serviços.

Estruturo ambientes com mentalidade orientada a servidores, compreendendo que estabilidade, segurança e desempenho são pilares essenciais. Configuro serviços, realizo ajustes no sistema e aplico boas práticas para manter organização e previsibilidade.

Possuo entendimento sobre estrutura de diretórios, gerenciamento de pacotes, controle de acesso e princípios de redes, buscando sempre clareza operacional, padronização e facilidade de manutenção.

Tenho paixão pelo sistema, então aprofundo meus estudos em administração de sistemas, automação e segurança para atuar com maior autonomia e eficiência em ambiente Linux.

📚 Projetos

Super Trunfo versão digital

Imagem projeto Super Trunfo
Imagem projeto Super Trunfo

Projeto desenvolvido em Java com foco em aprofundar conhecimentos em Programação Orientada a Objetos, interfaces, manipulação de arrays e controle de fluxo. A proposta foi recriar o clássico jogo Super Trunfo em ambiente de console, aplicando regras reais de jogo e modelagem orientada a objetos.


Decisão técnica intencional, mesmo podendo utilizar List, optei por trabalhar com arrays de tamanho fixo para exercitar:

  • 1- Redimensionamento manual de estruturas;
  • 2- Cópia de dados entre vetores;
  • 3- Controle explícito de memória lógica;
  • 4- Manipulação de índices.

Essa decisão tornou o projeto significativamente mais desafiador e aumentou a profundidade da solução.


Principal desafio resolvido, arrays possuem tamanho fixo. No jogo, O vencedor precisa ganhar uma carta e O derrotado precisa perder uma carta, para isso implementei uma estratégia baseada em:

  • 1- Criação de um novo array com tamanho ajustado;
  • 2- Cópia manual dos elementos;
  • 3- Inserção ou remoção da carta na posição correta;
  • 4- Rotação do baralho com méTODO específico (changeDeck);

Isso foi feito através dos seguintes méTODOs:

  • 1- earnCard;
  • 2- loseCard;
  • 3- changeDeck.

Essa abordagem simula um comportamento dinâmico utilizando uma estrutura estática.


Este projeto demonstra a aplicação sólida de Programação Orientada a Objetos, utilizando interface como contrato para definição das regras do jogo e garantindo separação clara de responsabilidades. A manipulação manual de arrays foi utilizada como exercício intencional de controle estrutural, envolvendo redimensionamento, cópia de dados e gerenciamento de índices.

O desenvolvimento também envolveu estruturas de repetição para construção e distribuição do baralho, uso de randomização para embaralhamento e escolha de atributos pela máquina, além de organização em camadas, separando dados da regra de negócio. O controle de estado do jogo foi implementado de forma explícita, assegurando coerência entre rodadas e definição de vencedor, com modelagem de domínio simples e objetiva.

Como diferencial, o projeto não depende de estruturas prontas como ArrayList, priorizando controle manual da lógica de funcionamento. A implementação inclui rotação de baralho, controle explícito do fluxo do jogo e organização do código por pacotes (entities e database), reforçando clareza estrutural e separação de responsabilidades.

De forma geral, o projeto evidencia capacidade de resolver problemas estruturais, domínio dos fundamentos da linguagem Java, organização orientada a objetos e pensamento lógico aplicado na construção de uma solução completa. Também demonstra persistência na resolução de desafios técnicos, especialmente no gerenciamento dinâmico de estruturas originalmente estáticas.

Garage Database

Imagem projeto Garage Database
Imagem projeto Garage Database

O Garage Database é uma aplicação desenvolvida com Spring Boot que implementa um sistema completo de CRUD para gerenciamento de carros, caminhões e motocicletas, utilizando JPA/Hibernate para persistência de dados e modelagem com herança (TABLE_PER_CLASS).

O diferencial do projeto está na integração com a API do Google Gemini. Durante o cadastro do veículo, a aplicação consome a API de IA generativa, que cria automaticamente uma descrição comercial persuasiva de 35 palavras, pronta para publicação.


Problema resolvido, em plataformas de venda de veículos, a criação manual de descrições é repetitiva, inconsistente e dependente da habilidade do anunciante. O sistema resolve esse problema automatizando o processo.

O usuário informa apenas os dados técnicos do veículo, e a aplicação gera um anúncio padronizado e otimizado para venda. Isso reduz esforço manual, aumenta produtividade e padroniza qualidade de anúncios.


Arquitetura e Conceitos Aplicados:

  • 1- Programação Orientada a Objetos;
  • 2- Modelagem de domínio com entidades JPA;
  • 3- Relacionamentos @ManyToOne e @OneToMany;
  • 4- Consumo de API REST utilizando HttpClient;
  • 5- Desserialização de JSON com Gson;
  • 6- Tratamento de exceções customizadas;
  • 7- Validações de regra de negócio (ano, preço, tipo de motor);
  • 8- Arquitetura em camadas (Model, Repository, Service e App);
  • 9- Uso de variáveis de ambiente para proteção da API Key.

Visão estratégica, o projeto foi idealizado como um módulo de automação para plataformas de venda de veículos. Fluxo pensado como produto:

  • 1- Usuário cadastra o veículo;
  • 2- O sistema consome IA generativa;
  • 3- O anúncio é criado automaticamente;
  • 4- Pronto para publicação.

A solução demonstra aplicação prática de IA integrada a um sistema transacional tradicional, conectando backend estruturado com inteligência artificial para geração de valor real ao usuário.

Portfólio Pessoal

Imagem projeto portifólio
Imagem projeto Portifólio

O Portfólio Pessoal é uma aplicação web desenvolvida com HTML semântico e CSS puro, estruturada com abordagem mobile-first e organização modular de estilos. A versão 1.0 foi construída com foco em:

  • 1- Estrutura semântica clara (header, main, section, footer, nav, figure);
  • 2- Separação de responsabilidades no CSS (reset, variáveis, layout e componentes);
  • 3- Uso de CSS Grid para estrutura global;
  • 4- Uso de Flexbox para alinhamentos internos;
  • 5- Aplicação de variáveis CSS :root para padronização de cores, tipografia e escalabilidade visual;
  • 6- Organização visual baseada em hierarquia e contraste (seções claras e escuras).

A versão atual pode ser verificada no rodapé da página. :)


Decisões técnicas, arquitetura Mobile-First o layout foi pensado inicialmente para dispositivos móveis, utilizando uma única coluna como base estrutural. Elementos com classe .desktop são ocultados nessa versão, preparando o projeto para expansão responsiva futura.

CSS modularizado, o CSS foi dividido estrategicamente em reset.css, variaveis.css, layout.css e componentes.css. TODOs importados via main.css, demonstrando organização e escalabilidade do projeto.

Sistema de design baseado em variáveis, a utilização de :root centraliza tokens de design como, paleta de cores, pesos tipográficos, breakpoints (mobile, tablet, desktop). Isso permite manutenção simples e evolução consistente do layout.

Estrutura preparada para evolução backend, mesmo sendo estático na v1.0, o projeto já possui, seção dedicada para artigos, estrutura pensada para cards dinâmicos, separação lógica e clara entre seções.


Próximas versões, a evolução prevista inclui integração com PostgreSQL, backend em Java (Spring) ou Node.js, sistema de artigos dinâmicos, listagem em formato de cards com preview, carregamento individual do artigo selecionado e implementação de autenticação para área administrativa.

A ideia é transformar o portfólio em uma aplicação full stack, onde o conteúdo será persistido em banco de dados e servido dinamicamente.

Script de Automação

Imagem projeto bash
Imagem projeto Bash

O projeto de Automação em Linux foi desenvolvido com foco em administração de sistemas, controle de permissões e mitigação de riscos operacionais. A proposta foi automatizar tarefas críticas utilizando scripts Bash, garantindo execução controlada e segura no ambiente.

A versão 1.0 foi construída com foco em:

  • 1- Criação de scripts Bash para automação de tarefas administrativas;
  • 2- Configuração de execução sem senha utilizando sudoers;
  • 3- Aplicação correta de permissões com chmod e chown;
  • 4- Princípio do menor privilégio na delegação de acesso;
  • 5- Validação de segurança e análise de vulnerabilidades no ambiente;
  • 6- Testes controlados em ambiente Linux para evitar impacto em produção.

O foco principal foi entender profundamente como o sistema de permissões do Linux funciona (usuário, grupo e outros), evitando risco como escalonamento indevido de privilégios.


Execução controlada sem senha, foi configurada a execução de scripts específicos via sudo sem necessidade de senha, limitando estritamente quais comandos poderiam ser executados. Isso evita a exposição total de privilégios administrativos.

Gestão de permissões e segurança, foram aplicados conceitos como permissões 700, 750 e 755 de forma estratégica, além da definição adequada de proprietário e grupo. O objetivo foi impedir acesso indevido ou modificação não autorizada dos scripts.

Verificação de vulnerabilidades, foi utilizada a ferramenta Lynis para auditoria de segurança no sistema Linux, identificando possíveis falhas de configuração, permissões excessivas e pontos de melhoria relacionados a hardening do ambiente.


Aprendizados técnicos, o projeto consolidou conhecimentos sobre:

  • Modelo de permissões do Linux (rwx);
  • Configuração segura do arquivo /etc/sudoers;
  • Hardening básico de sistemas;
  • Boas práticas de automação segura;
  • Riscos de escalonamento de privilégios.

A proposta foi ir além da simples automação, focando na execução segura e previsível, algo essencial para ambientes corporativos e infraestrutura em Cloud.


Próximas versões, a evolução prevista inclui implementação de logs estruturados, integração com monitoramento, execução via cron com controle de integridade e aplicação de práticas adicionais de hardening no sistema.

O objetivo é evoluir o projeto para um modelo mais próximo de ambientes reais de produção, consolidando a administração de sistemas e infraestrutura.