Senior iOS Software Engineer

AI overview

Develop a multiplatform iOS solution with Kotlin to enhance the Android app, driving innovation across technology teams and impacting millions of users.

Nosso Modo de Fazer no Time:

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.

O principal objetivo da área é desenvolver uma plataforma em iOS utilizando Kotlin multiplataforma, com foco na atualização do aplicativo Android e na criação de funcionalidades que atendam às necessidades de outros times de tecnologia.

Seu Cardápio Diário:

  • Desenvolver uma plataforma iOS utilizando Kotlin multiplataforma, focando na atualização do aplicativo Android e na criação de novas funcionalidades.
  • Entender o aplicativo do entregador e priorizar mudanças com base na visão de 15 times envolvidos.
  • Colaborar ativamente com outros times para garantir a integração eficaz das funcionalidades.
  • Compartilhar conhecimento com a equipe e promover um ambiente colaborativo.
  • Garantir que a arquitetura do código seja bem estruturada e que futuras implementações sejam testadas e aprovadas de forma eficiente.

Ingredientes Que Buscamos:

  • Experiência em Kotlin multiplataforma e habilidades em desenvolvimento de software.
  • 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 LayoutView 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)DispatchGroupDispatchQueue, 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 letTaskGroup, 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áriostestes 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 FastlaneGitLab 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 ConfigsFeature 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 CrashlyticsSentryBugsnag.
  • 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 mentoriascode 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 TypesType 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.

 

Ace your job interview

Understand the required skills and qualifications, anticipate the questions you may be asked, and study well-prepared answers using our sample responses.

Senior iOS Software Engineer Q&A's
Report this job

This job is no longer available