Trab
PreçosBlog

iOS Software Engineer Specialist na iFood

Brasil

Candidatar-se
Ver mais vagas na iFood

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.

Requisitos

Experiência

  • Pleno-sênior

Habilidades

  • Proficiência em Swift
  • 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 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
  • Conhecimento e aplicação dos princípios SOLID
  • 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 mistigar 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
  • Proatividade e ownership
  • 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
  • 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

Tecnologias

SwiftObjective-CXcodeCocoaPodsSwift Package ManagerVIPMVCMVVMMVVM-CVIPERSOLIDAuto LayoutUIKitSwiftUIGCDDispatchGroupDispatchQueueSwift Concurrencyasync/awaitasync letTaskGroupMainActorInstrumentsFastlaneGitLab CICI/CDREST APIsRemote ConfigsFeature TogglesFirebase AnalyticsAmplitudeMixpanelA/B testingCrashlyticsSentryBugsnagSwiftLintBazelBuckPOPGenericsAssociated TypesType ErasureOpen sourceCommunity iOS

Descubra se seu currículo está pronto para esta vaga

Veja como nossa IA pode otimizar seu currículo e aumentar suas chances de conseguir esta posição.

© 2026 Trab. Todos os direitos reservados.