I
iOS Software Engineer Sênior
iFood
- 🇧🇷 Brazil
- On-site
- 7 hours ago
- iOS
- Swift
- MVC
- MVVM
- UIKit
- SwiftUI
- Snapshot Testing
- TDD
- BDD
- CI/CD
- Fastlane
- GitLab CI
- GraphQL
- Firebase
- Amplitude
- Mixpanel
- Firebase Crashlytics
- Sentry
- Bugsnag
- Datadog
- OWASP
- Core Data
- AppSec
- Machine Learning
- Bazel
7 hours ago
Transforme sua carreira com o iFood! Somos uma empresa brasileira de tecnologia referência na América Latina. Por meio de soluções inovadoras, conectamos milhares de restaurantes a milhões de consumidores diariamente com uma média de 100 milhões de pedidos mensais. Além do delivery de comida, também somos Mercado, Farmácia e Pet. Temos também o iFood Pago, nossa Fintech, que engloba o iFood Benefícios, o vale alimentação e refeição do iFood e o próprio iFood Pago, o banco do restaurante. Junte-se a nós e faça parte de uma equipe que está sempre à frente com tecnologia de ponta e inovação constante. Seu Cardápio Diário
Buscamos um(a) Desenvolvedor(a) iOS Sênior para atuar em produtos bancários e de pagamentos do iFood Pago, com domínio da plataforma iOS e capacidade de entrega ponta a ponta. Você colaborará com produto, design, segurança e demais times de engenharia, com atuação mínima em BFFs (Backend for Frontend) para viabilizar as integrações do app.
É 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.
Você fará parte de um time que constrói produtos financeiros em escala, onde segurança, performance e confiabilidade não são opcionais — são o produto. Ingredientes que Buscamos
Linguagem e Fundamentos
- Proficiência emSwift, com domínio das versões mais recentes da linguagem.
- Familiaridade comObjective-C para interoperabilidade e manutenção de código legado.
- Conhecimento e aplicação dos princípiosSOLID no dia a dia.
- Entendimento deheap e stack, e impacto destruct vs class na performance.
- Boas práticas deClean Code e design patterns.
- Experiência com 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.
- 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 comSwiftUI.
- Capacidade de construir interfaces responsivas, performáticas e acessíveis.
- Compreensão profunda dociclo de vida do UIKit e otimizações de performance visual.
- Conhecimento sólido sobreGCD (Grand Central Dispatch),DispatchGroup, DispatchQueue, concorrência e problemas dethread safety.
- Preferencialmente familiar com o novo modelo doSwift Concurrency (
async/await). - Gerenciamento de múltiplas chamadas assíncronas simultâneas com
async let,TaskGroup, etc. - Uso correto doMainActor para isolar chamadas relacionadas à UI.
- Entendimento dos benefícios e cuidados ao misturarGCD e Swift Concurrency.
- Experiência comprofiling de performance e ferramentas comoInstruments.
- Capacidade dedebugar problemas complexos de performance em apps em produção.
- Escrita detestes unitários, testes de UI e snapshot testing.
- Conhecimento de estratégias comoTDD e BDD.
- Sabe evitar testes frágeis (flaky tests) e criar componentes testáveis e reutilizáveis.
- Uso de ferramentas de análise estática comoSwiftLint.
- Cultura deCode Review, feedback técnico e melhoria contínua.
- Prática comIntegração Contínua (CI) eDistribuição Contínua (CD).
- Conhecimento emFastlane, GitLab CI, ou similares.
- Experiência com automação de builds, deploys e análise de código.
- Conhecimento emCocoaPods, Swift Package Manager e outros gerenciadores de dependência.
- Experiência sólida com consumo deAPIs REST, tratamento de erros, modelos de dados.
- Conhecimento em consumo deGraphQL.
- Conhecimento emRemote Configs, Feature Toggles / Flags.
- Vivência com ferramentas deAnalytics (Firebase Analytics, Amplitude, Mixpanel),A/B tests e monitoramento de métricas.
- Uso de ferramentas decrash reporting como Crashlytics, Sentry, Bugsnag.
- Uso de ferramentas de observabilidade comoDatadog e Firebase.
- Aplicarcriptografia (Keychain, Secure Enclave) na proteção de dados sensíveis.
- Conhecimento deOWASP MASVS eLGPD, integrando segurança em todas as etapas do ciclo.
- Conhecimento mínimo de back-end para atuar em BFFs: modelar e ajustar endpoints e agregações que atendem o app, colaborando com times de back-end.
- Modelar e otimizarpersistência local (Core Data/SwiftData) e cache, incluindo noções no BFF.
- Mentalidade de produto: entende e contribui com o impacto da tecnologia no negócio.
- Visão de Produto: traduzir necessidades reais em soluções técnicas e medir o sucesso do que é entregue.
- Orientação a Dados: decidir com base em métricas e monitorar cada feature contra seus objetivos.
- Decomposição de Problemas: quebrar problemas complexos em tarefas de alto impacto, aplicando a regra 80/20.
- Proatividade eownership: cuida do código como se fosse seu.
- Comunicação Técnica: expressar ideias técnicas com clareza (RFCs, ADRs, diagramas, apresentações), adaptando a mensagem ao público.
- Liderança técnica: capacidade de liderar ou colaborar em decisões arquiteturais, influenciar o time e mentorar desenvolvedores.
- Operação: monitorar, alertar e responder rapidamente a problemas em produção, compost-mortems e mecanismos de rollout (feature flags, phased releases).
- Comunicação clara com times de produto, design e backend.
- Participação emmentorias, code dojos e partilhas de conhecimento.
- Experiência prévia emfintech, bancos ou pagamentos.
- Segurança de aplicações móveis (AppSec, OWASP MASVS).
- Experiência com IA emachine learning.
- Conhecimento deinfraestrutura: cloud, containers e infraestrutura como código para apoiar o ambiente do app.
- Ferramentas avançadas de modularização comoBazel ou Buck.
- Conhecimento emprogramaçã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.
iOS Software Engineer Sênior · iFood