Descrição
Resumo:
Esta função de Arquiteto Sênior envolve projetar e evoluir backends críticos escaláveis, performáticos e seguros para aplicações globais de streaming, atuando como consultor técnico e defensor de soluções.
Pontos principais:
1. Projetar e evoluir backends críticos para serviços globais de streaming
2. Aconselhar equipes técnicas sobre arquitetura, escalabilidade e escolhas tecnológicas
3. Definir soluções para novos componentes e avaliar alterações em todo o sistema
**Resumo da função:**
No grupo Global Apps Engineering, somos responsáveis pelo desenvolvimento da aplicação voltada ao cliente que roda em dezenas de diferentes dispositivos consumidores, como smart TVs, celulares, sticks de streaming, decodificadores e até mesmo dispositivos de realidade virtual (VR), fornecendo serviços de streaming a milhões de clientes em todo o mundo por meio de múltiplas propostas comerciais, como Peacock, NOW, SkyShowtime e Showmax.
Nosso grupo também é responsável pelos serviços do lado do servidor diretamente vinculados às nossas aplicações cliente, como experimentação (ou seja, apresentar aos nossos clientes diferentes versões da interface ou funcionalidades distintas, para compreender seu desempenho e como os usuários interagem com elas), configuração do cliente e recursos textuais (rótulos/nomes da interface do usuário). Trata-se de serviços "tier-1", utilizados diretamente pelas nossas aplicações e que precisam atender simultaneamente milhões de aplicações cliente, com alta disponibilidade e requisitos rigorosos de latência.
O Arquiteto Sênior para backends do GAE é responsável por projetar a arquitetura desses backends críticos, garantindo que sejam escaláveis, performáticos e seguros, além de evoluí-los conforme as necessidades e objetivos comerciais. Ele/ela deve possuir um profundo conhecimento técnico nesse domínio e nos componentes nele contidos, incluindo as interações entre os componentes e consumidores externos, tanto dentro quanto fora do domínio. Ele/ela deve estar familiarizado com práticas e padrões de programação e ser capaz de compreender código e configurações no domínio sob sua responsabilidade.
Além disso, ele/ela deve atuar como consultor junto às equipes técnicas dentro de seu domínio, abordando aspectos como preocupações arquiteturais — escalabilidade, resiliência, manutenibilidade, segurança, etc. — bem como escolhas tecnológicas. Esse aconselhamento deve levar em conta tanto as boas práticas do setor quanto o alinhamento com outras áreas da empresa.
O arquiteto também deve ser capaz de compreender os princípios de operação e suporte dos componentes desse domínio, colaborando com equipes operacionais na garantia de alta disponibilidade, visibilidade e medição desses componentes e do sistema como um todo.
Por fim, o arquiteto deve estar confortável em definir soluções para novos componentes, alterações em componentes existentes e avaliação de impacto de alterações propostas em todo o sistema que possam afetar os componentes de seu domínio. Ele/ela também deve ser capaz de auxiliar equipes na identificação e correção de defeitos.
**O que você fará:**
* Manter uma visão holística do sistema, seus componentes internos e dependências;
* Compreender as dependências em relação a entidades e sistemas externos;
* Garantir o alinhamento entre as equipes de desenvolvimento;
* Coordenar com as equipes para estabelecer um roadmap técnico claro, integrando-o com os projetos em andamento e com a disponibilidade das equipes;
* Apoiar análises de impacto para alterações nos sistemas existentes;
* Criar projetos de alto nível para novos projetos e alterações;
* Gerenciar descontinuações e evolução de software;
* Trabalhar em um ambiente ágil, em estreita colaboração com Product Owners, Gerentes de Projeto, Analistas Técnicos e Engenheiros para alinhar soluções que atendam aos objetivos do produto.
**O que você trará:**
* Proficiência em projetar sistemas escaláveis, confiáveis e mantíveis.
* Expertise em padrões arquiteturais (por exemplo, microsserviços, orientados a eventos, arquitetura em camadas).
* Boas habilidades técnicas de desenvolvimento (Java, C#, JavaScript, SQL, Python, C, etc);
* Proficiência em projetar sistemas escaláveis, confiáveis e mantíveis.
* Proficiência em modelar sistemas complexos utilizando práticas consolidadas (UML 2.0; diagramas; fluxogramas)
* Proficiência em produzir e manter documentação técnica clara
* Compreensão de sistemas distribuídos, balanceamento de carga e tolerância a falhas
* Compreensão de mecanismos de gerenciamento de recursos: pools de conexão, pools de threads, heaps, etc.;
* Compreensão de mecanismos de bancos de dados (SQL/não-SQL) — índices, partições de tabelas, estatísticas, etc. (SQL Server/Oracle/MongoDB/Redis).
* Experiência em projeto de APIs baseadas em HTTP (por exemplo, REST, GraphQL).
* Experiência em trabalhar com sistemas de grande escala (milhões de clientes) é um diferencial;
* Experiência em trabalhar com aplicações cliente é um diferencial;
* Experiência com sistemas de experimentação de funcionalidades / testes A/B é um diferencial;
* Habilidades claras de comunicação escrita e verbal, com capacidade de transmitir conceitos técnicos a partes interessadas não técnicas.
* Forte capacidade de sintetizar sistemas complexos em documentação legível
* Habilidades analíticas para avaliar trade-offs e tomar decisões informadas.
* Capacidade de alinhar soluções com metas comerciais e estratégias empresariais amplas.
* Capacidade de mediar e encontrar pontos em comum entre prioridades ou soluções técnicas ou comerciais conflitantes.
* Capacidade de influenciar decisões sem autoridade direta.
* Graduação ou mestrado em Ciência da Computação, Engenharia de Software ou área correlata
* No mínimo 5 anos de experiência em arquitetura de software ou funções relacionadas