Cliente e contexto
Um cliente precisava de operar uma plataforma de agregação e classificação de notícias que:
- Recolhia e classificava conteúdos com base na atividade em redes sociais e noutros sinais.
- Suportava experimentação com algoritmos de classificação.
- Alimentava um front-end de newsletter em Next.js e automatizava fluxos de trabalho de criação de newsletters.
Entrei para manter e melhorar uma aplicação em Rust existente e as respetivas ferramentas, integrações e componentes envolventes.
Desafios
- A base de código em Rust para agregação de notícias era difícil de modificar e não tinha um ambiente de desenvolvimento limpo.
- Os algoritmos de classificação existentes precisavam de melhorias de desempenho e de maior legibilidade.
- O sistema tinha de integrar com:
- Vários fornecedores de dados.
- Um front-end em Next.js.
- Google Sheets e processamento baseado em LLM para newsletters.
- O negócio precisava de melhor monitorização, registos e relatórios para confiar no sistema.
O que fiz
1. Melhorias de algoritmos e da base de código em Rust
- Pesquisei os algoritmos de classificação existentes, incluindo as suas bases matemáticas.
- Corrigi bugs e melhorei o desempenho da lógica central.
- Refatorei a base de código para tornar a estrutura mais legível e fácil de manter.
- Adicionei um ambiente de desenvolvimento baseado em Docker para facilitar a execução e os testes do sistema localmente.
2. Experimentação e obtenção de dados
- Ajudei a construir percursos de código para testar hipóteses e afinar algoritmos.
- Implementei correspondência de texto usando embeddings para relacionar melhor publicações e artigos.
- Desenvolvi um web scraper personalizado usando um browser headless para fontes não cobertas por APIs padrão.
- Implementei a recolha a partir de dois fornecedores de dados principais, selecionando entre integrações de teste com outros fornecedores para cobertura e qualidade.
3. Front-end de newsletter e fluxos de conteúdos com assistência de IA
- Realizei integrações, melhorias e aperfeiçoamentos de design para uma aplicação front-end de newsletter em Next.js.
- Implementei uma integração entre Google Spreadsheets e vários LLMs para:
- Processar e resumir textos.
- Formatar dados para newsletters.
- Exportar dados para templates parametrizados do Canva.
- Automatizei a geração de newsletters e o envio via Mailchimp, reduzindo o trabalho editorial manual.
4. Observabilidade e controlo
- Adicionei autenticação, recolha de registos, monitorização, relatórios e estatísticas para que a equipa pudesse:
- Inspecionar o comportamento do sistema.
- Compreender os fluxos de conteúdos.
- Monitorizar resultados de classificação e o desempenho das newsletters.
Resultados
- O motor de agregação em Rust tornou-se mais rápido, mais claro e mais fácil de estender.
- A equipa passou a ter um ambiente de desenvolvimento local fiável e ferramentas para experimentar algoritmos.
- A criação de newsletters tornou-se significativamente mais automatizada, com LLMs e templates a tratarem de grande parte do trabalho repetitivo.
- Melhores registos e monitorização deram às partes interessadas mais confiança e visibilidade sobre o sistema.
Tecnologias e responsabilidades
- Função: Engenheiro sénior para agregação de notícias e ferramentas de newsletter
- Tecnologias: Rust, Docker, scraping com browser headless, embeddings, Next.js, Google Sheets API, LLM APIs, templates do Canva, Mailchimp, autenticação, monitorização
- Âmbito: Melhorias de algoritmos e desempenho, ambiente de desenvolvimento, scraping e fornecedores de dados, melhorias de front-end, fluxos de newsletter com assistência de IA, observabilidade
Se precisar de combinar agregação de dados de alto desempenho com fluxos editoriais suportados por LLM, posso ajudar a desenhar e implementar o backend, as integrações e as ferramentas.
Voltar a todos os estudos de caso