- ❤️ 8+ anos de experiência em desenvolvimento moderno;
- 🎓 Bacharel em Engenharia de Computação;
- 🎓 Pós-graduado em Arquitetura de Software Distribuído - PUC MINAS;
- ☂️ Go Expert FULL CYCLE;
- Focado nas stacks NodeJs, Go e Java
- ✝️ Professante da fé em Jesus Cristo (meu único Senhor e Salvador);
- 🍖 Fã de churrasco, fez um? me chama! 🔥
- NodeJs / NestJs / Typescript / Javascript;
- GoLang;
- Java;
- RabbitMQ / Kafka;
- gRPC;
- TypeORM / Prisma / Mongoose / Redis / SQL;
- GraphQL;
- Python;
- AWS (S3, DocumentDB, Cognito);
- Elasticsearch;
- VueJs 2e3 / Vuetify / Vuero / Pinia / Casl;
- Angular
+ Sobre
- Atuação em ambientes com adoção de metodologias ágeis;
- Atuação em ambientes de pressão com grande volume de dados financeiros;
- Banco de dados relacional e NoSql;
- Experiência em desenvolvimento em arquitetura de microsserviços;
- Experiência em API Manager (Linkapi);
- Experiência na criação de componentes reutilizáveis;
- Experiência na utilização de conceitos DDD;
- SOLID / Clean Architecture;
- Experiência em desenvolvimento de códigos guiado a testes (TDD);
- Git / Gitflow / Conventional Commit;
- UML;
- BPMN;
- Docker;
- Sonarlint;
- Sentry;
- keycloak / Cognito (AWS);
- Documentação de APIs;
- Compreensão de CI/CD;
- Jira / Bitrix24 / GitLab.
Técnicas de desenvolvimento utilizadas
- Fail first;
- Padronização de commits (conventional commits);
- Versionamento de módulos para facilitação de refatorações;
- Modelagem de entidades ricas com tratamento de exceções (Either) (DDD);
- Desenvolvimento guiado a interfaces;
- Chaveamento nas injeções de dependências utilizando o padrão strategy;
- Persistência dos dados em memória para facilitação dos testes unitários;
- Tratamento de exceções personalizados;
- Utilizações dos padrões Adapter, Build, Strategy, Barrels, Dto, Factory;
- Utilização dos pipes validations para validação de dados nos DTOs;
- Camada de repositórios com ORM TypeORM;
- Versionamento do banco de dados, através das migrations;
- Criação dos index nas colunas através das migrations;
- Mappers para realizar as conversões de dados;
- Variáveis de ambiente;
- Interceptadores para criação dos logs da aplicação;
- Decorators personalizados;
- Testes unitários com o Jest, guiado pelo coverage reports;
- Utilização de bibliotecas para transpilar o código mais rapidamente;
- Rate Limit;
- Swagger;
- Filas com o Kafka e RabittMQ;
- Socket.io;
- Criação de caches;
- Interceptação de erros com o sentry;
- Utilização das bibliotecas: bull, tsryng, ioredis, supertest, mongodb, sentry, moment;
- Técnica de expurgo;
Tecnologia | Link | O que resolve? |
---|---|---|
👉 Cache Parallel | Requisições externas utilizando estratégia de paralelismo. | |
👉 Fetch | Requisição externas utilizando estratégia de paralelismo com fallback. | |
👉 Upload | Upload de arquivos na AWS S3, utilizando estratégia de fallback. | |
👉 gRPC | Implementação gRPC. | |
👉 GraphQL | Implementação GraphQL. |
O que resolve?
Monitoramento da criança no ambiente escolar através de IA.
👉 Bekid é um sistema para mapeamento de emoções para o auxílio no combate ao bullying escolar. Aplicação em NodeJs e VueJs. (finalizado, online em produção)
👉 Bestore - Aplicação de venda de produtos. API REST em Java com Spring Boot e Mysql. (finalizado)
O projeto abaixo demonstra as camadas utilizadas em uma arquitetura limpa de microsserviços.
👉 Guia Clean Architecture - Guia de repasses para equipe.
👉 Guia gRPC - Guia de repasses para equipe.
👉 Guia GraphQL - Guia de repasses para equipe.
👉 Guia RabbitMQ - Guia de repasses para equipe.
👉 Guia Kafka - Guia de repasses para equipe.
👉 Implementação de um serviço em Typescript com Kafka
👉 Kafka + NestJs
👉 Kafka + NodeJs
👉 Kafka + Python
👉 Guia BFF - Guia de repasses para equipe.
Account API é um microserviço desenvolvido em Go, que utiliza um padrão arquitetural Clean Architecture.
O que resolve?
Problemas de concorrência. Multiplas consultas paralelas e densas, no banco de dados, que levam a exaustão dos recursos de processamento.
👉 MyPoint é um sistema para registro de pontos de funcionários. Aplicação utilizando microserviços, filas com o RabbitMq, NestJs, VueJs e Socket.io. (em andamento)
👉 Instalação, configuração e plugins
👉 Go routines (caso dos trabalhadores eficiêntes)
👉 Go http retry with exponential backoff
👉 Go algoritmos
👉 Go injections
👉 Go injections com Google Wire
👉 Go API ViaCEP
👉 Go encoder
👉 Go database
👉 Go clean architecture
👉 Go deploy
👉 Go validations
👉 Go env
👉 Go concorrência (Repositório de terceiro)
👉 Resiliência de chamadas HTTP com Axios Retry
👉 NodeJs Base API
👉 VueJs v3 + Pinia + ACLs Casl (finalizado)
👉 VueJs v3 + Composition api + props + emit + watch (finalizado)
👉 Socket.io com Vue/Node/Nest - Utilização de sockets com VueJs no frontend e NodeJs/NestJs no backend, estabelecendo comunicação com validação entre tokens JWT, utilizando padrão de projeto observer. ❤️ (finalizado)
👉 NestJs + Domínios Ricos Arquitetura de uma api rest com NestJs, utilizando a modelagem de domínios ricos, através da técnica value object, tratamento de exceções com either e transformações de dados utilizando os conceitos de dtos e mappers.
👉 Evasão Escolar - Aplicação para análise da ocorrência da evasão escolar em instituições públicas de nível superior. Backend desenvolvido com Typescript, NestJs, TypeORM e Postgres. (finalizado, online em produção)
👉 Tindin - Aplicação de controle de aulas ministradas. Desenvolvida em NodeJs, utilizando banco de dados MongoDB (TypeORM), com cobertura de testes (coverages), utilizando o Jest. (finalizado)
👉 Places to Know - Desenvolvida em NodeJs, com objetivo de gerar um banco de dados de fotos de locais pelo mundo. Os detalhes do projeto são a integração com uma API externa, criação de uma busca com filtro e paginação. (finalizado)
👉 Oráculo - Sistema de gerenciamento financeiro. Frontend desenvolvido em html, javascript e JQuery para empresa cliente. (finalizado)
👉 Gerente RH - Sistema de gerenciamento de funcionários. MVC desenvolvido em C# com Microsoft SQL. (finalizado)
👉 Read Txt and convert to Xlsx - Realiza a leitura de um arquivo .txt, obtém os valores, gera o arquivo .xlsx e insere os valores lidos do txt e por seguinte, realiza a formatação para o valor moeda R$. (finalizado)
👉 Get Level - Elimina o uso de vários IF e ELSE de intervalos entre valores. (finalizado)
👉 Parse DTO - Transforma as propriedades de um objeto de Camel Case para Snake Case. (finalizado)
👉 Filter Properties - Filtra as propriedades de um objeto, passando um array indicando os propriedades a serem removidas. (finalizado)
👉 MAP Enum - Técnica que utilizo para eliminar grandes quantidades de IFs no sistema. (finalizado)
👉 Todos os scripts (em andamento)
👉 Mock tests - Estudos sobre tests unitários utilizando mocks e bibliotecas nativas do NodeJs. (finalizado)
👉 Stub com mocks - Testes utilizando a técnica de stubs para simular uma requisição a uma API. (finalizado)
👉 API Rest SigIn/SigUp - Autenticação e autorização com NestJs, TypeORM, Postgres, JWT, Interceptors, Logger, Jest. (finalizado)
👉 API Rest NestJs com Prisma - API Rest utilizando o NestJs com Prisma, Swagger, Postgres, Docker compose, Seed, Validators, Transformers, Pagination, Prisma Exception Handling e Logger. (finalizado)
👉 API Rest NodeJs com Prisma - Cadastro simples de usuários com Prisma, arquitetura Package by Feature e Teste unitário com o Jest. (finalizado)
👉 Séries TV - FullStack. Estudo de caso de um fullstack em Spring Boot + Angular 12. (finalizado)
👉 Grisoli - Aplicação em uma arquitetura de microserviços utilizando NodeJs com Typescript, Spring Boot, Prisma, TypeORM, Docker, RabbitMQ, testes unitários, CI-CD com github actions. (abortado)
👉 VacinaPB - Estudo de caso TDD, desenvolvido em Typescript e NodeJs, utilizando padrões de projetos e modelagem de domínio, baseado em uma arquitetura limpa, de acordo com ensinamentos de Martin Fowler em seu livro sobre refatoração e arquitetura limpa. (finalizado)
👉 Modelgem de entidade (Tiny) - Modelagem de uma entidade em Java, utilizando Tiny. A técnica consiste em modelar uma entidade com auxílio de uma classe externa Either.java, de forma que os erros possam ser gerenciados elegantemente. (finalizado)
👉 Teste Exaustão (JMeter) - Estudo de caso de aplicação desenvolvida em Typescript + NodeJs. (finalizado)
👉 Deploy em QA e Produção - Estudo de caso de integração continua nos serviços da Codeship, deploiando em QA e em produção. (finalizado)
👉 Create releases - Estudo de caso de criaçao de releases automatizadas no Github. (finalizado)
👉 API Rest Spring Boot com MongoDB - Estudo de caso de uma api Spring Boot + MongoDB. (finalizado)
👉 Agenda de contatos - Servlets em Java. Estudo de caso de uma agenda de contatos. (finalizado)
👉 VueJs Tests - Estudo sobre testes com jest e vuetify. (finalizado)
👉 VueJs Upload XSL - Estudo sobre upload de arquivos .xsl com vuetify. 🔒 (privado) (finalizado)
👉 VueJs Checkbox - Checkbox select com vuetify. (finalizado)
👉 VueJs Select All - Select all com vuetify. (finalizado)
👉 VueJs Vuetify - Estudo sobre vuetify. 🔒 (privado) (finalizado)
👉 VueJs Geral - Estudos gerais. (finalizado)
👉 VueJs Object Change - Estudos de como alterar, deletar propriedades e realizar cópias de objetos. (finalizado)
👉 VueJs Computed - Estudo sobre computed com uma diretiva v-for, filtrando pelo status do objeto. (finalizado)
👉 VueJs Form - Estudo sobre forms. (finalizado)
👉 VueJs Route - Estudo sobre route. (finalizado)
👉 VueJs Props - Estudo sobre props. (finalizado)
👉 VueJs Slots - Estudo sobre slots. (finalizado)
👉 VueJs Component Dinamic - Estudo sobre componentes dinâmicos. (finalizado)
👉 VueJs Vuex - Estudo sobre o estado compartilhado vuex. (finalizado)
👉 VueJs Vuex v2 - Estudo sobre o estado compartilhado vuex v2. (finalizado)
👉 VueJs Axios - Estudo sobre o vuejs com o axios. (finalizado)
👉 Vuejs Todo + Localstorage - Estudo de caso de um todo de tarefas. (finalizado)
👉 Vuejs Burguer - Estudo de caso de venda de hamburguers. (finalizado)
👉 Vuejs Refs By Copy - Estudo sobre passagem por cópia e por referência. (finalizado)
👉 Vuejs CSS - Estudo sobre css. (finalizado)
👉 Vuejs Filters - Estudo sobre filters. (finalizado)
👉 Vuejs Mixins - Estudo sobre mixins. (finalizado)
Foto | Descrição |
---|---|
👉 Sistemas Embarcados - Projeto final da disciplina de Sistemas Embarcados em Engenharia de Computação, IFPB. (finalizado) |
|
👉 Prototipagem - Projeto final da disciplina de Prototipagem em Engenharia de Computação, IFPB. (finalizado) |
Os autores citados abaixo são fontes de referências em minha jornada de estudo e trabalho, na maioria deles, participei de cursos que serviram de base para aprofundar meus conhecimentos.
- Tiago Matos (VueJs 3, Composition API, Pinia)
- João Rangel (NestJs)
- Diego Fernandes (NestJs, Microserviços e RabbitMQ)
- Stephany Henrique (GoLang)
- Otávio Augusto Gallego (GoLang)
- Ellen körbes (GoLang)
- Fernando Daciuk (Javascript e Git avançado)
- Fernando Amaral (Kafka)
- Wesley Willians (Kafka, GoLang)
- Loiane Groner (Angular)
- Leonardo Moura (VueJs, Docker, Typescript e GraphQL)
- Matheus Battisti (Docker, Kubernetes e VueJs)
- Nélio Alves (Spring Boot)
- AlgaWorks (Spring Boot e Angular)
- Otávio Lemos (Arquitetura e TDD com Typescript)
- Ruan Delgado (Algoritmos e dicas de estudo)
- Fábio Akita (Dicas de estudo Pragmático)
- Rocketseat (Stack backend NodeJs)
- Henrique Cunha (Algoritmos)
- César Vasconcelos (Java)
- Otávio Miranda (Padões de projeto com Typescript)
- Erick Wendel (NodeJs avançado)
- Linux Tips (Linux, Docker e Kubernetes)
- Dev Soltinho (Javascript, Git)
- Claudson Oliveira (Trabalho no exterior, GoLang)
- Rodrigo Branas (Javascript)
- Jonathan Baraldi (DevOps com Rancher, AWS e GCP)
- Codar.me (NodeJs)
- Plínio Naves (VueJs & Vuetify)
- Victor Hugo Negrisoli (Microserviços)