Portfólio
Essa página é uma coletânea dos trabalhos que produzi ou que participei ao longo do tempo. Tem coisa acadêmica, tem podcast, tem live coding, tem aulas e tem código. Reuni tudo aqui para ficar mais fácil compartilhar e também para eu mesmo conseguir encontrar quando precisar. Os assuntos se conversam bastante entre si: sistemas distribuídos, paralelismo, mensageria e LLM acabam se misturando no dia a dia.
Trabalhos acadêmicos
Dissertação de mestrado UFSC (2024)
Explorando paralelismo e desacoplamento no desenvolvimento de um serviço de log para aplicações utilizando replicação de máquina de estados
Essa é minha dissertação de mestrado, defendida na UFSC. A ideia central foi propor uma técnica para reduzir o custo dos mecanismos de persistência em replicação de máquina de estados (SMR). A proposta desacopla a persistência das réplicas e do protocolo de comunicação, introduzindo processos chamados loggers que podem ser compartilhados entre diferentes aplicações. Nos experimentos, foi possível observar ganhos de até 70% de vazão em cenários com uso intensivo de I/O, até 60% em casos com alto uso de memória e uma redução de até 55% nos custos financeiros quando o serviço é compartilhado entre várias aplicações SMR independentes.
Acessar a dissertação no repositório da UFSC
Artigo no LADC ‘23 (ACM)
Joining Parallel and Partitioned State Machine Replication Models for Enhanced Shared Logging Performance
Artigo publicado no 12th Latin-American Symposium on Dependable and Secure Computing (LADC ‘23), em coautoria com Luiz Gustavo C. Xavier e Odorico M. Mendizabal. Esse trabalho conversa diretamente com a dissertação, sendo um dos resultados publicados durante o mestrado. Aqui exploramos a junção dos modelos paralelo e particionado de replicação de máquina de estados para melhorar a performance de um serviço de log compartilhado. Para quem gosta de sistemas distribuídos, performance e desafios de concorrência, é uma leitura que vale a pena.
Acessar o artigo na ACM Digital Library
Repositórios relacionados ao mestrado
parallel-state-machine-replication-simulator: simulador que compara três formas de tratar replicação de máquina de estados (sem paralelismo, por grafos e por bitmaps), feito originalmente para a disciplina de Computação Paralela.shared-logger-client: cliente Java do serviço de log compartilhado, parte do projeto que serviu de base para a dissertação e para o artigo do LADC ‘23.
Participações em podcasts e lives
Podcast do Carlos Nogueira sobre LLM
Bati um papo com o Carlos Nogueira sobre LLM, agentes de IA e como tudo isso vem afetando o dia a dia da galera que desenvolve. A conversa segue na mesma linha do que já escrevi aqui no blog sobre uso saudável de LLMs.
Live coding com diferentes sistemas de mensageria usando Quarkus
Uma live em que mostro, na prática, como integrar diferentes sistemas de mensageria utilizando o Quarkus. Se você gosta dos posts sobre Quarkus com Kafka e Quarkus com RabbitMQ, aqui dá pra ver tudo isso funcionando ao vivo.
Série de aulas sobre threads em Java
Gravei uma série de aulas sobre threads em Java cobrindo desde o básico de concorrência até detalhes mais avançados. É um assunto que se conecta diretamente com o que estudei no mestrado e com tudo que envolve paralelismo e sistemas concorrentes. Recomendo seguir a ordem dos vídeos para não se perder.
Aula 1
Aula 2
Aula 3
Aula 4
Aula 5
Projetos no GitHub
Projetos pessoais
url-shortener: encurtador de URL escrito em Rust como projeto de estudo. O foco está menos na regra de negócio e mais em explorar a linguagem, suas libs e diferentes abordagens.samsung-watch-plex-client: cliente Plex para Samsung Galaxy Watch (Wear OS) feito como experimento de vibe coding com Claude Code. É um caso prático do que discuto nos posts sobre uso saudável de LLMs e considerações sobre IA.
Códigos do blog
blog-posts-code: exemplos de código dos posts publicados aqui, úteis pra acompanhar quando o post traz trechos parciais.lucasscharf.github.io: sim, você pode estudar o código. Pode copiar, pode fazer o que quiser (só não pode comitar :v).