O que a vaga pede
Objetivo do cargo
Desenvolver, testar e manter firmware para sistemas embarcados baseados em microcontroladores Espressif e ST, utilizando C/C++ e FreeRTOS, com foco em confiabilidade, desempenho e integração com hardware.
Principais responsabilidades
- Desenvolver e manter firmware para dispositivos embarcados.
- Implementar tarefas, filas, semáforos e mecanismos de sincronização com FreeRTOS.
- Integrar sensores, atuadores e periféricos por meio de interfaces como UART, SPI, I²C, CAN e ADC.
- Desenvolver funcionalidades de conectividade via Wi-Fi, Bluetooth/BLE e Ethernet, conforme o projeto.
- Implementar protocolos de comunicação, como MQTT, HTTP/HTTPS e Modbus.
- Realizar depuração e análise de falhas utilizando JTAG/SWD, osciloscópio e analisador lógico.
- Otimizar consumo de energia, uso de memória e tempo de resposta.
- Implementar atualização de firmware, watchdogs e mecanismos de recuperação de falhas.
- Elaborar testes e documentação técnica, mantendo o código versionado em Git.
- Colaborar com a equipe de hardware na integração e validação dos produtos.
Requisitos
- Experiência com programação em C/C++ para sistemas embarcados.
- Conhecimento de microcontroladores Espressif e ST.
- Experiência com FreeRTOS e conceitos de sistemas de tempo real.
- Familiaridade com ESP-IDF e STM32CubeIDE/CubeMX.
- Conhecimento de interrupções, timers, DMA e interfaces de comunicação.
- Capacidade de interpretar esquemas elétricos e datasheets.
- Experiência com Git e depuração de firmware.
- Formação técnica ou superior em Engenharia, Ciência da Computação, Automação, Eletrônica ou áreas correlatas, ou experiência prática equivalente.
Diferenciais
- Experiência com IoT e integração com plataformas em nuvem.
- Conhecimento de bootloaders, atualizações OTA, secure boot e criptografia.
- Experiência com testes automatizados de firmware e integração contínua.
- Familiaridade com protocolos industriais e aplicações de baixo consumo.
- Conhecimento de desenvolvimento de drivers e organização de firmware em camadas.
Competências comportamentais
Perfil analítico, organização, autonomia na investigação de problemas e boa comunicação para trabalhar em conjunto com equipes de hardware, software e produto.