Hi, I am Gabriel Calegari
I have a Master’s degree in Computer Science at Federal University of Minas Gerais [Brazil, 2019] and a bachelor’s degree in Computer Engineering at Federal Center of Technological Education of Minas Gerais [Brazil, 2015]. In 2014, I completed a split graduation in Informatics Engineering, at Pompeu Fabra University, Barcelona, Spain.
I have more than 9 years of experience as a Software Engineer, in analysis and development activities, acting as a fullstack [with more focus on backend], using agile methods, DevOps culture and .NET technologies.
I invite you to learn more about my professional and academic experiences on this page.
Experiences
Farfetch
Porto, PortugalSenior Software Engineer
- I worked at Farfetch Platform Solutions (FPS) on the Discovery Backend Team. The team was responsible for providing a service layer to the fashion brands to use the Farfetch technologies concerning the Product Listing Pages (PLP), Product Detail Page (PDP), Bag, Wishlists, and several other operations that happen before an order.
- Coordination of business and technical initiatives, creation of REST APIs in .NET C#, code review, documentation.
- Actively promoted the adoption of Behavior-driven design (BDD) in the specification of user stories, resulting in more accurate specifications, greater test coverage and team satisfaction.
- .NET Core
- Microservices
- CI/CD
- Kubernetes
- MongoDB
- Unit Tests
Zup Innovation & Technology
Belo Horizonte, MG, BrasilTechnical Lead
- Technical Lead for the Customer Relationship Platform of a big brazilian bank with a focus on modernizing it – migration from a Desktop App to a Cloud Native app on AWS.
- The overall architecture of this project consisted of micro-frontends written in Angular (v12), micro-services written in .NET 3.1 acting as Backend for Frontends (BFF), hosted on an AWS ECS cluster as Docker containers and exposed through the AWS API Gateway. I provided technical coordination in all stages of migration of various modules, such as Open Finance, Investment Dashboard, and Bank Statement.
- Support on technical team career development, providing feedback and suggesting learning paths.
- Development and Operationalization of Strategies for Accelerating Software Delivery – weekly team training; use of the SQALE method for managing technical debts; promoted the use of behavior-driven design (BDD) in the user stories; included mock servers for integration testing.
- Leadership
- Management
- .NET Core
- Microservices
Zup Innovation & Technology
Belo Horizonte, MG, BrazilSenior Developer
- Senior Software Developer consultant for the Customer Relationship Platform of a big brazilian bank with a focus on modernizing it – migration from a Desktop app to a Cloud Native app on AWS.
- Development of backend solutions with REST APIs in .NET Core 3.1. Most of these services were built as Backend for Frontend (BFF), caching, filtering, aggregating, and transforming data from other systems to provide endpoints to micro-frontends. Nevertheless, some other services were domain-specific for the Customer Relationship Platform, one of them was the service for Agent-based Customer Authentication for the Private Pension Plan module, which required also a database (AWS DynamoDB). These backend solutions were written using a Clean Architecture approach.
- Code review and documentation.
- Development of Infrastructure as code to host applications in AWS, as well as the CI/CD pipelines.
- DevOps
- .NET Core
- Docker
- AWS Cloud Services
- Infra as code
Rumo Soluções
Belo Horizonte, MG, BrazilSenior Developer-Analyst
- Senior Software Developer consultant at a brazilian bank that provides payroll lending services.
- Development of REST APIs in .NET Core 3.1 for the B2C web app to simulate and hire lending services. The applications were hosted in Kubernetes. We used CI/CD pipelines through Azure DevOps.
- Code review and documentation.
- Backend
- ASP.NET Core
- C#
- CI/CD
- Docker
- Kubernetes
- Agile Methodology
- Unit Tests
Symplicity Brasil
Belo Horizonte, MG, BrazilSoftware Engineer
- Software Engineer at Contratanet team, a career services platform largely used in Brazil. Its main features are focused on providing an Internship Management module, as well as a job search module.
- Development of full-stack solutions using .NET (Framework 4.7.1, Core 2.1) and Angular (v1 and v2). The overall architecture consisted of a multi-tenant monolith, but some new modules were built as independent services. We used SQL Server as the main database, ElasticSearch for fuzzy-text search, and Redis for caching.
- Developed technical leadership on the document digital signature and internationalization projects.
- 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, BrazilTeaching Internship: Numerical Calculus
- Individual assistance to students to solve doubts, correct exercises and apply tests.
- Internship took place in the Numerical Calculus class of the undergraduate course in Computer Science at UFMG.
- Teaching
- Numerical Calculus
SYDLE
Belo Horizonte, MG, BrazilSoftware Engineer
- Software Engineer at Contratanet team. Contratanet was acquired by Symplicity Corporation.
- Development of full-stack solutions using .NET (Framework 4.7.1, Core 2.1) and Angular (v1 and v2).
- Started as a trainee in the company and was made permanent as a software engineer after a year of work.
- Fullstack
- HTML
- Angular
- JavaScript
- SCSS
- ASP.NET Full
- C#
- SCRUM
- SQL Server
- Redis
- Elasticsearch
- AWS Cloud Services
Herta Security
Barcelona, SpainIntern in Software Engineer
- Design and development of integration between Herta’s facial recognition software and third-party applications.
- It consisted of a Windows Forms app to configure and start the integration of recognition and identification alarms triggered by Herta’s software via SOAP Web Services.
- C#
- .NET Framework
- Windows Forms
- Webservices
Centro Federal de Educação Tecnológica de Minas Gerais/FAPEMIG
Scientific research: Visualization of Object-Oriented Software
- Research and development of a graphical visualization application for object-oriented software.
- The application allows to see the dependency relationships between classes of object-oriented software under the Little House topology.
- The research generated a publication.
- Research
- Development
- Scientific methodology
Centro Federal de Educação Tecnológica de Minas Gerais
Tutor: Object-Oriented Programming
- Assistance to undergraduate students in Computer Engineering regarding to the concepts of Object-Oriented Programming.
- The practical classes took place using the Java language.
- Teaching
- Object-Oriented Programming
- Java
Publications
Abstract
Collaboration is an activity present in different organizations and biological levels, and has been the object of study in several areas of science, especially biology. In recent years, a human collaboration system has gained notoriety: collaborative software development networks. Among many web portals dedicated to the topic, GitHub is the most popular of them. In this work, we focus on GitHub to analyze the collaborative development of software, adapting the biological concept of ecosystem in order to obtain a complementary view in relation to those obtained with the methodologies practiced in the literature. This analysis seeks to understand the main characteristics of collaborative ecosystems on GitHub and if there are similarities between them.
Abstract
Developing and keeping the software systems with high quality are difficult tasks. The low understanding of the software structures and the complexity of analysing the impacts of changes in a software system are important impediments to a software evolve without substantial deteriorations. The graphical visualization of the system and its properties – modules, relationship between modules, metrics of modules, metrics of relationships between modules – may allow to better identify possible needs for refactoring, therefore, attenuate the process of deterioration. Aiming to contribute to overcome this issue, a previous work of one of the authors of this paper has defined a model, called Little House, which consists of a macroscopic picture of the object-oriented software structures, based on the bow-tie model that describes the Web. Little House represents a software system as a network which can be partitioned in 6 components. The goal of this work is to develop algorithms to this model andcreate a software visualization tool that shows the software networks based in Little House.