Cliente e contexto
Uma startup pretendia criar uma plataforma online de produtos DIY onde os utilizadores pudessem personalizar produtos usando imagens e modelos. O sistema precisava de:
- Lidar com processamento de imagem computacionalmente pesado.
- Estar preparado para alta carga proveniente de campanhas de marketing.
- Executar em infraestrutura on-premises por motivos de custo e controlo.
Fui responsável por conceber e implementar tanto a aplicação como a infraestrutura.
Desafios
- Os algoritmos de processamento de imagem eram intensivos em CPU e tinham de ser suficientemente rápidos para interações em tempo real ou quase em tempo real.
- A solução tinha de correr em infraestrutura self-hosted, e não num serviço cloud totalmente gerido.
- A plataforma precisava de escalar horizontalmente, lidar com picos e proteger contra DDoS.
- O sistema tinha de suportar 18 idiomas e disponibilizar uma UI responsiva e rápida que passasse as verificações do PageSpeed.
O que fiz
1. Concebi e implementei algoritmos de imagem personalizados
- Criei um conjunto de algoritmos personalizados para processamento de imagem e geração de pré-visualizações de produtos DIY.
- Ajustei os algoritmos para desempenho, mantendo a qualidade do resultado.
2. Construí infraestrutura on-prem preparada para alta carga
- Concebi e implementei um cluster Kubernetes on-premises com:
- Imagens Docker personalizadas para a aplicação e serviços.
- Arquitetura multi-servidor com load balancing.
- Agendamento de pods ajustado para workloads pesados de processamento de imagem.
- Implementei CI/CD através de uma instância GitLab self-hosted, automatizando pipelines de build e deployment.
- Adicionei proteção DDoS e considerações de resiliência ao desenho da infraestrutura.
3. Usei Rust para acelerar PHP
- Identifiquei hotspots críticos de desempenho no código PHP.
- Reescrevi essas partes como uma extensão PHP baseada em Rust, melhorando drasticamente o desempenho onde mais importava.
4. Trabalho de produto, conteúdo e UX
- Liderei ou coordenei a criação de conteúdos:
- Ilustrações que mostram como a aplicação funciona.
- Artigos explicativos e documentação para utilizadores.
- Construí um website multilingue, blog e galeria (18 idiomas suportados).
- Otimizei o site para ser suficientemente rápido para passar as avaliações do Google PageSpeed.
Resultados
- A startup obteve um MVP pronto para produção, capaz de lidar com alta carga em infraestrutura self-hosted.
- Os fluxos críticos de processamento de imagem ficaram significativamente mais rápidos graças à aceleração com Rust.
- A plataforma combinou infraestrutura robusta (Kubernetes, CI/CD, proteção DDoS) com um front-end rápido e multilingue.
- Isto proporcionou uma base sólida para desenvolvimento adicional do produto, angariação de investimento ou aquisição de clientes.
Tecnologias e responsabilidades
- Função: Engenheiro full-stack, arquiteto de infraestrutura e colaborador de produto
- Tecnologias: PHP, Rust (extensão PHP), Kubernetes, Docker, GitLab CI/CD, processamento de imagem, site multilingue, otimização de PageSpeed
- Âmbito: Algoritmos, backend, infraestrutura, desempenho, coordenação de conteúdos e desempenho da UI
Se precisar de um MVP preparado para alta carga, com desempenho sério e considerações de infraestrutura desde o primeiro dia, posso ajudá-lo a conceber e implementar uma base robusta em vez de um protótipo descartável.
Voltar a todos os estudos de caso