CONCEPT SOLUTIONS LLC
Majestic Labs
Engenheiro(a) de Software de Sistemas
Sobre a vaga
Somos uma startup de IA EUA-Israel em rápido crescimento, 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 personalizados 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!
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 personalizado. 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.
Responsabilidades
- 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.
- 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.
- Trabalhar com núcleos de processador personalizados, coordenação multi-core, traps/exceções, tabelas de páginas, mecanismos de proteção, MMIO, DMA e hierarquias de memória do acelerador.
- 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.
- Ajudar a moldar a arquitetura de software do dispositivo de produção: a fronteira entre componentes em modo kernel, bibliotecas de runtime em userspace, backends de simulador e backends nativos de hardware.
- 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.
- Depurar problemas que cruzam camadas de abstração: execução de grafo de IA, agendamento de runtime, filas de dispositivo, firmware, tradução de memória, interrupções, comportamento do simulador e estado do hardware.
Requisitos
- 5-10 anos de experiência na construção de software de sistemas de baixo nível, firmware, runtimes, sistemas operacionais, drivers de dispositivo ou software de acelerador.
- Fortes habilidades de programação em C e conforto em ler ou escrever assembly quando necessário.
- 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.
- Experiência com um ou mais dos seguintes: firmware de processador, software de sistemas ARM ou RISC-V, drivers Linux, firmware bare-metal, bootloaders, hypervisors, internos de RTOS ou runtimes de acelerador.
- Capacidade de projetar e manter interfaces binárias estáveis e contratos versionados entre componentes de software que evoluem independentemente.
- Fortes instintos de depuração em fronteiras de hardware/software, incluindo casos onde a única evidência disponível é um dump de memória, buffer de trace, contador de hardware, estado da fila ou log do simulador.
- 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.
- Excelentes habilidades de comunicação e a capacidade de colaborar com equipes de hardware, compilador, runtime e produto.
Qualificações Preferenciais
- Experiência com aceleradores personalizados, GPUs, NPUs, SmartNICs, DPUs ou outros SoCs complexos.
- Experiência com 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.
- 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 de zero-copy.
- 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.
- Experiência no projeto de protocolos de fila, buffers de comando, filas de conclusão, doorbells, objetos de sincronização ou sistemas produtor/consumidor de baixa latência.
- 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.
- 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.
Majestic Labs é um empregador que oferece igualdade de oportunidades, profundamente comprometido com a diversidade de background e pensamento. 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!
