iOS Software Engineer Sênior
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.