iOS Software Engineer Sênior

iFood · Osasco, SP, BR

**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** ----------------------- * É 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** ----------------------------- * Experiência com **Cardstack** e vivência com Migrações. * 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.