Cadence Design Systems

Engenheiro(a) de Sistemas Distribuídos

PythonAWSGCPC++Go
Tradução automática. Consulte o original.

Sobre a Vaga

NA CADENCE, CONTRATAMOS E DESENVOLVEMOS LÍDERES E INOVADORES QUE QUEREM CAUSAR IMPACTO NO MUNDO DA TECNOLOGIA.

Estamos construindo uma ferramenta de análise de eletromigração e queda de IR em nível de transistor distribuído de próxima geração. Nossa equipe possui forte expertise em solucionadores numéricos e algoritmos de simulação de circuitos. Estamos procurando um(a) engenheiro(a) de sistemas distribuídos motivado(a) para ajudar a construir a infraestrutura escalável de processamento de dados para lidar com projetos de circuitos massivos em recursos de computação distribuída.

Por Que Se Juntar a Nós

Trazemos forte expertise em métodos numéricos e algoritmos de análise de circuitos, interfaces de solucionadores bem definidas e uma visão técnica clara. Você trabalhará ao lado de engenheiros experientes construindo infraestrutura distribuída do zero com ferramentas modernas. Esta é uma oportunidade de aprimorar sua expertise em sistemas distribuídos em escala de produção enquanto resolve problemas desafiadores no design de chips.

O Que Você Aprenderá

  1. Arquitetura e padrões de sistemas distribuídos em produção
  1. Design e otimização de pipelines de dados em larga escala
  1. Engenharia de desempenho para conjuntos de dados multi-TB
  1. Construção de infraestrutura confiável e observável
  1. Trabalho com especialistas de domínio em simulação de circuitos e métodos numéricos

Candidato(a) Ideal

Você está ansioso(a) para aprofundar sua expertise em sistemas distribuídos e animado(a) com arquitetura de pipeline de dados. Você tem experiência fundamental com computação distribuída em Python e quer enfrentar desafios em escala de produção. Você se sente confortável aprendendo novas tecnologias, fazendo perguntas e colaborando com especialistas de sistemas e de domínio. Você valoriza código limpo, observabilidade e experiência do usuário, além de desempenho.

Não é necessária experiência em simulação de circuitos. Precisamos do seu entusiasmo em construir infraestrutura escalável e confiável e da sua vontade de se tornar um(a) especialista em sistemas distribuídos.

ESTAMOS FAZENDO UM TRABALHO QUE IMPORTA. AJUDE-NOS A RESOLVER O QUE OUTROS NÃO PODEM.

O Que Você Construirá

Você contribuirá para a infraestrutura distribuída principal de uma plataforma baseada em Python orquestrando solucionadores de C++ de alto desempenho, trabalhando em:

Pipeline de Dados e Gerenciamento de I/O

  1. Construir pipelines de ingestão para netlists em larga escala e dados de simulação
  1. Implementar I/O de alto desempenho para bancos de dados de circuitos multi-TB
  1. Desenvolver camadas de serialização/desserialização que conectam componentes de Python e C++
  1. Projetar interfaces de streaming para resultados de solucionadores distribuídos

Orquestração de Tarefas e Fluxo de Trabalho

  1. Implementar distribuição de tarefas com agendamento tolerante a falhas para simulações de longa duração
  1. Desenvolver gerenciamento de recursos e balanceamento de carga entre clusters de computação
  1. Construir monitoramento e observabilidade para fluxos de trabalho distribuídos
  1. Otimizar granularidade de tarefas e gerenciamento de dependências

Visualização e Análise

  1. Desenvolver visualização escalável para resultados de simulação multi-dimensionais em escala TB
  1. Implementar exploração interativa de dados com técnicas de otimização (downsampling, LOD, rendering progressivo)

Experiência Necessária

Sistemas Distribuídos

  1. 3+ anos construindo sistemas distribuídos com Python
  1. Experiência com frameworks de computação distribuída (Dask, Spark, Ray ou Celery)
  1. Compreensão de padrões de computação distribuída, localidade de dados e tolerância a falhas

Engenharia de Dados

  1. Experiência com formatos de dados de alto desempenho (HDF5, Parquet, Arrow ou formatos colunares similares)
  1. Familiaridade com estratégias de particionamento de dados e padrões de streaming
  1. Alguma exposição à interoperabilidade Python/C++ (pybind11, nanobind)

Engenharia de Software

  1. Fortes habilidades de programação em Python, C++ com experiência em código de produção
  1. Confortável trabalhando em bases de código grandes e ambientes de desenvolvimento colaborativo
  1. Compreensão das melhores práticas de engenharia de software (testes, revisão de código)

Diferenciais

  1. Experiência em EDA, VLSI, design de semicondutores ou engenharia computacional
  1. Experiência com visualização de dados científicos/de engenharia
  1. Experiência em HPC com agendadores de jobs (Slurm, PBS, LSF)
  1. Conhecimento de aceleração por GPU
  1. Familiaridade com ferramentas modernas (Go, Plotly, Bokeh, Holoviews, Datashader)
  1. Contribuições em computação distribuída open-source ou outras
  1. Experiência com plataformas de nuvem (AWS, GCP, Azure)

Localização da Vaga

  1. Esta é uma posição em tempo integral, presencial, baseada em Burnaby (Grande Vancouver), Canadá. A presença no escritório é obrigatória.

A faixa salarial anual para British Columbia é 89,600 CAD a 166,400 CAD.

Você também pode ser elegível a receber remuneração por incentivo: bônus, ações e benefícios. Posições de vendas geralmente oferecem uma estrutura de remuneração por incentivo competitiva de "On Target Earnings" (OTE). Observe que a faixa salarial é uma diretriz e a remuneração pode variar com base em fatores como qualificações, nível de habilidade, competências e local de trabalho.

Mais oportunidades com um só perfil

Quer aparecer para várias vagas sem repetir todo o processo? Crie seu perfil e seja encontrado pelas empresas que usam a Nort.

Criar meu perfil

Seu próximo empregojá está te procurando.

Nort

Plataforma de recrutamento reverso para programadores