Meus conhecimentos como programador Back-End
Nodejs
- Testes Unitários: Experiência profissional com Vitest para testar funções, serviços e lógica de negócio de forma isolada.
- Testes End-to-End (E2E): Criação e manutenção de testes E2E com Playwright, cobrindo fluxos críticos como checkout, autenticação e integrações em ambiente isolado.
- Supertest: Utilizado para testar endpoints HTTP, validando rotas, middlewares e respostas da API.
- Testes de Integração: Experiência em testar integrações entre serviços, validando fluxos completos de dados e comunicação entre sistemas.
- Cobertura de Testes: Foco em aumentar a confiabilidade das entregas através de testes automatizados, especialmente em fluxos críticos de produto.
- Ambiente Isolado: Configuração de ambientes de teste isolados, garantindo que testes não interfiram entre si ou com produção.
- Fastify: Experiência profissional desenvolvendo APIs RESTful com Fastify, aproveitando sua performance superior e sistema de plugins extensível.
- Express: Conhecimento em Express.js para desenvolvimento de APIs RESTful e integração com serviços externos.
- ElysiaJS: Experiência com framework moderno baseado em Bun, focado em performance e TypeScript-first.
- SOLID: Aplicação prática dos princípios de design para criar código sustentável e flexível em projetos profissionais.
- Clean Architecture: Estrutura para separar as responsabilidades e manter o código organizado, aplicada em projetos de produção.
- DDD (Domain-Driven Design): Abordagem para modelar complexidade de domínios, especialmente em sistemas multi-tenant.
- Padrões de Design: Familiaridade com Factory Pattern, Repository Pattern e outros padrões para criar código eficiente e manutenível.
- JWT (JSON Web Tokens): Experiência com tokens de autenticação para segurança de aplicações.
- OAuth: Implementação para integração com provedores de autenticação como Google, Facebook, etc.
- Docker: Containerização de aplicações para ambiente de desenvolvimento e básico de dockerização.
- Projeto dockerizado Mini Marketplace
- Redis: Uso para melhorar a performance de leitura de dados.
- PostgreSQL: Experiência profissional com banco de dados relacional poderoso e confiável em ambiente de produção.
- MySQL: Conhecimento em banco de dados relacional amplamente utilizado, trabalhando com schemas complexos e queries otimizadas.
- Drizzle ORM: Experiência profissional utilizando Drizzle como ORM principal, com type-safety completo, migrations automatizadas e queries tipadas. Trabalho com schemas modulares e relações bem definidas.
- Prisma: Conhecimento em ORM para Node.js que facilita a interação com bancos de dados relacionais, com suporte a migrations e type-safety.
- Queries Otimizadas: Experiência em otimização de queries complexas, uso de índices e análise de performance em ambiente multi-tenant.
- Mapa relacional de Banco
- Entendimento de como fazer build e deploy de aplicações Nodejs
- Ferramentas como Render para deploy de aplicação Nodejs
- Supabase para hospedagem de banco de dados
- Git: Sistema de controle de versão para gerenciamento de código-fonte, com experiência em workflows colaborativos, code review e resolução de conflitos.
- GitHub: Trabalho com pull requests, issues e gerenciamento de projetos em equipe.
- Webhooks: Experiência profissional implementando e consumindo webhooks para integração com marketplaces externos (Tray, Loja Integrada, Nuvemshop) e serviços de terceiros.
- Callbacks Assíncronos: Trabalho com processamento assíncrono de callbacks, garantindo confiabilidade e retry em caso de falhas.
- Integrações com Marketplaces: Desenvolvimento de integrações completas com plataformas de e-commerce, incluindo sincronização de produtos, pedidos e estoque.
- Antifraude B2e: Integração com serviços de antifraude para validação de transações e análise de risco.
- Serviços de Frete: Integração com APIs de cálculo de frete (Frenet), incluindo tratamento de erros e fallbacks.
- APIs RESTful: Desenvolvimento e consumo de APIs RESTful, seguindo boas práticas de design e documentação.
- Tratamento de Erros: Implementação robusta de tratamento de erros em integrações, com logging adequado e notificações.
- OpenSearch: Experiência profissional trabalhando com OpenSearch para indexação e busca de produtos em plataforma de e-commerce, garantindo performance e relevância nas buscas.
- Indexação de Dados: Implementação de processos de indexação de produtos, mantendo sincronização entre banco de dados relacional e OpenSearch.
- Busca Avançada: Desenvolvimento de queries complexas no OpenSearch, incluindo filtros, agregações e ordenação por relevância.
- Consistência de Dados: Garantia de consistência entre listagens de produtos e detalhes, sincronizando dados entre MySQL e OpenSearch.
- Fallback para MySQL: Implementação de estratégia de fallback para busca em MySQL quando OpenSearch não está disponível.
- Performance de Busca: Otimização de queries de busca para garantir resposta rápida mesmo com grandes volumes de dados.
- Arquitetura Multi-Tenant: Experiência profissional trabalhando em plataforma de e-commerce multi-tenant, onde cada marketplace possui isolamento completo de dados e configurações.
- Filtragem por Marketplace: Sempre filtrar queries por marketplace_id, garantindo isolamento de dados entre diferentes tenants.
- Identificação de Tenant: Implementação de lógica para identificar marketplace através de domínio ou contexto, injetando marketplace_id em todas as operações.
- Schemas Multi-Tenant: Trabalho com schemas de banco de dados que suportam multi-tenancy, sempre incluindo marketplace_id nas tabelas críticas.
- Cache Multi-Tenant: Implementação de estratégias de cache considerando o contexto multi-tenant, evitando vazamento de dados entre marketplaces.
- Performance Multi-Tenant: Otimização de queries e índices considerando o contexto multi-tenant, garantindo performance mesmo com múltiplos marketplaces simultâneos.
- Migrações Multi-Tenant: Experiência em criar e executar migrations que respeitam o isolamento multi-tenant, aplicando mudanças de forma segura.