Como foi o desenvolvimento de software para logística no iFood

Renan Freitas, nosso staff engineer, conta como foi construir, do zero, a estrutura de logística da empresa

Renan Freitas

💻 Staff Engineer

Em nossa operação, cada linha de código conta uma história, e cada inovação impulsiona a transformação. Desde 2016, Renan Freitas, nosso staff engineer, tem sido peça-chave na construção de uma operação logística que hoje impacta milhões de pessoas. Sua jornada profissional começou bem antes, em 2013, quando atuava em uma startup do setor logístico. Ao se juntar ao iFood, Renan aceitou o desafio de ser parte do time que construiu, literalmente do zero, nossa estrutura de logística.

“Naquela época, éramos um time enxuto: três desenvolvedores back-end, um front-end, um design de produto e um fornecedor externo que olhava para Android”, relembra Renan. Hoje, o cenário é completamente diferente. Crescemos exponencialmente e lideramos iniciativas que combinam inteligência artificial, big data e arquitetura de software escalável, garantindo que milhões de pedidos cheguem ao destino com precisão e eficiência.

Quer saber como construímos essa trajetória e como Renan ajudou a estruturar o futuro da nossa tecnologia? Continue lendo para descobrir os bastidores dessa evolução.

Liderando a transformação logística com escalabilidade 

A nossa área de logística está organizada em três grandes frentes: Inteligência, Entrega e Entregadores. Renan explica que essa divisão permite uma gestão mais eficiente e flexível. “Trabalhamos para otimizar desde a escolha do entregador ideal para cada rota até o controle de demanda e promoções para engajamento de novos entregadores”.

Renan, que lidera a frente de Entrega, concentra-se no ciclo de vida dos pedidos e nas rotas. Ele destaca a importância de balancear a profundidade técnica com uma visão ampla: “Lidamos com problemas de desempenho em microsserviços, modelagem de dados, e também com questões conceituais, como organizar e definir responsabilidades entre times e plataformas. Atuamos desde a análise de problemas de custo e desempenho até a construção de soluções colaborativas entre equipes, sempre almejando preparar o ecossistema para o crescimento futuro, para as demandas posteriores às atuais”, explica.

Para enfrentar esses desafios, nossa equipe aposta em múltiplas habilidades, como empatia e comunicação clara. Essas competências são fundamentais para resolver problemas de forma eficiente e manter a colaboração entre as diferentes frentes de logística.

Nossa logística está organizada em camadas para manter flexibilidade e eficiência. Na base, contamos com sistemas e ferramentas compartilhadas, como Kubernetes e data lakes, que sustentam o trabalho de todas as equipes. Acima disso, operam plataformas específicas para áreas como atendimento, logística e prevenção à fraude. “Essa estrutura permite que nossas equipes sejam ágeis e inovadoras”, reforça Renan.

Ferramentas e tecnologias que nos movem 

Nosso stack tecnológico reflete nosso compromisso com inovação, escalabilidade e flexibilidade. No back-end, trabalhamos com linguagens como Kotlin, Java e Rust, escolhendo cada uma com base nas demandas específicas de cada projeto. Atualmente, a maior parte dos novos desenvolvimentos é feita em Kotlin, graças à sua versatilidade e capacidade de integrar diferentes sistemas. “No momento, estou mexendo muito com Kotlin e Java para escrever serviços em back-end, enquanto Python e SQL entram em cena para análises mais profundas. Essas habilidades analíticas são importantes conforme você evolui”, explica Renan.

Rust, por sua vez, ocupa um espaço reservado para uma minoria de aplicações de altíssima criticidade em tempo de execução. “É uma linguagem nova e promissora, que traz desafios devido à sua complexidade, mas entrega um uso de memória extremamente eficiente. Usamos Rust em situações onde buscamos máxima eficiência e onde o tempo de resposta seja essencialmente dependente de tempo de CPU. Buscamos utilizar as tecnologias certas para diferentes problemas, o que é válido para linguagens de programação mas também para outras coisas como bases de dados”, complementa.

