Moray
Tecnologia agrícola, inteligência artificial e robótica autônomaSão Paulo (híbrido)
A Moray é uma agtech brasileira que combina inteligência artificial, agronomia e robótica para desenvolver sistemas de agricultura autônoma. Para quem procura vagas de software embarcado em São Paulo, a oportunidade mais relevante capturada pelo nosso radar é a de Engenheiro(a) de Software Embarcado Pleno, em modelo híbrido, com C, C++, Linux embarcado, ROS2, FreeRTOS, NVIDIA Jetson/Orin, ARM/STM32, CAN, I2C, SPI, serial, LiDAR e Python.
A resposta direta é: a vaga da Moray é indicada para quem já consegue integrar software, sensores e hardware em um robô real — não apenas escrever aplicações no computador. O trabalho pede capacidade de depurar na bancada, entender restrições de tempo real, operar Linux em plataformas NVIDIA e desenvolver firmware para microcontroladores. O anúncio oficial estava acessível na data desta atualização, mas vagas podem fechar sem aviso; confirme o status no portal de candidatura da Moray antes de preparar o processo.
Esta página explica o que a Moray constrói, quais competências aparecem na vaga, como montar um portfólio alinhado e onde Zig pode fortalecer fundamentos transferíveis. Não há evidência pública de que a empresa use Zig nessa equipe: a candidatura deve priorizar a stack explicitamente pedida.
O que a Moray faz
A Moray desenvolve tecnologia para agricultura de precisão e apresenta sua visão como um novo sistema operacional para agricultura autônoma e adaptativa, com decisões aplicadas no nível de cada planta. Segundo o site institucional, a empresa nasceu de uma parceria estratégica entre SpaceTime Labs e SLC Agrícola e reúne um time que trabalha na interseção entre agronomia, inteligência artificial e robótica.
Entre as frentes exibidas pela empresa está o Leopard, uma plataforma robótica autônoma voltada ao monitoramento de lavouras. O produto combina percepção, processamento, navegação e integração com plataformas agrícolas. Em vez de depender apenas de amostragens manuais, uma máquina desse tipo pode coletar dados em campo com frequência e escala maiores, alimentando modelos e decisões agronômicas.
Para a engenharia de sistemas, esse domínio cria problemas concretos:
- câmeras, LiDAR e outros sensores precisam produzir dados utilizáveis em movimento;
- computadores embarcados devem processar percepção e navegação com energia e refrigeração limitadas;
- microcontroladores precisam controlar periféricos e responder dentro de prazos previsíveis;
- o robô deve operar em terreno irregular, poeira, calor, vibração e conectividade instável;
- falhas precisam resultar em estado seguro, não em movimento descontrolado;
- logs devem permitir reconstruir o que aconteceu longe da bancada de desenvolvimento.
É um ambiente em que software “funcionando na minha máquina” não basta. A entrega só está completa quando o conjunto funciona no hardware, no campo e sob condições adversas.
Vaga de software embarcado registrada
O nosso catálogo registrou uma posição de Embedded Software Engineer, traduzida no site como Engenheiro de Software Embarcado Pleno, para atuação híbrida em São Paulo. O anúncio descreve desenvolvimento e manutenção de firmware e software embarcado em C e C++, integração de sensores e periféricos, trabalho com ROS2 e FreeRTOS e otimização em plataformas NVIDIA e ARM.
A stack capturada inclui:
| Camada | Tecnologias e competências |
|---|---|
| Computação embarcada | Linux, NVIDIA Jetson e NVIDIA Orin |
| Firmware | C, C++, ARM e STM32 |
| Robótica | ROS2 e LiDAR |
| Tempo real | FreeRTOS e otimização de performance |
| Interfaces | CAN, I2C, SPI e comunicação serial |
| Automação e testes | Python |
| Bancada | Osciloscópio e ferramentas de diagnóstico |
A combinação é importante. Jetson/Orin + ROS2 aponta para computação de alto nível no robô, como percepção, fusão de dados e coordenação de nós. STM32 + FreeRTOS aponta para controle próximo do hardware, aquisição de sensores e tarefas com latência mais previsível. CAN, I2C, SPI e serial conectam as camadas físicas. O profissional precisa entender as fronteiras entre elas.
A página da vaga também marca a posição como pleno e híbrida, não remota. Isso é coerente com trabalho de robótica: parte da implementação pode ser feita no computador, mas integração, testes, medições e diagnóstico exigem contato com placas, sensores, protótipos e a própria plataforma.
O que estudar para a entrevista
C e C++ em sistemas embarcados
Revise os fundamentos que se tornam críticos quando um erro pode travar um robô: ponteiros, referências, duração de objetos, alinhamento, volatile, atomics, concorrência, representação de dados e limites de buffers. Saiba explicar onde usa alocação dinâmica e onde prefere memória estática ou pré-alocada.
Prepare exemplos reais de:
- corrupção de memória encontrada com depurador ou sanitizers no host;
- fila entre produtor e consumidor sem perda silenciosa de mensagens;
- parser de protocolo resistente a frames incompletos;
- redução de latência ou uso de CPU medida antes e depois;
- código compartilhado entre testes no host e execução no target.
Uma boa entrevista de embarcados não avalia apenas sintaxe. Ela verifica se você consegue justificar decisões quando há recursos limitados e falhas intermitentes.
Linux em NVIDIA Jetson e Orin
Jetson e Orin são plataformas comuns em robótica que precisa executar visão computacional e modelos próximos aos sensores. Para a vaga, vale estudar:
- processos, threads, prioridades e afinidade de CPU;
- dispositivos em
/dev, permissões e regrasudev; - serviços, inicialização e reinício controlado;
- comunicação serial e CAN no Linux;
- análise com
gdb,strace, logs e ferramentas de performance; - containers em dispositivos de borda, quando fizer sentido;
- impacto de temperatura, energia e throttling no desempenho;
- cross-compilation e implantação reproduzível no target.
Não basta dizer que já usou Ubuntu. Mostre que entende Linux como parte de um produto embarcado: boot, serviço, dispositivo, atualização, observabilidade e recuperação.
ROS2: nós, tópicos e falhas distribuídas
Em ROS2, revise nós, tópicos, serviços, ações, parâmetros, executors e políticas de QoS. Em robótica de campo, a pergunta relevante não é só “como publicar uma mensagem?”, mas “o que acontece quando a mensagem atrasa, chega fora de ordem ou deixa de chegar?”.
Prepare-se para discutir:
- escolha entre confiabilidade e latência em QoS;
- timestamp e sincronização entre sensores;
- frequência de publicação e backpressure;
- separação entre percepção, planejamento e controle;
- gravação e reprodução de dados para reproduzir defeitos;
- monitoramento de nós e estratégia de reinício;
- testes com simulação antes de levar uma mudança ao robô.
A Moray destaca desenvolvimento orientado por simulação em seu material institucional. Portanto, demonstrar que você sabe validar comportamento em ambiente simulado e depois fechar o ciclo no hardware é especialmente relevante.
FreeRTOS e tempo real
No lado do microcontrolador, estude tarefas, prioridades, filas, semáforos, mutexes, interrupções, timers e watchdogs. Saiba explicar priority inversion, dimensionamento de stack e por que uma ISR deve ser curta.
Um cenário típico de entrevista seria: “o sensor publica por SPI, uma tarefa filtra os dados e outra envia telemetria por CAN; como impedir que uma falha de comunicação atrase o controle?”. Uma resposta sólida separa caminhos críticos e não críticos, evita bloqueios indefinidos, mede tempo de execução e define comportamento degradado.
Consulte nosso guia de sistemas embarcados em Zig para revisar conceitos gerais e o panorama de carreira em embedded para entender o mercado.
Sensores, barramentos e bancada
A vaga cita CAN, I2C, SPI, serial, LiDAR e osciloscópio. Isso sinaliza que a equipe espera diagnóstico físico, não apenas leitura de logs.
Você deve conseguir explicar:
- quando usar I2C ou SPI e quais falhas procurar em cada barramento;
- terminação, arbitragem e identificação de erros em CAN;
- baud rate, framing e níveis elétricos em comunicação serial;
- como confirmar clock, dados e chip select com analisador lógico;
- como usar osciloscópio para investigar ruído, reset ou alimentação;
- como separar falha de driver, protocolo, cabeamento, sensor ou placa.
Se ainda não trabalhou profissionalmente com bancada, monte um laboratório pequeno com STM32 ou outra placa ARM, um sensor barato e um analisador lógico USB. O importante é aprender a formular hipótese e coletar evidência.
Portfólio recomendado para a Moray
Um projeto alinhado à vaga seria um robô agrícola simplificado ou plataforma móvel de inspeção. Não é necessário construir um veículo caro. Você pode dividir o sistema entre simulação, computador embarcado e microcontrolador.
Uma arquitetura possível:
- use ROS2 em Linux para publicar uma rota e receber dados de sensores simulados;
- processe nuvem de pontos ou distâncias de um LiDAR real ou gravado;
- use um STM32 com FreeRTOS para ler sensores e controlar um atuador pequeno;
- conecte Linux e MCU por CAN ou serial com protocolo documentado;
- adicione watchdog e estado seguro quando a comunicação expirar;
- registre timestamps e métricas de latência;
- escreva testes no host para parser, máquina de estados e mensagens;
- documente uma sessão de diagnóstico com osciloscópio ou analisador lógico.
O README deve mostrar diagrama, decisões, comandos de build, fotos da bancada e limitações. Inclua uma tabela com latência média e pior caso, uso de CPU, frequência das tarefas e comportamento sob falha. Um vídeo curto ajuda, mas evidência técnica escrita costuma ser mais valiosa na entrevista.
Evite um portfólio que só demonstra o caminho feliz. Provoque falhas: desconecte o sensor, corrompa um frame, atrase mensagens, reinicie um nó ROS2 e aqueça a CPU para observar throttling. Depois explique como o sistema detecta e reage.
Como Zig pode ajudar sem substituir a stack
Não encontramos indicação pública de que a Moray use Zig no produto ou na vaga descrita. C, C++, Python, ROS2, FreeRTOS e Linux devem receber prioridade no currículo.
Zig ainda pode ser útil para desenvolver competências de sistemas:
- memória explícita e escolha consciente de allocators;
- tratamento de erros visível no fluxo do programa;
- interoperabilidade com bibliotecas C;
- cross-compilation para diferentes arquiteturas;
- testes de parsers e protocolos;
- criação de ferramentas de diagnóstico sem runtime pesado.
Um uso crível no portfólio seria escrever em Zig uma CLI no host para decodificar frames CAN, converter logs, validar mensagens ou enviar comandos de teste. A ferramenta pode conversar com componentes C por meio da interoperabilidade entre Zig e C. Isso mostra domínio adicional sem sugerir uma reescrita desnecessária do firmware.
Também vale praticar tratamento de erros em Zig e comparar o modelo com códigos de retorno em C e exceções em C++. Na entrevista, apresente o aprendizado como fundamento transferível, não como argumento de que Zig é automaticamente superior à stack escolhida pela empresa.
Como adaptar currículo e entrevista
Para essa posição, abra o currículo com o contexto mais aderente: software embarcado, robótica, Linux, C/C++ e integração com hardware. Depois destaque projetos e resultados.
Prefira frases concretas:
- “Integrei sensor via SPI em STM32 com FreeRTOS e reduzi a latência de leitura de X para Y.”
- “Implementei comunicação CAN com detecção de timeout e estado seguro.”
- “Diagnostiquei perda de mensagens ROS2 por configuração de QoS e validei a correção com reprodução de dados.”
- “Otimizei pipeline em Jetson e medi uso de CPU, memória e temperatura.”
- “Automatizei testes de bancada em Python e reduzi o tempo de regressão.”
Se não tem experiência profissional em robótica, use projetos acadêmicos, competição, iniciação científica, contribuição open source ou laboratório pessoal — mas seja claro sobre o contexto. Não transforme um protótipo de fim de semana em “experiência de produção”.
Prepare histórias sobre integração difícil, defeitos intermitentes e comunicação entre equipes de software, eletrônica, mecânica e produto. Em robótica, a causa raramente respeita a fronteira de um único repositório.
Veja também o guia de currículo para desenvolvedor de sistemas e as perguntas de entrevista para sistemas embarcados.
Moray ou outras empresas de embarcados?
A Moray se diferencia pelo encontro entre agricultura, robótica autônoma e IA na borda. Compare o foco:
| Empresa | Domínio | Ênfase técnica |
|---|---|---|
| Moray | Robótica agrícola | Jetson/Orin, ROS2, LiDAR, STM32, FreeRTOS |
| Tractian | IoT industrial | Sensores, firmware, telemetria e manutenção preditiva |
| John Deere | Máquinas agrícolas | Eletrônica veicular, controle e software de produto |
| AGCO | Máquinas agrícolas | C/C++, CAN e sistemas embarcados |
| Toradex | Computação embarcada | Linux, Yocto, módulos e edge computing |
| Nextpower | Energia solar | C, RTOS, Linux e JTAG em produto industrial |
Escolha a Moray se você quer proximidade com protótipos, sensores, percepção e robôs operando em campo. Se prefere distribuição Linux e BSP, a Toradex pode ser mais alinhada; se prefere firmware de sensor industrial, compare com a Tractian; se busca uma organização automotiva ou industrial maior, veja também a Bosch Brasil.
Como se candidatar
Siga um processo objetivo:
- abra o anúncio oficial da vaga e confirme que continua ativo;
- confira senioridade, regime híbrido e localização em São Paulo;
- adapte o currículo aos requisitos que você realmente domina;
- inclua links para um ou dois projetos relevantes, não uma lista genérica de repositórios;
- prepare exemplos de C/C++, Linux, ROS2, FreeRTOS e diagnóstico de hardware;
- pesquise o produto e esteja pronto para explicar por que robótica agrícola interessa a você;
- acompanhe o nosso hub de vagas para mudanças de status e posições semelhantes.
Candidate-se somente pelos canais indicados pela empresa. O Zig Brasil contextualiza oportunidades de programação de sistemas, mas não recebe currículos e não representa a Moray.
Perguntas frequentes
A Moray tem vaga de software embarcado em São Paulo?
Sim. Na data desta atualização, o anúncio de Embedded Software Engineer estava acessível no portal Factorial da Moray. A posição é de nível pleno e modelo híbrido em São Paulo. Confirme o status no link oficial, pois a disponibilidade pode mudar.
Quais tecnologias a vaga pede?
A stack capturada inclui C, C++, Linux embarcado, NVIDIA Jetson/Orin, ROS2, FreeRTOS, ARM/STM32, Python, CAN, I2C, SPI, serial, LiDAR e uso de osciloscópio ou ferramentas de diagnóstico.
A vaga é remota?
Não. O registro indica trabalho híbrido em São Paulo. A presença física é compatível com atividades de bancada, integração de sensores e testes em plataforma robótica.
Preciso ter experiência no agronegócio?
Conhecimento do domínio ajuda, mas a vaga enfatiza competências de software embarcado e robótica. Se você vem de automotivo, indústria, drones ou IoT, destaque habilidades transferíveis e demonstre interesse em aprender o contexto agrícola.
A Moray usa Zig?
Não há evidência pública suficiente para afirmar que a Moray use Zig nessa equipe. Para a candidatura, priorize C, C++, Linux, ROS2 e FreeRTOS. Zig pode complementar seu portfólio com ferramentas de diagnóstico, parsers e treino de fundamentos.
O que colocar no portfólio?
Mostre integração entre Linux/ROS2 e um microcontrolador, comunicação CAN ou serial, leitura de sensores, comportamento seguro sob falha, testes e métricas. Documente o diagnóstico com ferramentas de bancada, não apenas o resultado final.