O iFood é a maior e mais inovadora empresa de tecnologia da América Latina, operando no Brasil. Somos conhecido pelo delivery, mas vamos além, temos muitas frentes de negócio como iFood Mercado, iFood Pago, nossa Fintech e muito mais. Nosso objetivo é Alimentar o Futuro do Mundo por meio de tecnologia. Trabalhar conosco significa impactar positivamente milhões de vidas, mas queremos transformar esse número em um bilhão.
Nosso Cardápio Diário: É desejável que a pessoa tenha boa desenvoltura para tomada de decisões do dia a dia, além de um conhecimento técnico amplo e uma preocupação com qualidade, boas práticas e esteja sempre buscando formas diferentes e inovadoras de se resolver problemas.
Ingredientes que buscamos: Proficiência em Swift, com domínio das versões mais recentes da linguagem. Familiaridade com Objective-C.Uso de Xcode e ferramentas de debugging avançado. Conhecimento em CocoaPods, Swift Package Manager e outros gerenciadores de dependência. Experiência design patterns de UI VIP, MVC, MVVM, MVVM-C e VIPER. Capacidade de escolher a melhor arquitetura conforme o problema, considerando trade-offs, escalabilidade, testabilidade e manutenção. Conhecimento e aplicação dos princípios SOLID no dia a dia. Domínio em componentização e modularização do código para projetos de larga escala. Domínio em Auto Layout, View Code (UIKit) e experiência com SwiftUI. Capacidade de construir interfaces responsivas, performáticas e acessíveis. Compreensão profunda do ciclo de vida do UIKit e otimizações de performance visual. Conhecimento sólido sobre GCD (Grand Central Dispatch), DispatchGroup, DispatchQueue, concorrência e problemas de thread safety. Preferencialmente familiar com o novo modelo do Swift Concurrency ( async/await ). Gerenciamento de múltiplas chamadas assíncronas simultâneas com async let , TaskGroup , etc. Uso correto do MainActor para isolar chamadas relacionadas à UI. Entendimento dos benefícios e cuidados ao misturar GCD e Swift Concurrency. Entendimento de heap e stack, e impacto de struct vs class na performance. Experiência com profiling de performance e ferramentas como Instruments. Capacidade de debugar problemas complexos de performance em apps em produção. Escrita de testes unitários, testes de UI e snapshot testing. Conhecimento de estratégias como TDD e BDD. Sabe evitar testes frágeis (flaky tests) e criar componentes testáveis e reutilizáveis. Prática com Integração Contínua (CI) e Distribuição Contínua (CD). Conhecimento em Fastlane, GitLab CI, ou similares. Experiência com automação de builds, deploys e análise de código. Experiência sólida com consumo de APIs REST, tratamento de erros, modelos de dados. Conhecimento em Remote Configs, Feature Toggles / Flags. Vivência com ferramentas de Analytics (Firebase Analytics, Amplitude, Mixpanel, etc), A/B tests e monitoramento de métricas. Uso de ferramentas de crash reporting como Crashlytics, Sentry, Bugsnag. Boas práticas de Clean Code e design patterns. Uso de ferramentas de análise estática como SwiftLint. Cultura de Code Review, feedback técnico e melhoria contínua. Mentalidade de produto: entende e contribui com o impacto da tecnologia no negócio. Proatividade e ownership: cuida do código como se fosse seu. Comunicação clara com times de produto, design e backend. Participação em mentorias, code dojos, e partilhas de conhecimento. Capacidade de liderar ou colaborar em decisões arquiteturais.
Para realçar o Sabor: Experiência com ferramentas avançadas de modularização como Bazel ou Buck. Conhecimento em programação orientada a protocolos (POP), incluindo Associated Types, Type Erasure e uso avançado de Generics. Domínio de boas práticas de estruturação de projetos grandes e manutenção em grandes bases de código. Contribuições open source, talks, artigos ou participação ativa na comunidade iOS.
Ref.27384
Nível de experiência: Pleno-sênior Tipo de emprego: Tempo integral Função: Engenharia e Tecnologia da informação Setores: Desenvolvimento de software.
Veja como nossa IA pode otimizar seu currículo e aumentar suas chances de conseguir esta posição.