Andre Oleari

Construo apps mobile,

mas o mais interessante acontece fora da tela.

Aberto a propostas

Andre
Oleari

Engenheiro de Software Mobile
Cork, Irlanda

Trabalho principalmente com React Native e Expo. O que mais gosto é do caminho inteiro de um app: pegar uma ideia ainda crua, construir, colocar na mão das pessoas e melhorar a partir do que acontece depois.

03
Apps meus, nas duas lojas
30+
Apps em que trabalhei na Pixel Logic Apps
2019
O ano em que comecei com React Native

01 / 0403 apps · 14 problemas resolvidos

Projetos

Três apps que construí sozinho e ainda mantenho, todos na App Store e no Google Play. Cada um começou com algo que vi de perto: a espera no ponto de ônibus, torneio de vôlei organizado no papel, a recepção de convidados num evento de verdade.

01 / 03

Bus Times

Horários ao vivo de ônibus, Luas e trem na Irlanda

2026 · Expo · React Native · TypeScript · Cloudflare Workers · R2 · SwiftUI · WidgetKit · GitHub Actions

Mais ou menos uma semana depois de chegar à Irlanda, percebi uma coisa que me incomodava: já existia um app de transporte público, mas eu continuava no ponto sem saber se o ônibus ia mesmo passar. Então fiz o meu. Ele lista as partidas dos pontos perto de você, separa o horário ao vivo do programado e põe os veículos no mapa, com os dados oficiais da TFI.

Três telas do Bus Times passando por dentro de um telefone: as partidas de um ponto, os widgets da tela inicial e o mapa ao vivo: Partidas

Partidas

Três telas do Bus Times passando por dentro de um telefone: as partidas de um ponto, os widgets da tela inicial e o mapa ao vivo: Widgets

Widgets

Três telas do Bus Times passando por dentro de um telefone: as partidas de um ponto, os widgets da tela inicial e o mapa ao vivo: Mapa

Mapa

O app de Apple Watch, mostrando as próximas partidas de um ponto salvo
  1. §01

    Transformar um feed de 250 MB em algo que cabe no celular

    O feed GTFS nacional é um arquivo de 250 MB, grande demais para mandar a um celular. Um script em Node quebra esse arquivo em cerca de 10.200 JSONs pequenos, um por ponto, guardados no Cloudflare R2. Um Worker serve esses arquivos, consulta o GTFS-Realtime por cron e cuida de cache, kill switches e limite por IP.

  2. §02

    Os erros 503 em Cork

    Testando em Cork, de 26% a 33% das consultas de partidas voltavam com 503, e o app avisava que não conseguia falar com o servidor. O problema era CPU: um lote de vinte pontos fazia o Worker processar 3,8 MB de JSON num cold start, passando do limite de 10 ms. Dividi o lote em blocos de oito, cada um com seu próprio limite, e os erros foram a zero.

  3. §03

    Tempo real em só 4,3% das partidas

    No começo só 4,3% das partidas mostravam horário ao vivo, mesmo com o feed oficial funcionando. O feed irlandês só informa o atraso em algumas paradas de cada viagem, então o servidor leva esse atraso adiante pelo resto da viagem. A cobertura ao vivo foi para 67,9% das partidas, sem custo extra por usuário.

  4. §04

    O widget certo com o app fechado

    Quem decide quando um widget atualiza é o iOS, então ficar consultando não é opção. O horário programado nunca muda, só o atraso. O app entrega ao widget uma linha do tempo de 12 entradas cobrindo a próxima hora, cada uma contando a partir do horário absoluto, e os minutos continuam certos com o app fechado.

  5. §05

    Um app de Apple Watch em SwiftUI

    O app do relógio é SwiftUI nativo e nunca chama o backend. Ele mostra as partidas que o celular já buscou, enviadas por WatchConnectivity. As complications só podem ser atualizadas umas cinquenta vezes por dia, e por isso o celular só envia alguma coisa quando o dado mudou de verdade.

  6. §06

    Tempo real quebrando sem erro nenhum

    De tempos em tempos o feed nacional troca os IDs das viagens, e quando isso acontecia o tempo real parava de bater com o horário programado, sem nenhum aviso. Hoje um workflow do GitHub Actions roda duas vezes por semana, compara um hash do trips.txt e só reconstrói os dados quando ele mudou. Um cron no Worker não dava conta: processar 250 MB pede muito mais que os 128 MB de memória de um Worker.

02 / 03

Scoreboard

Placar e gestão de torneios para esporte amador

2025 a 2026 · Expo · React Native · TypeScript · Firebase Remote Config · RevenueCat · expo-print