Além das linguagens de programação que utilizamos, nossa stack tecnológica inclui uma série de ferramentas que suportam as operações do dia a dia. Para comunicação assíncrona, contamos com tecnologias como Kafka e SQS. Para a persistência de dados, usamos PostgreSQL e DynamoDB, cobrindo tanto dados relacionais quanto não-relacionais. Também adotamos o Redis como in-memory data structure, otimizando o desempenho em diversas aplicações. Toda essa infraestrutura opera na cloud da AWS, garantindo escalabilidade e confiabilidade. Esses detalhes refletem a robustez tecnológica que adotamos para atender aos desafios da nossa operação logística.

Vale destacar também que contamos com diversas ferramentas, tanto internas quanto amplamente utilizadas no mercado. Entre as nossas plataformas internas de engenharia, destacamos o “Tompero” e sua CLI (command line interface), que desempenha um papel importante em várias etapas da jornada dos engenheiros de software. Ele é utilizado para operações como gestão de microsserviços e execução de testes de carga, centralizando operações essenciais e otimizando o fluxo de trabalho. 

Renan pontua que ferramentas de observabilidade, como Datadog e Logz.io, monitoram métricas personalizadas, identificando rapidamente qualquer anomalia. Para acelerar o desenvolvimento, integramos inteligência artificial com o uso do GitHub Copilot, que democratiza o acesso a recursos avançados e otimiza a escrita de código, beneficiando desenvolvedores de diferentes níveis de experiência. “Fora isso, também usamos esse nosso ferramental para implantar mudanças nos ambientes produtivos de forma saudável e segura, como através em deploy canário progressivo.”, ressalta Renan. 

Outra prática fundamental no nosso fluxo de trabalho é a realização de testes de carga regulares. Esses testes simulam picos de uso com base em dados e comportamentos reais, ajudando a prever e solucionar problemas antes que impactem nossos usuários.

Nossa cultura de engenharia

A cultura de engenharia é um diferencial que nos define e impulsiona nosso trabalho. Apesar dos desafios naturais de alinhar demandas de negócio e iniciativas técnicas, nosso foco está sempre em buscar um equilíbrio. Aqui, a engenharia tem voz ativa, espaço para propor, argumentar e transformar ideias em iniciativas reais. Nosso ambiente valoriza o “apetite constante” e o “sonhar grande”, pilares que nos desafiam a buscar qualidade e impacto em tudo o que fazemos.

“Temos uma forte cultura de engenharia que estimula o aprendizado e a inovação. É um lugar onde enfrentamos desafios exponenciais e encontramos oportunidades de crescimento pessoal e profissional”, destaca Renan. Essa mentalidade nos permite construir soluções robustas enquanto evoluímos como equipe e indivíduos.

A colaboração também desempenha um papel central nesse contexto. Renan explica como sua atuação mescla profundidade técnica e amplitude conceitual: “Em algumas situações, estou mergulhado em detalhes técnicos. Em outras, contribuo em um nível mais estratégico, ajudando a definir como diferentes componentes da plataforma devem interagir. Essas caixinhas, que traduzimos em times e domínios da organização, precisam de alinhamento constante para que possamos evoluir de forma coordenada e eficiente, sempre tentando equilibrar o agora com o futuro”.

A cultura aqui também incentiva o senso crítico e os questionamentos construtivos, elementos essenciais para gerar soluções mais eficientes e inovadoras. “Em geral, as ideias são debatidas de forma aberta, em chapters transversais e também em palestras internas com espaço para discussão, e isso garante que nossas decisões sejam bem fundamentadas e reflitam a visão do grupo, em geral”, completa Renan. Essa combinação de liberdade, rigor técnico e diálogo fortalece tanto os projetos quanto os laços dentro da equipe, criando um ambiente onde a engenharia e a colaboração andam lado a lado.

Proatividade para encarar os desafios 

