Temple Health
Roblox
Engenheiro de Software Sênior, Computação de Infraestrutura de Dados
Sobre a oportunidade
Todos os dias, dezenas de milhões de pessoas acessam a Roblox para explorar, criar, jogar, aprender e se conectar com amigos em experiências digitais imersivas em 3D – todas criadas pela nossa comunidade global de desenvolvedores e criadores.
Na Roblox, estamos construindo as ferramentas e a plataforma que capacitam nossa comunidade a dar vida a qualquer experiência que possam imaginar. Nossa visão é reimaginar a maneira como as pessoas se reúnem, de qualquer lugar do mundo e em qualquer dispositivo. Temos a missão de conectar um bilhão de pessoas com otimismo e civilidade, e estamos em busca de talentos incríveis para nos ajudar a chegar lá.
Uma carreira na Roblox significa que você trabalhará para moldar o futuro da interação humana, resolvendo desafios técnicos únicos em escala e ajudando a criar experiências compartilhadas mais seguras e civilizadas para todos.
A plataforma de dados da Roblox processa petabytes de dados diariamente, impulsionando análises, ML e decisões de produto. A equipe de Computação da Plataforma de Dados é responsável pela camada de computação subjacente: os clusters de Kubernetes (EKS) onde todas as cargas de trabalho de Spark da Roblox são executadas, e o software que permite que engenheiros, analistas e profissionais de ML enviem e executem esse trabalho de forma confiável e econômica.
Como Engenheiro de Software Sênior nesta equipe, você construirá e operará os sistemas que ficam entre nossos usuários e o cluster. Isso inclui o serviço de envio de jobs de Spark, nossas bibliotecas internas de Spark, computação de notebooks interativos e automação do ciclo de vida do cluster. Você terá autonomia real, trabalhará em problemas cujo design ainda não foi definido e ajudará a decidir quais tecnologias a Roblox adotará a seguir.
Você irá
- Construir e ser responsável pelos serviços principais da plataforma de computação: Projetar, construir e operar o software por trás do envio de jobs de Spark, incluindo APIs, integração de agendamento e as bibliotecas das quais os usuários dependem.
- Lançar Spark interativo em escala: Entregar o Spark Connect para dar suporte a fluxos de trabalho de notebooks, incluindo o provisionamento e gerenciamento da computação EKS que os sustenta, com isolamento sensato, limites de recursos e controles de custo.
- Operar uma frota de clusters automatizada e segura: Construir automação de gerenciamento de frota para EKS, como rollouts blue-green que validam novas AMIs e versões do Kubernetes antes que cheguem às cargas de trabalho de produção, com interrupção mínima para os jobs em execução.
- Fazer com que os jobs sejam executados melhor sem esforço do usuário: Desenvolver nosso auto-tuner, que analisa o histórico e os logs de eventos do Spark para recomendar ou aplicar alterações de configuração de jobs que melhorem o desempenho e reduzam custos.
- Ser responsável pelo agendamento em lote no Kubernetes: Operar e atualizar nosso agendamento baseado em YuniKorn, incluindo design de filas, cotas, justiça entre locatários e atualizações de versão.
- Moldar o que adotaremos a seguir: Avaliar tecnologias emergentes, como a aceleração nativa de Spark (por exemplo, Apache Comet). Executar benchmarks rigorosos em cargas de trabalho reais da Roblox e fazer uma recomendação clara baseada em dados.
- Ser responsável pela confiabilidade e pelos custos: Definir SLOs e métricas, construir observabilidade e reduzir o trabalho manual, incidentes e gastos com computação em uma plataforma multi-tenant.
- Colaborar em toda a empresa: Trabalhar com equipes de engenharia de dados, ML, análise e infraestrutura para entender suas necessidades, comunicar mudanças e migrar usuários para caminhos melhores.
Você tem
- 5+ anos de experiência na construção e operação de sistemas distribuídos ou plataformas de infraestrutura de nível de produção.
- Spark no Kubernetes: Experiência prática na execução de Apache Spark no Kubernetes (EKS, GKE ou autogerenciado) como plataforma, incluindo comportamento de executor e driver, ajuste de recursos e solução de problemas de jobs lentos ou com falha. Estamos procurando construtores de plataforma, não apenas usuários de Spark.
- Profundidade em Kubernetes: Forte experiência na operação de clusters de Kubernetes de produção em escala, como atualizações, ciclo de vida de nós, escalonamento automático e operadores ou controladores.
- Fundamentos de engenharia: Forte proficiência em pelo menos uma das linguagens Go, Java, Scala ou Clojure, com um histórico de escrita de código backend limpo, bem testado e sustentável. Python é um diferencial, já que grande parte de nossas ferramentas de ajuste e análise o utiliza.
- Fluência em nuvem: Experiência com AWS (EKS, EC2, IAM, S3) ou equivalentes em GCP, e infraestrutura como código.
- Responsabilidade operacional: Experiência em levar um sistema desde o design até a operação em produção, incluindo on-call, resposta a incidentes e observabilidade.
- Liderança técnica: Capacidade de influenciar decisões de design entre equipes, orientar engenheiros e promover o alinhamento em mudanças transversais.
- Bacharelado em Ciência da Computação ou experiência prática equivalente.
Diferenciais
- Experiência com YuniKorn, Volcano, Kueue ou outros agendadores de lote no Kubernetes.
- Experiência com Spark Connect, Livy, Kyuubi ou outras camadas interativas e de gateway para Spark.
- Experiência com o Spark Operator, Karpenter, Helm, Terraform ou Argo.
- Experiência na construção de ferramentas que utilizam logs de eventos ou métricas do Spark para ajuste, atribuição de custos ou detecção de anomalias.
- Experiência na manutenção de builds internos de Spark ou na condução de atualizações de versão do Spark.
- Familiaridade com mecanismos de execução nativos (Comet, Gluten, Velox) ou ajuste de desempenho da JVM.
- Experiência na migração de cargas de trabalho de YARN/Hadoop para Kubernetes.
- Contribuições para projetos de código aberto no ecossistema de dados ou Kubernetes.
- Experiência operando em escala de internet do consumidor (100M+ usuários).
Faixa Salarial Anual
Para cargos baseados em nossa sede em San Mateo, CA: O salário base inicial para esta posição é conforme mostrado abaixo. O salário base real depende de uma variedade de fatores relacionados ao trabalho, como histórico profissional, treinamento, experiência de trabalho, localização, necessidades de negócios e demanda de mercado. Portanto, em algumas circunstâncias, o salário real pode ficar fora desta faixa esperada. Esta faixa salarial está sujeita a alterações e pode ser modificada no futuro. Todos os funcionários em tempo integral também são elegíveis para remuneração em ações e para benefícios conforme descrito nesta página.
$243,290—$295,250 USD
As funções baseadas em escritório são presenciais às terças, quartas e quintas-feiras, com presença opcional às segundas e sextas-feiras (salvo indicação em contrário).
A Roblox oferece oportunidades iguais de emprego a todos os funcionários e candidatos a emprego e proíbe discriminação e assédio de qualquer tipo, independentemente de raça, cor, religião, idade, sexo, origem nacional, status de deficiência, genética, status de veterano protegido, orientação sexual, identidade ou expressão de gênero, ou qualquer outra característica protegida por leis federais, estaduais ou locais. A Roblox também oferece acomodações razoáveis a candidatos com deficiências qualificadas ou crenças religiosas durante o processo de recrutamento.
Para cargos baseados nos EUA, observe que a Empresa pode não conseguir empregar candidatos para esta função que possuam autorização de trabalho nos Estados Unidos relacionada a certas categorias de visto dos EUA, ou oferecer suporte a patrocínio futuro de H-1B neste momento.
