Back to all jobs
I

iOS Software Engineer Sênior

iFood

Remote · São Paulo · br 19h ago

Job description

Nosso Modo de Fazer no Time: 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 em Swift , com domínio das versões mais recentes da linguagem. Familiaridade com Objective-C para interoperabilidade e manutenção de código legado. Conhecimento e aplicação dos princípios SOLID no dia a dia. Entendimento de heap e stack , e impacto de struct vs class na performance. Boas práticas de Clean Code e design patterns. Arquitetura e UI 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 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. Concorrência e Performance 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 . Experiência com profiling de performance e ferramentas como Instruments . Capacidade de debugar problemas complexos de performance em apps em produção. Testes e Qualidade 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. Uso de ferramentas de análise estática como SwiftLint . Cultura de Code Review , feedback técnico e melhoria contínua. CI/CD e Distribuição 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. Conhecimento em CocoaPods, Swift Package Manager e outros gerenciadores de dependência. APIs, Dados e Observabilidade Experiência sólida com consumo de APIs REST , tratamento de erros, modelos de dados. Conhecimento em consumo de GraphQL . Conhecimento em Remote Configs, Feature Toggles / Flags . Vivência com ferramentas de Analytics (Firebase Analytics, Amplitude, Mixpanel), A/B tests e monitoramento de métricas. Uso de ferramentas de crash reporting como Crashlytics, Sentry, Bugsnag. Uso de ferramentas de observabilidade como Datadog e Firebase. Segurança (Contexto Fintech) Aplicar criptografia (Keychain, Secure Enclave) na proteção de dados sensíveis. Conhecimento de OWASP MASVS e LGPD , integrando segurança em todas as etapas do ciclo. BFF e Integração com Back-end 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 otimizar persistência local (Core Data/SwiftData) e cache, incluindo noções no BFF. Produto, Liderança e Cultura 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 e ownership : 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, com post-mortems e mecanismos de rollout (feature flags, phased releases). Comunicação clara com times de produto, design e backend. Participação em mentorias, code dojos e partilhas de conhecimento . Para Realçar o Sabor Experiência prévia em fintech, bancos ou pagamentos . Segurança de aplicações móveis ( AppSec, OWASP MASVS ). Experiência com IA e machine learning . Conhecimento de infraestrutura : cloud, containers e infraestrutura como código para apoiar o ambiente do app. 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.

Similar open jobs