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)