O Scoreboard veio de anos vendo torneios de vôlei organizados com vários apps diferentes e, às vezes, no papel. App de placar sempre existiu. O difícil era organizar o torneio em si, com grupos, classificação e mata-mata. Então ele começou como placar e virou um gerenciador de torneios que funciona totalmente offline.

Três telas do Scoreboard por dentro de um telefone: criação de torneio, os jogos dos grupos e a classificação: Criação

Criação

Três telas do Scoreboard por dentro de um telefone: criação de torneio, os jogos dos grupos e a classificação: Jogos

Jogos

Três telas do Scoreboard por dentro de um telefone: criação de torneio, os jogos dos grupos e a classificação: Classificação

Classificação

  1. §07

    As regras de cada esporte guardadas como dado

    Vôlei, futsal e basquete não pontuam nem desempatam do mesmo jeito. Em vez de um if para cada esporte, as regras ficam numa tabela que o Remote Config pode sobrescrever, então dá para corrigir uma regra sem lançar versão nova. Depois tirei o motor de dentro do app, e ele virou uma biblioteca TypeScript de código aberto, sem dependências e com 100 testes.

  2. §08

    O que acontece quando o tempo acaba

    Quando o tempo acaba, várias perguntas aparecem de uma vez: era o último período, deu empate, esse esporte tem prorrogação, depois pênaltis, depois morte súbita? Um único loop do timer responde uma por uma, e a prorrogação e a disputa de pênaltis guardam estado próprio, ao lado da partida.

  3. §09

    Tudo fica no celular

    Não existe servidor para os dados das partidas. Tudo é salvo com AsyncStorage no aparelho, então o app funciona num ginásio sem sinal. Algumas partidas salvas acabavam marcadas como jogo de torneio sem o ID do torneio, e em vez de travar, o app agora abre essas partidas como casuais.

  4. §10

    Teste grátis e cancelamento

    Quem cancela durante o teste grátis perde o premium na hora. Quem pagou e depois cancelou mantém até o fim do período pago. E se o Remote Config não carregar, as compras continuam liberadas, para que uma flag faltando nunca esconda o paywall por engano.

03 / 03

Lista Virtual

Lista de convidados, RSVP e check-in para eventos

2025 a 2026 · Expo · React Native · TypeScript · Firebase · Cloud Functions · Firestore · RevenueCat

A Lista Virtual surgiu de problemas que eu conhecia de perto na organização e na recepção de eventos, quase sempre com uma lista impressa na porta. Ela importa a lista de convidados, envia convites com confirmação de presença e faz o check-in, mesmo sem sinal. Já são mais de 4 mil eventos criados e mais de 13 mil check-ins feitos com ela.

Três telas do Lista Virtual passando por dentro de um telefone: a lista de convidados, o check-in acontecendo e o app sem conexão: Lista

Lista

Três telas do Lista Virtual passando por dentro de um telefone: a lista de convidados, o check-in acontecendo e o app sem conexão: Check-in

Check-in

Três telas do Lista Virtual passando por dentro de um telefone: a lista de convidados, o check-in acontecendo e o app sem conexão: Sem rede

Sem rede

  1. §11

    Check-in que funciona sem sinal

    Muito salão de festa tem sinal fraco ou nenhum, e é justamente ali que o check-in acontece. O QR de cada convidado leva um payload curto com o evento e o convidado, e o leitor procura na lista que já está no celular, sem passar pela rede.

  2. §12

    Três jeitos de usar o mesmo app

    Dá para usar sem conta, com tudo no celular, ou entrar e sincronizar as listas em tempo real pelo Firestore. Quem trabalha na porta usa o modo recepcionista, que entra com um código de acesso e nunca mexe na conta do dono. Se a pessoa cria conta depois, o que estava no celular sobe em lotes.

  3. §13

    Relatório para o cliente do organizador

    Depois do evento, o organizador normalmente precisa mostrar ao cliente dele quem compareceu. O app gera relatórios em PDF e Excel no próprio aparelho, com a logo do organizador se ele quiser, e a logo fica no celular em vez de ser enviada.

  4. §14

    Links de convite que não dá para reaproveitar

    Os convites vão pelo WhatsApp, e mensagem de WhatsApp é encaminhada. Cada link de confirmação leva um token de uso único, emitido por uma Cloud Function, com limite de tentativas e registro de auditoria, então uma cópia encaminhada para de funcionar assim que o convidado responde.

02 / 04

Experiência

