Giter Site home page Giter Site logo

Enéas Almeida

Sobre

  • ❤️ 7+ anos de experiência em desenvolvimento moderno;
  • 🎓 Bacharel em Engenharia de Computação;
  • ☂️ Pós-graduando em Arquitetura de Software Distribuído - PUC MINAS;
  • ☂️ Go Expert FULL CYCLE;
  • Focado nas stacks Java, Go e NodeJs;

+

  • ✝️ Professante da fé em Jesus Cristo (meu único Senhor e Salvador);
  • 🍖 Fã de churrasco, fez um? me chama! 🔥

Stacks de atuações

Backend

  • Java;
  • GoLang;
  • NodeJs / NestJs;
  • Typescript / Javascript;
  • RabbitMQ / Kafka;
  • gRPC;
  • GraphQL;
  • TypeORM / Prisma / Mongoose / Redis / SQL;
  • Python;
  • AWS (S3, DocumentDB, Cognito);
  • Elasticsearch;

Frontend

  • VueJs 2e3 / Vuetify / Vuero / Pinia / Casl;
+ Sobre
  • Atuação em ambientes com adoção de metodologias ágeis;
  • Atuação em ambientes de pressão com grande volume de dados sigilosos;
  • 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;

Algoritmos mais utilizados

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.

Bestore

👉 Bestore - Aplicação de venda de produtos. API REST em Java com Spring Boot e Mysql. (finalizado)

gRPC

👉 Guia gRPC - Guia de repasses para equipe.

GraphQL

👉 Guia GraphQL - Guia de repasses para equipe.

RabbitMQ

👉 Guia RabbitMQ - Guia de repasses para equipe.

Kafka

👉 Guia Kafka - Guia de repasses para equipe.
👉 Implementação de um serviço em Typescript com Kafka
👉 Kafka + NestJs
👉 Kafka + NodeJs
👉 Kafka + Python

BFF

👉 Guia BFF - Guia de repasses para equipe.

Clean Architecture

👉 Guia Clean Architecture - Guia de repasses para equipe.


Go Clean Architecture

Account API é um microserviço desenvolvido em Go, que utiliza um padrão arquitetural Clean Architecture.

👉 Link do projeto


MyPoint

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.

Arquitetura do sistema

👉 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)


Bekid

O que resolve?

A didática de como se conduzir um projeto documentado.

Diagrama

Desenho das telas

👉 Bekid é um sistema para mapeamento de emoções para o auxílio no combate ao bullying escolar. Aplicação monolítica com NodeJs e VueJs. (finalizado, online em produção)

GoLang

👉 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)

Nodejs

👉 Resiliência de chamadas HTTP com Axios Retry
👉 NodeJs Base API

K8s

👉 K8s
👉 Istio

VueJs 3

👉 VueJs v3 + Pinia + ACLs Casl (finalizado)
👉 VueJs v3 + Composition api + props + emit + watch (finalizado)


Socket.io

👉 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)

Arquitetura com NestJs

👉 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.


Mais APIs desenvolvidas

👉 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)

Trabalhos antigos

👉 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)

Javascript (5 últimos algoritimos desenvolvidos)

👉 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)

Estudos sobre testes com o NodeJs

👉 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)

Estudos de casos

👉 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

👉 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)

Acadêmico

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)

Meus tutores e mestres

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)

Enéas Almeida's Projects

Enéas Almeida doesn’t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.