Com uma operação que movimenta milhões de pedidos por mês, estamos constantemente evoluindo para lidar com picos de demanda, especialmente durante períodos críticos como a Black Friday e o dia dos namorados. Renan explica que os testes de carga semanais vão além de apenas simular volumes altos; eles também reproduzem o comportamento real dos dados e entregadores, o que é essencial para a resiliência do sistema. “Não faz sentido tentar atingir um volume para dados cujo comportamento é irreal. Por isso, nossos testes consideram padrões reais de pedidos e trajetos dos entregadores, garantindo que as simulações reflitam condições reais”, destaca.

Esses testes são atualizados recorrentemente, sempre que um novo pico histórico é alcançado. “Em logística, além de reproduzir os pedidos, simulamos o comportamento dos entregadores, desde o deslocamento nas cidades até a execução das entregas dentro de um tempo estimado. É um problema complexo que conseguimos resolver e estamos constantemente aprimorando”, explica Renan. Durante os testes, todos os times monitoram os resultados, ajustando os sistemas conforme necessário para antecipar possíveis problemas de desempenho.

Para garantir uma resposta rápida a qualquer anomalia, utilizamos métricas avançadas de observabilidade. Criamos alertas automatizados que monitoram o ciclo de vida dos pedidos, o desempenho dos microsserviços e o tempo de resposta em sistemas críticos. Além disso, em algumas aplicações e durante períodos específicos de grande demanda, implementamos estratégias de warm-up, pré-escalando recursos antes mesmo de um aumento no volume de dados ser detectado. “Isso evita atrasos na resposta do sistema, especialmente em áreas críticas”, explica Renan.

No entanto, para situações em que o warm-up não é aplicado, trabalhamos com a elasticidade dos sistemas e recursos, garantindo que as aplicações consigam se ajustar dinamicamente ao volume de trabalho. É um equilíbrio que permite atender a diferentes cenários com eficiência, mesmo considerando o aumento de custos de infraestrutura associado às estratégias de warm-up.

Todo o trabalho é conduzido em conformidade com as regras da LGPD, garantindo que o acesso aos dados seja controlado e limitado às equipes responsáveis por cada aplicação. “Os dados pessoais são anonimizados, e exportamos apenas informações necessárias para análises estratégicas, respeitando a privacidade dos usuários e a segurança da informação”, reforça Renan.

Oportunidades para profissionais de tecnologia

Acreditamos que este é o momento ideal para os profissionais de tecnologia se juntarem ao iFood. Estamos em um período de crescimento, no qual os desafios técnicos e culturais estão transformando nosso ambiente em um verdadeiro laboratório de inovação e aprendizado constante.

“Por mais que a empresa já seja grande e lide com um volume significativo de dados, o ritmo de crescimento que enfrentamos não é linear, é exponencial. Isso traz desafios em todas as dimensões do nosso trabalho, desde testes de carga e arquitetura de software até as soluções tecnológicas que utilizamos”, explica Renan. Ele destaca que, nesse cenário, até mesmo as melhores soluções precisam ser revisitadas e aprimoradas para acompanhar as mudanças, criando oportunidades valiosas de desenvolvimento para os profissionais. “Estou aqui desde 2016 e ainda aprendo algo novo todos os dias. E as coisas novas que aprendo vêm se tornando cada vez mais complexas”, completa.

Procuramos pessoas curiosas, proativas e com um forte apreço pela qualidade, características fundamentais para quem quer construir o futuro conosco. “Ter senso crítico e a capacidade de enxergar oportunidades em meio às demandas são habilidades essenciais. Nossa cultura valoriza questionamentos construtivos, e a engenharia tem conhecimento suficiente para propor soluções melhores, até mesmo desafiando ideias de negócios quando necessário. Esses diálogos abertos geram inovação”, comenta Renan. Além disso, habilidades em áreas como resiliência, observabilidade e conhecimento em tecnologias amplamente utilizadas, como as ferramentas da Amazon, são diferenciais importantes.Nosso jeito de trabalhar combina inovação, colaboração e aprendizado constante. Se você compartilha desses valores e quer enfrentar desafios que fazem a diferença, confira as vagas de tecnologia no nosso site de carreiras e venha fazer parte do nosso time.

Esse conteúdo foi útil para você?
SimNão

Publicações relacionadas