[Job 29236] Senior iOS Developer, Brazil
Somos especialistas em transformação tecnológica, unindo expertise humana à IA para criar soluções tech escaláveis. Com mais de 8,000 CI&Ters ao redor do mundo, já formamos parcerias com mais de 1,000 clientes durante nossos 30 anos de história. Inteligência Artificial é nossa realidade.
Importante: se você reside na Região Metropolitana de Campinas, sua presença nos escritórios da cidade será obrigatória, conforme a política de frequencia vigente.
Sua Missão:
- Atender junto com a CI&T um cliente do mercado de Mídia;
- Escrever código limpo, de fácil manutenção, utilizando as melhores práticas de desenvolvimento de software;
- Projetar soluções usando frameworks apropriados;
- Identificar oportunidades de melhoria de forma consistente, incluindo melhorias de arquitetura, padrões, experiência de desenvolvimento e experiência de usuário;
- Trabalhar de forma colaborativa com outros membros da equipe, incluindo desenvolvedores, designers, QA e stakeholders, para garantir o sucesso dos projetos;
- Fazer revisões de código e fornecer feedbacks construtivos;
- Garantir um ambiente de desenvolvimento estável e produtivo;
- Abertura para aprender como usar ferramentas amplamente adotadas na pilha de tecnologia;
- Manter-se conectado com as atualizações da linguagem Swift e explorar como aplicá-las dentro do time;
- Participar ativamente na resolução de problemas complexos, identificando oportunidades de melhoria e propondo soluções inovadoras;
- Mentorar e compartilhar conhecimento com desenvolvedores mais juniores, alavancar suas jornadas e auxiliar proativamente o time;
- Monitorar e corrigir crashes reportados pelo Firebase Crashlytics, incentivando a cultura de qualidade e incidentes dentro do time;
- Quebrar features complexas em pedaços testáveis e incrementais, utilizando técnicas como feature flags;
- Refatorar código legado de maneira incremental e realizar onboarding de novas pessoas;
Requisitos da vaga:
- Proficiência em Apple e total domínio da linguagem Swift 5+, incluindo conhecimento de temas complexos e capacidade analítica para propor refactorings complexos
- Padrões de Projeto: Profundo conhecimento em VIPER (principalmente) e suas variações, bem como familiaridade com MVVM, MVP e outros padrões como Facade, Adapter, Factory, Singleton, Builder, Abstract
- SwiftUI como principal framework de UI, incluindo conhecimento em Threads
- UIKit com domínio aprofundado e otimização de hierarquia de views
- Swift Concurrency (async/await, Actor)
- Controle de Versão GIT com profundo conhecimento, incluindo GitFlow e autonomia para lidar com questões avançadas (editar commits, remover commits, mover commits entre branches)
- Cocoapods e Swift Package Manager (SPM) para gerência de dependências, com autonomia para criar e manter bibliotecas
- GraphQL com Apollo iOS, incluindo conceitos aprofundados como fragments, operações em queries (union, etc), Interceptors, Headers e Response
- CI/CD com Xcode Cloud, GitLab CI ou Fastlane, incluindo capacidade de construir pipelines
- Testes Unitários com XCTest e Swift Testing, com técnicas de snapshot testing
- Firebase Crashlytics e Google Analytics
- Networking: HTTP requests, parsing de JSON/XML, programação assíncrona com GCD (DispatchQueue, OperationQueue), Async Await
- Memória e Performance: Gestão de memória com Automatic Reference Counting (ARC), propriedades lazy, variáveis computadas, weak/strong/unowned references
- Xcode com maestria, incluindo atalhos, recursos de depuração (layout, rede, recursos) e ferramentas de apoio (SPM, Xcodegen, Instruments)
- Design System e criação de componentes escaláveis em projetos de larga escala
- Metodologias Ágeis (Scrum, Kanban) e ferramentas como Jira
Será um diferencial se você possuir:
- Conhecimento de outras linguagens de apoio, como linguagens de automatização para CI (Ruby, Python, etc)
- Entendimento do workflow de integração do Bitrise
- Capacidade de apresentar temas do universo Apple para o time interno ou externo
- Conhecimentos básicos em segurança (persistência de dados, HTTPS e mecanismos de autenticação)