November 15, 2024

#232 - Chat with Nelson Terra

(English version at the bottom)


Tive o prazer de bater um papo com Nelson Terra, mestre em computação aeronáutica e engenheiro sênior de sistemas embarcados para foguetes lançadores de satélites. Durante o nosso bate-papo, exploramos sua trajetória profissional, alguns dos projetos em que esteve envolvido e os desafios de desenvolver sistemas embarcados para missões críticas.

Nelson se formou em engenharia da computação, mas seu maior interesse sempre esteve na intersecção entre computação e eletrônica, especialmente em áreas próximas ao hardware. Esse interesse o motivou a buscar diversas oportunidades nesse campo ainda durante a faculdade. Além de atuar como mentor em disciplinas-chave, como processamento de sinais digitais, Nelson estagiou e aplicou na prática os conhecimentos adquiridos. Um exemplo disso foi o desenvolvimento de um sistema de software embarcado para processamento de imagens médicas utilizando hardware FPGA.


Recém-formado, Nelson teve a oportunidade de trabalhar com sistemas embarcados em um fabricante nacional de produtos de automação industrial, como controladores lógico programáveis (CLPs) e interfaces homem-máquina (IHMs). Nesse papel, foi responsável por desenvolver e implementar protocolos de comunicação, como Modbus RTU e Modbus TCP, amplamente usados na automação industrial. Ele garantiu a confiabilidade na transmissão de dados entre controladores e sensores, e desenvolveu a interface de software para o Modbus TCP, permitindo integração rápida e eficiente entre dispositivos via redes Ethernet. Além disso, otimizou rotinas de tratamento de pacotes, melhorando o tempo de resposta do sistema e a correção de erros de transmissão.


Após alguns anos, Nelson migrou do setor de automação industrial para o setor aeroespacial, integrando uma empresa nacional de defesa, onde desenvolveu sistemas embarcados para aviônicos. Sua função principal foi no setor de validação, onde era responsável por testar os códigos desenvolvidos para serem validados nos hardwares das aplicações. Nesse contexto, Nelson foi introduzido a um novo conceito de validação de código para aplicações críticas: os testes baseados em requisitos. Esse método consiste em derivar casos de teste diretamente da documentação dos requisitos, garantindo que cada um deles seja coberto, testável e que não haja conflitos entre eles, assegurando a robustez e a conformidade dos sistemas desenvolvidos para missões críticas.


Um exemplo simples para ilustrar essa ideia é um requisito para garantir o comportamento de um subsistema composto por três sensores idênticos em redundância. O requisito determina que, se os três sensores apresentarem leituras dentro de uma faixa de tolerância, o valor utilizado pelo programa deve ser a média das três leituras. No entanto, se um dos sensores apresentar um valor discrepante fora da tolerância, ele deve ser descartado, e o sistema deve exibir uma mensagem de aviso na tela do piloto, alertando sobre o problema. Esse tipo de requisito orienta a criação de casos de teste que simulam as diferentes condições dos sensores, para verificar se o comportamento do sistema é exatamente como esperado em cada situação.


Esse é um trabalho que exige grande atenção aos detalhes e ao uso preciso das palavras na redação dos requisitos. Nelson comentou que é um processo bidirecional: de um lado, os testes são desenvolvidos com base nos requisitos, mas, por outro lado, à medida que os testes são criados e casos extremos identificados, pode ser necessário atualizar o próprio requisito para melhor especificar e esclarecer esses aspectos. Esse ajuste contínuo garante que os requisitos sejam claros e abrangentes, alinhando a expectativa de desempenho do sistema com a realidade dos cenários testados.


Durante essa experiência, Nelson foi convidado a passar um ano em Israel, desempenhando a mesma função, mas em outra empresa do grupo. Essa oportunidade foi especialmente enriquecedora, pois foi a primeira vez que trabalhou no exterior, vivenciando um ambiente e uma cultura bastante diferentes dos quais estava acostumado. Nelson ficou impressionado com os incentivos financeiros direcionados à indústria e com a ampla adoção de tecnologia pela população em seu cotidiano. Israel, sendo um dos pioneiros em diversas inovações tecnológicas tanto militares quanto civis, desempenhou um papel fundamental no desenvolvimento de tecnologias que utilizamos diariamente, como drones, sistemas de cibersegurança e dispositivos de comunicação avançada.


