Sobre o serviço
TraduzidoDesenvolvo sistemas Linux embarcados para hardware conectado e levo um dispositivo do silício nu até um firmware confiável pronto para produção. Meu trabalho abrange toda a camada entre o silício e sua aplicação: construo imagens com Yocto e Buildroot, inicializo novas placas, escrevo e porto drivers de dispositivos, trabalho com o kernel e árvores de dispositivos para que periféricos personalizados funcionem realmente como pretendido. Quando um gateway precisa de um mecanismo de atualização limpo, inicialização segura ou um sistema de arquivos raiz somente leitura que sobreviva a uma perda repentina de energia, eu coloco essa base antes que a primeira linha do código do produto seja escrita.
Na prática, os projetos chegam até mim em um de dois estados. Ou você tem uma nova placa e nada inicializa ainda, ou há um BSP de fornecedor que funciona no kit de demonstração, mas desmorona uma vez que seu hardware difere da referência. Eu lido com ambos. Para inicializar uma placa, trabalho através do bootloader, temporização, multiplexação de pinos e árvores de dispositivos, obtenho uma inicialização limpa do kernel e operação correta dos barramentos com seus sensores, módulos de rádio e armazenamento. Para um BSP existente, desfaço as camadas do fornecedor, alcanço builds reproduzíveis e transformo imagens frágeis de uma única vez em algo que sua equipe pode reconstruir e liberar sob demanda.
Em cima da plataforma, construo a camada de aplicação: sistemas init e gerenciamento de serviços, rede e conectividade, atualizações over-the-air, registro e operação de watchdog para que dispositivos de campo se recuperem sozinhos em vez de exigir a visita de um engenheiro. Presto atenção a detalhes de confiabilidade que podem parecer chatos, pois eles decidem se sua frota de dispositivos opera silenciosamente por anos ou gera tickets de suporte toda semana. Você recebe documentação, builds reproduzíveis e firmware do qual não me envergonho.
— Imagens Yocto e Buildroot, camadas personalizadas, builds reproduzíveis
— Inicialização de placas: bootloader, árvores de dispositivos, temporização e pinos
— Trabalho de kernel e drivers para I2C, SPI, USB, MTD e outros barramentos
— Atualizações OTA, inicialização segura, watchdog e rootfs confiável
Na prática, os projetos chegam até mim em um de dois estados. Ou você tem uma nova placa e nada inicializa ainda, ou há um BSP de fornecedor que funciona no kit de demonstração, mas desmorona uma vez que seu hardware difere da referência. Eu lido com ambos. Para inicializar uma placa, trabalho através do bootloader, temporização, multiplexação de pinos e árvores de dispositivos, obtenho uma inicialização limpa do kernel e operação correta dos barramentos com seus sensores, módulos de rádio e armazenamento. Para um BSP existente, desfaço as camadas do fornecedor, alcanço builds reproduzíveis e transformo imagens frágeis de uma única vez em algo que sua equipe pode reconstruir e liberar sob demanda.
Em cima da plataforma, construo a camada de aplicação: sistemas init e gerenciamento de serviços, rede e conectividade, atualizações over-the-air, registro e operação de watchdog para que dispositivos de campo se recuperem sozinhos em vez de exigir a visita de um engenheiro. Presto atenção a detalhes de confiabilidade que podem parecer chatos, pois eles decidem se sua frota de dispositivos opera silenciosamente por anos ou gera tickets de suporte toda semana. Você recebe documentação, builds reproduzíveis e firmware do qual não me envergonho.
— Imagens Yocto e Buildroot, camadas personalizadas, builds reproduzíveis
— Inicialização de placas: bootloader, árvores de dispositivos, temporização e pinos
— Trabalho de kernel e drivers para I2C, SPI, USB, MTD e outros barramentos
— Atualizações OTA, inicialização segura, watchdog e rootfs confiável