Olá, eu sou Gabriel Calegari
Sou mestre em Ciência da Computação pela Universidade Federal de Minas Gerais [UFMG, 2019] e graduado em Engenharia de Computação pelo Centro Federal de Educação Tecnológica de Minas Gerais [CEFET-MG, 2015]. Em 2013, realizei uma graduação-sanduíche em Engenharia Informática, na Universitat Pompeu Fabra, Barcelona, Espanha.
Tenho mais de 9 anos de experiência como Engenheiro de Software, em atividades de análise e desenvolvimento, atuando como fullstack [com mais foco em backend], utilizando métodos ágeis, cultura DevOps e tecnologias .NET.
Convido você a conhecer um pouco mais das minhas experiências profissionais e acadêmicas nesta página.
Experiências
Farfetch
Porto, PortugalEngenheiro de Software Sênior
- Atuei na unidade de negócios Farfetch Platform Solutions (FPS), na equipe Discovery Backend. A equipe era responsável por fornecer uma camada de serviço às marcas de moda para utilização das tecnologias Farfetch no que diz respeito às páginas de listagem de produtos (PLP), página de detalhes do produto (PDP), carrinho de compras, listas de desejos e diversas outras operações que acontecem antes de um pedido.
- Coordenação de iniciativas de negócio e técnicas, criação de APIs REST em .NET C#, revisão de código, documentação.
- Ativamente promovi a adoção de Behavior-driven design (BDD) na especificação de histórias de usuário, resultando em especificações mais precisas, maior cobertura de testes e satisfação da equipe.
- .NET Core
- Microsserviços
- CI/CD
- Kubernetes
- MongoDB
- Testes de unidade
Zup Innovation & Technology
Belo Horizonte, MG, BrasilLíder Técnico
- Consultoria como Líder Técnico da Plataforma de Relacionamento com Clientes de um grande banco brasileiro com foco em modernização – migração de um aplicativo Desktop para um aplicativo Cloud Native na AWS.
- A arquitetura geral deste projeto consistiu em micro-frontends escritos em Angular (v12), micro-serviços escritos em .NET 3.1 atuando como Backend for Frontends (BFF), hospedados em um cluster AWS ECS como contêineres Docker e expostos através do AWS API Gateway. Forneci coordenação técnica em todas as etapas de migração de diversos módulos, como Open Finance, Painel de Investimentos e Extrato Bancário.
- Apoio no desenvolvimento de carreira da equipe técnica, fornecendo feedback e sugerindo caminhos de aprendizagem.
- Desenvolvimento e Operacionalização de Estratégias para Aceleração de Entrega de Software –- treinamentos semanais da equipe; utilização do método SQALE para gestão de dívidas técnicas; promovi o uso de behavior-driven design (BDD) nas histórias de usuários; incluí mock servers para testes de integração.
- Liderança
- Gestão
- .NET Core
- Microsserviços
Zup Innovation & Technology
Belo Horizonte, MG, BrasilDesenvolvedor Sênior
- Consultor Desenvolvedor de Software Sênior para a Plataforma de Relacionamento com o Cliente de um grande banco brasileiro com foco em modernização - migração de um aplicativo Desktop para um aplicativo Cloud Native na AWS.
- Desenvolvimento de soluções backend com APIs REST em .NET Core 3.1. A maioria desses serviços foi construída como Backend for Frontend (BFF), armazenando em cache, filtrando, agregando e transformando dados de outros sistemas para fornecer endpoints para micro-frontends. Porém, alguns outros serviços eram específicos de domínio para a Plataforma de Relacionamento com o Cliente, um deles era o serviço de Autenticação de Clientes Baseada em Agente para o módulo de Previdência Privada, que exigia também um banco de dados (AWS DynamoDB). Essas soluções de backend foram escritas usando uma abordagem de Arquitetura Limpa.
- Revisão de código e documentação
- Desenvolvimento de Infraestrutura como Código para hospedar aplicações na AWS, bem como pipelines de CI/CD.
- DevOps
- .NET Core
- Docker
- AWS Cloud Services
- Infraestrutura como código
Rumo Soluções
Belo Horizonte, MG, BrasilAnalista Desenvolvedor Sênior
- Consultor desenvolvedor de software sênior em banco brasileiro que oferece serviços de crédito consignado.
- Desenvolvimento de APIs REST em .NET Core 3.1 para aplicação web B2C para simulação e contratação de serviços de empréstimo. As aplicações eram hospedadas no Kubernetes. Usamos pipelines de CI/CD por meio do Azure DevOps.
- Revisão de código e documentação.
- Backend
- ASP.NET Core
- C#
- CI/CD
- Docker
- Kubernetes
- Metodologia ágil
- Testes de unidade
Symplicity Brasil
Belo Horizonte, MG, BrasilEngenheiro de Software
- Engenheiro de Software na equipe Contratanet, plataforma de serviços de carreira amplamente utilizada no Brasil. As suas principais funcionalidades centram-se na disponibilização de um módulo de Gestão de Estágios, bem como de um módulo de procura de emprego.
- Desenvolvimento de soluções full-stack utilizando .NET (Framework 4.7.1, Core 2.1) e Angular (v1 e v2). A arquitetura geral consistia em um monólito multilocatário, mas alguns novos módulos foram construídos como serviços independentes. Usamos SQL Server como banco de dados principal, ElasticSearch para pesquisa de texto difuso e Redis para armazenamento em cache.
- Desenvolvi liderança técnica nos projetos de assinatura digital e internacionalização de documentos.
- Fullstack
- HTML
- Angular
- JavaScript
- SCSS
- ASP.NET Full
- ASP.NET Core
- C#
- SCRUM
- SQL Server
- Redis
- Elasticsearch
- AWS Cloud Services
Universidade Federal de Minas Gerais
Belo Horizonte, MG, BrasilEstagiário em docência: Cálculo Numérico
- Atendimento individual aos alunos para solução de dúvidas, correção de exercícios e aplicação de provas.
- Estágio ocorreu alocado na turma de Cálculo Numérico do curso de graduação em Ciência da Computação da UFMG.
- Docência
- Cálculo Numérico
SYDLE
Belo Horizonte, MG, BrasilEngenheiro de Software
- Engenheiro de Software na equipe Contratanet. A Contratanet foi adquirida pela Symplicity Corporation.
- Desenvolvimento de soluções full-stack utilizando .NET (Framework 4.7.1, Core 2.1) e Angular (v1 e v2).
- Comecei como estagiário na empresa e me tornei permanente como engenheiro de software após um ano de trabalho.
- Fullstack
- HTML
- Angular
- JavaScript
- SCSS
- ASP.NET Full
- C#
- SCRUM
- SQL Server
- Redis
- Elasticsearch
- AWS Cloud Services
Herta Security
Barcelona, EspanhaEstágio em Engenharia de Software
- Design e desenvolvimento de integração entre o software de reconhecimento facial da Herta com aplicações de terceiros.
- A aplicação desenvolvida foi escrita em Windows Forms para configurar e iniciar a integração dos alarmes de reconhecimento facial disparados pelo software Herta via web services SOAP.
- C#
- .NET Framework
- Windows Forms
- Webservices
Centro Federal de Educação Tecnológica de Minas Gerais/FAPEMIG
Iniciação Científica: Visualização de Software Orientado a Objetos
- Pesquisa e desenvolvimento de uma aplicação de visualização gráfica de software orientado a objetos.
- A aplicação permite ver as relações de dependência entre classes de um software orientado a objetos sob a topologia Little House.
- A pesquisa gerou uma publicação.
- Pesquisa
- Desenvolvimento
- Método científico
Centro Federal de Educação Tecnológica de Minas Gerais
Tutor: Programação Orientada a Objetos
- Assistência aos alunos do curso de graduação em Engenharia de Computação com relação aos conceitos de Programação Orientada a Objetos.
- As aulas práticas ocorreram utilizando a linguagem Java.
- Docência
- Programação Orientada a Objetos
- Java
Publicações
Resumo
A colaboração é uma atividade presente em diferentes organizações e níveis biológicos, e tem sido objeto de estudo de diversas áreas da ciência, sobretudo a biologia. Nos últimos anos, um sistema de colaboração humano ganhou notoriedade: as redes de desenvolvimento colaborativo de software. Entre muitos portais Web dedicados ao tema, o GitHub é o mais popular deles. Neste trabalho, focamos no GitHub para analisar o desenvolvimento colaborativo de software, adaptando o conceito biológico de ecossistema com o objetivo de obter uma visão complementar com relação às obtidas com as metodologias praticadas na literatura. Esta análise busca entender as principais características dos ecossistemas de colaboração no GitHub e se existem semelhanças entre eles.
Resumo
Desenvolver e manter softwares com qualidade constituem-se tarefas difíceis. A baixa compreensão das estruturas de software e a complexidade de analisar os impactos de alterações são obstáculos para que um software evolua sem grandes deteriorações. Visualizar graficamente o sistema e suas características permitiria identificar mais facilmente possíveis necessidades de reestruturação do software e, com isso, amenizar seu processo de deterioração. Buscando contribuir com um recurso desta natureza, em um trabalho anterior de um dos autores do presente artigo, foi desenvolvido um modelo, denominado Little House, que consiste em uma figura macroscópica genérica das estruturas de software orientado a objetos, baseado no modelo bow-tie que descreve a web. Little House modela o software como uma rede que pode ser particionada em 6 componentes. O objetivo deste trabalho ́e desenvolver algoritmos de particionamento para o modelo Little House e criar uma ferramenta de visualização de software que exiba as redes de software para esse modelo.