No setor aeroespacial, Israel, apesar de seu tamanho e história recente, alcançou alguns dos maiores avanços tecnológicos do século XX. Entre os exemplos, destacam-se o desenvolvimento dos jatos de combate Kfir nos anos setenta, os satélites de reconhecimento Ofek, que operam em órbita terrestre baixa desde o final dos anos oitenta, e os foguetes de lançamento Shavit, que também têm operado desde essa época. Nelson destacou que, durante seu ano trabalhando em Israel, um dos maiores diferenciais que notou foi o forte embasamento empírico baseado em testes, que fomenta a inovação. Esse enfoque contrasta com as barreiras burocráticas e estruturais que muitas vezes dificultam o progresso tecnológico em outros contextos. Esse ambiente mais ágil e orientado a resultados permitiu que Israel se posicionasse como um líder em inovação, mesmo em áreas de alta complexidade como a aeroespacial.


Durante a pandemia de COVID-19, Nelson retornou ao Brasil e mudou de trabalho, integrando-se remotamente a uma empresa canadense. Simultaneamente, ele iniciou um mestrado à distância, onde desenvolveu uma tese intitulada "Evaluating Frameworks for Embedded Systems Virtual Platform Development: A Comparative Study" com a proposta de explorar alternativas para a dependência do hardware no processo de desenvolvimento de sistemas embarcados.


Em sua nova função, enfrentou o maior desafio até então, que exigiu trabalho nos níveis mais baixos da computação, muitas vezes utilizando a linguagem Assembly para uma ampla gama de processadores. Em uma ocasião, ao fazer o debug de um programa, Nelson notou que o compilador estava alterando o fluxo do seu código devido ao uso de ponteiros na linguagem C e a uma otimização automática realizada pelo compilador que estava utilizando.


Em 2023, Nelson recebeu uma proposta que o levou a mudar-se com sua família de Porto Alegre, no sul do Brasil, para uma pequena cidade de cerca de dez mil habitantes no interior da Escócia. Atuando como engenheiro sênior de sistemas embarcados, ele está na vanguarda da intensa corrida espacial no Reino Unido. Devido à geografia do país, foguetes podem ser lançados em órbitas solares síncronas e polares. As órbitas solares síncronas, como as utilizadas pelos satélites Landsat e Terra, oferecem iluminação consistente e cobertura global para monitoramento da superfície terrestre, sendo aplicáveis em áreas como agricultura de precisão. Por sua vez, as órbitas polares, como as dos satélites NOAA e MetOp, garantem uma cobertura completa da Terra para monitoramento de eventos meteorológicos.


A empresa onde Nelson trabalha planeja lançar seu primeiro foguete na baixa órbita terrestre em breve. Nelson está contribuindo para validar e aprimorar o software e os sistemas embarcados, continuando a realizar testes baseados em requisitos, assim como fez no início de sua carreira. Ele participa regularmente de reuniões sobre arquitetura de sistemas, além de validar e robustecer os sistemas embarcados. Além disso, Nelson realiza testes Hardware in the Loop (HIL) e automatiza os testes de software, garantindo que cada commit do software esteja em conformidade com os requisitos do sistema.


-----

I had the pleasure of chatting to Nelson Terra, who holds a master's degree in aeronautical computing and is a senior embedded systems engineer for satellite launch rockets. During our chat, we explored his professional career, some of the projects he has been involved in and the challenges of developing embedded systems for critical missions.


Nelson graduated in computer engineering, but his main interest has always been in the intersection between computing and electronics, especially in areas close to hardware. This interest motivated him to pursue various opportunities in this field while still at university. As well as acting as a mentor in key subjects such as digital signal processing, Nelson did internships and applied the knowledge he acquired in practice. An example of this was the development of an embedded software system for medical image processing using FPGA hardware.


As a recent graduate, Nelson had the opportunity to work with embedded systems at a national manufacturer of industrial automation products, such as programmable logic controllers (PLCs) and human-machine interfaces (HMIs). In this role, he was responsible for developing and implementing communication protocols such as Modbus RTU and Modbus TCP, which are widely used in industrial automation. He ensured reliable data transmission between controllers and sensors, and developed the software interface for Modbus TCP, enabling fast and efficient integration between devices via Ethernet networks. He also optimised packet processing routines, improving the system's response time and correcting transmission errors.


