Majestic Labs

Engenheiro(a) de Software de Sistemas

Tradução automática. Consulte o original.

Sobre a oportunidade

Somos uma startup de IA de rápido crescimento, com sede nos EUA e Israel, construindo infraestrutura de próxima geração para as cargas de trabalho de IA mais exigentes do mundo. Nossa missão é acelerar o futuro da inteligência e torná-la universalmente acessível, entregando servidores de IA customizados full stack otimizados para inferência e treinamento em larga escala.

Apoiados por investidores de primeira linha e liderados por veteranos da indústria, estamos crescendo rapidamente. Buscamos engenheiros e operadores com visão de futuro que prosperam em um ambiente colaborativo e se destacam na resolução de desafios complexos a partir de princípios fundamentais. Se você quer construir infraestrutura que muda fundamentalmente o que o mundo pode realizar com IA, venha se juntar a nós!

Sobre a posição

Estamos procurando um(a) engenheiro(a) de software de sistemas para trabalhar nas camadas mais baixas dessa pilha: o runtime, firmware e software de dispositivo que ficam entre as cargas de trabalho de IA de alto nível e o hardware acelerador customizado. Você ajudará a construir o software responsável pela inicialização do dispositivo, dispatch do kernel, mapeamento de memória, enfileiramento, sincronização, monitoramento de desempenho e infraestrutura de depuração.

Este não é um papel convencional de firmware embarcado. O trabalho abrange firmware, interfaces de sistema operacional, inicialização de simulador, design de runtime de acelerador, contratos de hardware/software e caminhos de execução críticos para desempenho.

Buscamos indivíduos inteligentes, curiosos e autodidatas que gostem de resolução criativa de problemas e aprendizado contínuo. Mesmo que você não atenda a todos os requisitos, adoraríamos ouvir você se tiver a mentalidade para enfrentar desafios complexos.

Majestic Labs é um empregador que oferece igualdade de oportunidades, profundamente comprometido com a diversidade de origens e pensamentos. Se você está pronto para ousar grandemente, aprender com os erros, se envolver em debates vigorosos e ajudar a criar uma mudança de patamar na capacidade técnica humana, queremos conhecê-lo!

Responsabilidades

  1. Ser responsável por contratos críticos de boot e runtime: layout da imagem de firmware, configuração, release principal, detecção de liveness, filas compartilhadas, formatos de comando/conclusão, mapeamentos de memória e ABIs versionadas.
  1. Construir e otimizar caminhos de comunicação de baixa latência entre o software de runtime do host e os núcleos do acelerador, incluindo filas de submissão/conclusão, doorbells, interrupções, caminhos de polling e mecanismos de sincronização.
  1. Trabalhar com núcleos de processador customizados, coordenação multi-core, traps/exceções, tabelas de páginas, mecanismos de proteção, MMIO, DMA e hierarquias de memória do acelerador.
  1. Desenvolver infraestrutura de observabilidade e depuração para um sistema acelerador distribuído complexo, incluindo métricas de boot, contadores de hardware, captura de trace, monitoramento de desempenho, caminhos de depuração e diagnóstico de falhas para jobs travados ou lentos.
  1. Ajudar a moldar a arquitetura de software do dispositivo de produção: a fronteira entre componentes em modo kernel, bibliotecas de runtime em userspace, backend s de simulador e backend s nativos de hardware.
  1. Colaborar estreitamente com arquitetos de hardware, engenheiros de compilador/runtime, desenvolvedores de kernel e engenheiros de desempenho para definir os contratos de software/hardware para futuros chips.
  1. Depurar problemas que cruzam camadas de abstração: execução de grafos de IA, agendamento de runtime, filas de dispositivos, firmware, tradução de memória, interrupções, comportamento do simulador e estado do hardware.

Requisitos

  1. 5-10 anos de experiência construindo software de sistema de baixo nível, firmware, runtimes, sistemas operacionais, drivers de dispositivo ou software de acelerador.
  1. Fortes habilidades de programação em C e conforto em ler ou escrever assembly quando necessário.
  1. Profundo entendimento dos fundamentos da arquitetura de computadores: modos de privilégio de CPU, memória virtual, interrupções, atômicos, caches, ordenação de memória, MMIO, DMA e contadores de desempenho.
  1. Experiência com um ou mais dos seguintes: firmware de processador, software de sistema ARM ou RISC-V, drivers de kernel Linux, firmware bare-metal, bootloaders, hypervisors, internos de RTOS ou runtimes de acelerador.
  1. Capacidade de projetar e manter interfaces binárias estáveis e contratos versionados entre componentes de software que evoluem independentemente.
  1. Fortes instintos de depuração em limites de hardware/software, incluindo casos onde a única evidência disponível é um dump de memória, buffer de trace, contador de hardware, estado de fila ou log de simulador.
  1. Confortável trabalhando em um ambiente de rápida evolução onde simuladores, firmware, drivers, bibliotecas de runtime e especificações de hardware estão evoluindo juntos.
  1. Excelentes habilidades de comunicação e a capacidade de colaborar com equipes de hardware, compilador, runtime e produto.

Qualificações Preferenciais

  1. Experiência com aceleradores customizados, GPUs, NPUs, SmartNICs, DPUs ou outros SoCs complexos.
  1. Experiência em firmware de baixo nível, especialmente modos de privilégio, registradores de controle/status, traps, proteção de memória, memória virtual, boot multi-core ou suporte de depuração de hardware.
  1. Experiência com drivers Linux ou drivers/runtimes em userspace, incluindo ioctl/mmap APIs, DMA, tratamento de IRQ, trade-offs entre polling e interrupção, e caminhos zero-copy.
  1. Experiência com infraestrutura de trace e desempenho de hardware como ARM CoreSight, ETM/ETF/ETR, funis ATB, PMUs de hardware, codificadores de trace ou sistemas de observabilidade de SoC semelhantes.
  1. Experiência em projetar protocolos de fila, buffers de comando, filas de conclusão, doorbells, objetos de sincronização ou sistemas produtor/consumidor de baixa latência.
  1. Experiência com inicialização de simulador e silício: QEMU, plataformas virtuais, SystemC, simulação RTL, FPGA/prototipagem ou depuração de primeiro silício.
  1. Experiência com sistemas de build modernos como Bazel, compilação cruzada, toolchains freestanding, scripts de linker e sistemas de build herméticos em geral.

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