Paulo Silva

Software Engineer specialized in product development with Ruby on Rails. I help companies turn bright ideas into amazing digital products — I've worked on InvoiceXpress, ClanHR, Today and currently sheerME.
April 4, 2025

Ruby on Rails + Hotwire (Turbo & Stimulus): My Journey Building the Today App

As an experienced Ruby on Rails developer, I’ve always enjoyed working with the framework, but there’s one area I hadn’t explored much before—Hotwire. So, I decided to dive into it by building a simple app called Today, aiming to learn how to use Turbo and Stimulus together. The Idea I started with a simple sketch on Excalidraw to visu...
Read more
March 14, 2025

Connecting sheerME with Google Fit

A couple of years ago, while working at sheerME, our development team was given three months to create an innovative feature. My idea was to integrate sheerME with Google Fit to incentivize users to stay active by rewarding them with money in their sheerME virtual wallet. The Concept Google Fit tracks physical activity and awards Heart...
Read more
March 14, 2025

Reserve with Google and the transition to Google Appointments

For a few years, sheerME had an integration with Reserve with Google, allowing users to book beauty and wellness services directly from Google Search and Google Maps. This integration, built using Ruby on Rails, enabled a seamless booking experience without leaving Google's ecosystem. However, Google eventually deprecated this integrat...
Read more
March 14, 2025

Building a Chat Feature in Ruby on Rails with Pusher

Adding a chat feature to a marketplace or platform can significantly improve user engagement. Recently, I built a chat system that allows B2C users to communicate with B2B merchants through a Ruby on Rails API, with real-time notifications powered by Pusher. Here’s how I did it. Data Model The core of the chat feature consists of two m...
Read more
March 14, 2025

Backfilling Data Safely in Ruby on Rails Migrations

Backfilling data in Ruby on Rails migrations can be tricky, especially when working with large datasets. The strong_migrations gem provides guidelines to prevent performance issues and downtime. When performing backfills, you should be mindful of three key aspects: using find_each for batching, throttling the process, and disabling tra...
Read more
March 13, 2025

Categorize Data using OpenAI's API

At sheerME, I recently developed a feature to categorize beauty and wellness services using OpenAI's API. This approach allowed us to efficiently classify services into predefined categories based on their name and description. Here’s how I implemented it in Ruby on Rails. Step 1: Real-Time Categorization with the Conversations API For...
Read more
March 8, 2025

Criar um programa simples em Ruby

Chegaste ao fim desta jornada! 🎉 Agora, é hora de pôr em prática tudo o que aprendeste num desafio final. O desafio: Criar uma lista de compras O teu desafio é construir um programa simples onde possas: 1. Adicionar um item à lista. 2. Listar todos os itens. Como fazer? Segue estes passos como guia: 1. Criar um array para armazenar os ...
Read more
March 8, 2025

Hashes: Guardar dados com chaves e valores

Até agora, aprendemos a guardar múltiplos valores em arrays. Mas e se quisermos associar um nome a cada valor? Para isso, usamos hashes! O que é um hash? Um hash é uma estrutura de dados que guarda pares de chave e valor. Criar um hash Podemos criar um hash assim: pessoa = { "nome" => "Ana", "idade" => 25, "cidade" => "Lisboa" } Aqui, ...
Read more
March 8, 2025

Métodos: Organizar o teu código

Até agora, escrevemos código diretamente dentro dos nossos programas. Mas e se quisermos reutilizar partes do código sem repeti-lo? Para isso, usamos métodos! O que é um método? Um método é um bloco de código que tem um nome e pode ser chamado sempre que necessário. Criar um método Podemos definir um método usando def seguido do nome d...
Read more
March 7, 2025

Arrays: Guardar múltiplos valores

Até agora, temos trabalhado com variáveis que guardam um único valor. Mas e se quisermos guardar vários valores juntos? Para isso, usamos arrays! Criar um array Um array é uma lista de valores. Podemos criá-lo assim: numeros = [1, 2, 3, 4, 5] nomes = ["Ana", "Bruno", "Carlos"] Aqui temos um array de números e outro de nomes. Aceder a e...
Read more
March 7, 2025

Loops: Repetir ações automaticamente

Às vezes, queremos repetir uma ação várias vezes sem precisar de escrever o mesmo código repetidamente. Para isso, usamos loops! O loop while O while repete um bloco de código enquanto a condição for verdadeira. Exemplo: contador = 1 while contador <= 5 puts "Número: #{contador}" contador = contador + 1 # Incrementa o contador # A exec...
Read more
March 7, 2025

Condicionais: Tomar decisões

Até agora, o nosso código apenas executa instruções de cima para baixo. Mas e se quisermos que o programa tome decisões com base nos dados do utilizador? Para isso, usamos condicionais! O if e o else Com if, podemos dizer ao programa para executar algo apenas se uma condição for verdadeira. Exemplo: puts "Quantos anos tens?" idade = ge...
Read more
March 7, 2025

Introduzir dados do utilizador

Nos exemplos anteriores, escrevemos valores diretamente no código. Mas, e se quisermos perguntar ao utilizador o seu nome ou idade? Em Ruby, podemos fazer isso facilmente! O método gets Para pedir um valor ao utilizador, usamos gets. Este método espera que o utilizador escreva algo na Console e prima Enter. Exemplo: puts "Qual é o teu ...
Read more
March 7, 2025

Variáveis e matemática simples

Agora que já sabes como escrever um programa em Ruby, está na hora de aprender um dos conceitos mais importantes da programação: variáveis. O que é uma variável? Uma variável é como uma caixa onde guardamos informação para usar mais tarde. Por exemplo, se quisermos guardar um número ou um nome, usamos uma variável. Exemplo: nome = "Joã...
Read more
March 6, 2025

O teu primeiro programa em Ruby

Agora que sabes o que é Ruby e como executá-lo, está na hora de escrever o teu primeiro programa! Escrever e executar o teu primeiro programa O clássico primeiro programa em qualquer linguagem de programação é o famoso "Hello, World!". Vamos escrevê-lo em Ruby. • No editor de código, apaga o conteúdo que está lá e escreve o seguinte: •...
Read more
March 6, 2025

Introdução: Porque aprender Ruby?

Se queres aprender a programar, Ruby é uma excelente escolha. Mas o que é Ruby e porque é tão recomendado para iniciantes? O que é Ruby? Ruby é uma linguagem de programação criada em 1995 por Yukihiro Matsumoto (também conhecido como "Matz"). Ele queria criar uma linguagem que fosse simples de usar, mas ao mesmo tempo poderosa. Com Rub...
Read more
March 6, 2025

Aprende a Programar com Ruby: Um Guia para Iniciantes

Já pensaste em aprender a programar, mas não sabes por onde começar? Talvez aches que programar é demasiado complicado ou não tens ideia de que linguagem escolher. Não te preocupes — estás no sítio certo! Este guia foi criado para iniciantes sem qualquer experiência em programação. Vamos usar Ruby, uma linguagem de programação simples ...
Read more