After a few years, Nelson moved from the industrial automation sector to the aerospace sector, joining a national defence company where he developed embedded systems for avionics. His main role was in the validation sector, where he was responsible for testing the codes developed for validation in the applications' hardware. In this context, Nelson was introduced to a new concept in code validation for critical applications: requirements-based testing. This method involves deriving test cases directly from the requirements documentation, ensuring that each one is covered, testable, and free of conflicts, thereby guaranteeing the robustness and compliance of systems developed for critical missions.


A simple example to illustrate this idea is a requirement to ensure the behaviour of a subsystem consisting of three identical sensors in redundancy. The requirement states that if all three sensors provide readings within a tolerance range, the value used by the program should be the average of the three readings. However, if one of the sensors gives a discrepant value outside the tolerance, it should be disregarded, and the system should display a warning message on the pilot’s screen, alerting them to the issue. This type of requirement guides the creation of test cases that simulate different sensor conditions to verify that the system’s behaviour is exactly as expected in each situation.


This work requires great attention to detail and precise wording in drafting the requirements. Nelson commented that it’s a bidirectional process: on one hand, the tests are developed based on the requirements, but on the other, as tests are created and edge cases identified, it may become necessary to update the requirement itself to better specify and clarify these aspects. This ongoing adjustment ensures that the requirements are clear and comprehensive, aligning system performance expectations with the reality of the tested scenarios.


During this experience, Nelson was invited to spend a year in Israel, performing the same role but with another company within the group. This opportunity was especially enriching, as it was his first time working abroad, experiencing an environment and culture quite different from what he was used to. Nelson was impressed by the financial incentives directed at industry and by the widespread adoption of technology in everyday life. Israel, a pioneer in various technological innovations both military and civilian, has played a fundamental role in the development of technologies we use daily, such as drones, cybersecurity systems, and advanced communication devices.


In the aerospace sector, Israel, despite its size and recent history, achieved some of the greatest technological advances of the 20th century. Notable examples include the development of the Kfir fighter jets in the 1970s, the Ofek reconnaissance satellites that have operated in low Earth orbit since the late 1980s, and the Shavit launch rockets, also in operation since that time. Nelson highlighted that, during his year working in Israel, one of the biggest differences he noticed was the strong empirical foundation based on testing, which fosters innovation. This approach contrasts with the bureaucratic and structural barriers that often hinder technological progress in other contexts. This more agile, results-driven environment has allowed Israel to position itself as a leader in innovation, even in highly complex areas like aerospace.


During the COVID-19 pandemic, Nelson returned to Brazil and changed jobs, joining a Canadian company remotely. At the same time, he started a distance learning master's programme, where he developed a thesis entitled ‘Evaluating Frameworks for Embedded Systems Virtual Platform Development: A Comparative Study’ with the proposal of exploring alternatives to hardware dependency in the embedded systems development process.


In his new role, he faced his biggest challenge yet, which required working at the lowest levels of computing, often using Assembly language for a wide range of processors. On one occasion, while debugging a program, Nelson noticed that the compiler was altering the flow of his code due to the use of pointers in the C language and an automatic optimisation carried out by the compiler he was using.


In 2023, Nelson received an offer that led him to move with his family from Porto Alegre, in southern Brazil, to a small town of about ten thousand inhabitants in the Scottish countryside. Working as a senior embedded systems engineer, he is at the forefront of the UK's intense space race. Due to the country's geography, rockets can be launched into sun-synchronous and polar orbits. Sun-synchronous orbits, like those used by Landsat and Terra satellites, offer consistent illumination and global coverage for monitoring the Earth's surface, applicable in areas such as precision agriculture. Polar orbits, on the other hand, like those of NOAA and MetOp satellites, provide complete Earth coverage for monitoring weather events.


The company where Nelson works plans to launch its first rocket into low Earth orbit soon. Nelson is contributing to validate and improve the software and embedded systems, continuing to perform requirement-based testing as he did early in his career. He regularly participates in system architecture meetings and works on validating and strengthening the embedded systems. Additionally, Nelson conducts Hardware in the Loop (HIL) testing and automates software tests to ensure that each software commit meets system requirements.

No comments:

Post a Comment