All decks Close
All decks 26
  • [AMP - ECSA 2025] Exploring Micro Frontends: A Case Study Application in E-Commerce

    This paper seeks to provide insights into when the adoption of micro frontends may be worthwhile, particularly in an industry context, considering that research in this area is still evolving. To achieve this, we conducted an investigation into the state of the art of micro frontends, based on both academic and gray literature. We then implemented this architectural style in a marketplace for handcrafted products, which already used microservices. Finally, we evaluated the implementation through a semi-open questionnaire with the developers. At the studied marketplace company, the need for architectural change arose due to the tight coupling between their main system (a Java monolith) and a dedicated frontend system. Additionally, there were deprecated technologies and poor developer experience. To address these issues, the micro frontends architecture was adopted, along with the API Gateway and Backend for Frontend patterns, and technologies such as Svelte and Fastify. Although the adoption of Micro Frontends was successful, it was not strictly necessary to meet the company’s needs. According to the analysis of the mixed questionnaire responses, other alternatives, such as a monolithic frontend, could have achieved comparable results. What made adopting micro frontends the most convenient choice in the company’s context was the monolith strangulation and microservices adoption

  • [SADIS - ECSA 2025] Making a Pipeline Production-Ready: Challenges and Lessons Learned in the Healthcare Domain

    Deploying a Machine Learning (ML) training pipeline into production requires good software engineering practices. Unfortunately, the typical data science workflow often leads to code that lacks critical software quality attributes. This experience report investigates this problem in SPIRA, a project whose goal is to create an ML-Enabled System (MLES) to pre-diagnose insufficiency respiratory via speech analysis. This paper presents an overview of the architecture of the MLES, then compares three versions of its Continuous Training subsystem: from a proof of concept Big Ball of Mud (v1), to a design pattern-based Modular Monolith (v2), to a test-driven set of Microservices (v3). Each version improved its overall extensibility, maintainability, robustness, and resiliency. The paper shares challenges and lessons learned in this process, offering insights for researchers and practitioners seeking to productionize their pipelines.

  • [SummerSOC 2025] MLOps with Microservices: A Case Study in the Maritime Domain

    This case study describes challenges and lessons learned on building Ocean Guard: a Machine Learning–Enabled System (MLES) for anomaly detection in the maritime domain. First, the paper presents the system’s specification, and architecture. Ocean Guard was designed with a microservices architecture to enable multiple teams to work on the project in parallel. Then, the paper discusses how the developers adapted contract-based design to MLOps for achieving that goal. As a MLES, Ocean Guard employs code, model, and data contracts to establish guidelines between its services. This case study hopes to inspire software engineers, machine learning engineers, and data scientists to leverage similar approaches for their systems.

  • MLOps: From Data Science to ML-Enabled Systems

  • [CAIN 2025] A Metrics-Oriented Architectural Model to Characterize Complexity on ML-Enabled Systems

    How can the complexity of ML-enabled systems be managed effectively? The goal of this research is to investigate how complexity affects ML-Enabled Systems (MLES). To address this question, this research aims to introduce a metrics-based architectural model to characterize the complexity of MLES. The goal of the metrics is to support architectural decisions, providing a guideline for the inception and evolution of these systems.

  • The Journey of CodeLab: How University Hackathons Built a Community of Engaged Students

    Slides about the paper "The Journey of CodeLab: How University Hackathons Built a Community of Engaged Students", presented during ICGJ24 - The International Conference on Game Jams, Hackathons, and Game Creation Competitions 2024, held at Copenhagen, Denmark.

  • [PhD Qualifying Exam] A Metrics-Oriented Architectural Model to Characterize Complexity on ML-Enabled Systems

  • Cloud Native Reactive Microservices Architecture

    Lecture about Cloud Native Reactive Microservice Architectures presented in the 12th CS Week at IME-USP

  • [M.Sc. Defense] An Integrated Implementation of Probabilistic Graphical Models

    Presentation for my Master's defense at IME-USP

  • Continuous Delivery for Machine Learning

    Continuous Delivery for Machine Learning is a new set of practices documented by ThoughtWorks about how to bring DevOps principles to the world of AI.

  • [M.Sc. Pre-Defense] An Integrated Implementation of Probabilistic Graphical Models

    Presentation for my Master's defense at IME-USP

  • Intelligent Systems: Machine Learning at Scale

    Intelligent Systems: Machine Learning at Scale

  • Git Avançado

    Palestra sobre técnicas de git avançadas, apresentada na USPCodeLab Summer Tech Talks 2019

  • 11 tips for a successful hackathon

    Tips to be successful at hackathons

  • 6 dicas para um pitch de sucesso

    Dicas para fazer um pitch de sucesso

  • Software Engineering vs. Data Science

    Slides for the panel "Software Engineering vs. Data Science: Challenges and Patterns" held at CBSoft 2018

  • Slides + CodeSandbox + Vue

    A test for using Slides with embedded CodeSandbox hosting a Vue app

  • Cloud Native Reactive Microservices Architecture

    Lecture about Cloud Native Reactive Microservice Architectures presented in the 10th CS Week at IME-USP

  • Wireframes MAC0350

    Wireframes made for the 2nd EP of MAC0350

  • ChatBots

    Presentation about chatter bots for the course MAC0101 (Integration in the University and in the Career) at IME-USP

  • Recursive Structures

    Presentation about recursive strutures for the course MAC0316 (Fundamental Concepts in Programming Languages) at IME-USP

  • [M.Sc. Qualifying Exam] An Integrated Implementation of Probabilistic Graphical Models

    Presentation for my Master's qualifying exam at IME-USP

  • ToPS for Developers

    Presentation about ToPS (Toolkit of Probabilistic Models of Sequences) for developers.

  • Biofuels

    Presentation about biofuels for my English course

  • Hacknizer

    Presentation about Hacknizer - a platform to organize and host hackathons.

  • 11 dicas para um hackathon de sucesso

    Dicas para ser bem sucedido em um hackathon