Meus primeiros empregos foram num escritório de contabilidade e em suporte de TI, no Pará. O desenvolvimento virou meu trabalho em tempo integral no fim de 2024.

  1. Oleari Technologies

    Desenvolvedor Mobile Independente

    Desenvolvo e mantenho meus próprios apps e faço trabalhos de freelance em React Native.

    Jun 2026 até hoje
    Remoto

  2. Pixel Logic Apps

    Engenheiro de Software, React Native e Expo

    Trabalhei em mais de 30 produtos mobile, muitas vezes da ideia inicial até a publicação. Com o tempo o trabalho foi além de escrever código: passei a responder pela entrega, pelas decisões técnicas e por manter os apps funcionando bem em produção.

    • Construí a nova versão do Bobbie Goods: Coloring Book do primeiro commit até a App Store em 18 dias, com seis recursos de monetização testados em quatro experimentos A/B.
    • Levei o Vale Gás / Auxílio Meu Social do primeiro commit ao Google Play em três dias. Ele passou de 500 mil downloads, transformando informação complicada sobre benefícios sociais em algo simples de usar no celular.
    • Todo app novo repetia a mesma configuração e as mesmas integrações, então isso foi para um toolkit Expo compartilhado. Ajudei a moldar a biblioteca e a caçar os bugs que só apareciam quando ela rodava no catálogo inteiro, e os apps novos passaram a começar mais rápido e mais padronizados.
    • Automatizei a publicação nas lojas com Fastlane em 18 apps. Mandar uma versão para as lojas deixou de tomar boa parte do dia e passou a levar cerca de um minuto.
    • Liderei um time pequeno de dois desenvolvedores, ajudando a destravar decisões e a manter a entrega andando, sem largar o código.

    Outros apps em que trabalheiWe Are Not Really Strangers · Versículo do Dia · Loterias · Omnia Model · Glassify Widgets

    Nov 2024 a Jun 2026
    Remoto

  3. Starta Solutions

    Engenheiro de Software

    Trabalhei com um time full-stack num produto mobile que precisava continuar útil mesmo com pouca conexão.

    • Construí os fluxos de autenticação e de sincronização de dados em React Native, pensados para continuar funcionando em rede instável, consumindo APIs REST em Node.js e MySQL.
    • Foi minha primeira vez num produto de verdade com outros desenvolvedores, e não só nos meus próprios projetos.

    Nov 2022 a Jan 2023
    Freelance, remoto

Antes de programar em tempo integral

  1. Carajás Ambientes Planejados · Especialista em TI

    Cuidei de acesso, sincronização e backup no OneDrive e no SharePoint, e dei suporte a usuários, aparelhos e acesso à rede.

    Mai 2024 a Nov 2024
    Remoto

  2. Tecsil · Especialista em TI

    Redes, aparelhos, sistemas internos e suporte remoto, lidando ao mesmo tempo com o problema técnico e com a pessoa afetada por ele.

    Mai 2023 a Ago 2023
    Presencial, Paragominas

  3. Tecsil · Especialista em TI

    Um dos meus primeiros trabalhos com tecnologia: problemas de rede, equipamento e acesso, resolvidos direto com quem dependia deles.

    Mai 2022 a Nov 2022
    Presencial, Paragominas

  4. Contabilidade Destro e Destro · Trainee

    Meu primeiro emprego. Lançava, conferia e conciliava dados financeiros no Fortes Contábil, e aprendi ali o quanto importa o dado estar certo.

    Jun 2021 a Abr 2022
    Paragominas

03 / 04

Sobre

Como cheguei aqui

Comecei a programar em 2019 no IFPA, quando um professor me apresentou o React Native num curso que ainda ensinava class components. No começo apanhei bastante, então a maior parte do que aprendi veio de construir coisas sozinho: pesquisando, testando e resolvendo os problemas conforme apareciam.

Com o tempo esses projetos deixaram de ser exercício e viraram apps de verdade, e o trabalho cresceu junto: Firebase, APIs, pagamentos, publicação na App Store e no Google Play, CI/CD, atualizações OTA. Hoje moro em Cork, e o que me move ainda é o mesmo do começo: entender como as coisas funcionam, e construir.

Formação

Tecnólogo em Análise e Desenvolvimento de Sistemas
Instituto Federal do Pará (IFPA)
2022 a 2024
Técnico em Informática
Instituto Federal do Pará, Campus Paragominas
2019 a 2022

Com o que trabalho

Mobile
React Native · Expo · TypeScript · SwiftUI · WidgetKit · WatchConnectivity · AsyncStorage
Backend e dados
Node.js · Cloudflare Workers · R2 · Firebase · Cloud Functions · Firestore
Publicação e pagamentos
EAS Build · GitHub Actions · RevenueCat · Remote Config

04 / 04

Falar comigo

Estou buscando vagas de Mobile Engineer, React Native Developer ou Software Engineer, na Irlanda ou remotas.

O jeito mais rápido de falar comigo é por email, mas pelo LinkedIn também funciona.

LinkedIn
andreoleari