January 1, 2021

#106 - Chat with Pedro Bertoleti

(English version at the bottom)

Tive o prazer de bater um papo com o Pedro Bertoletiengenheiro eletricista, que trabalha como desenvolvedor sênior de software e consultor de sistemas embarcados. Conversamos sobre alguns episódios da sua trajetória profissional nesse campo.

Pedro começou a aprender computação quando era criança, de modo autodidata, no final dos anos 90. Alguns anos mais tarde, ele teve a oportunidade de iniciar um curso técnico na área de informática industrial, onde ele complementou a bagagem que já havia em computação com conhecimentos práticos em eletrônica. O entrevistado soube rapidamente que essa área de interseção entre computação e eletrônica era uma grande paixão, que o motivaram a cursar engenharia elétrica com ênfase em eletrônica.

Nessa época, no início dos anos 2000, o cenário era bem diferente do atual. Microcontroladores e kits de desenvolvimento, que hoje custam poucas dezenas de reais, eram inacessíveis na época. O Arduino, por exemplo, é um projeto que iniciou somente em 2005 no norte da Itália. Além disso, a comunidade maker e até mesmo as informações disponíveis na internet eram limitadas e a maioria do material era escrito em línguas estrangeiras como inglês, alemão e chinês. Não obstante, Pedro decidiu usar os componentes que havia extraído de outros eletrodomésticos que tinha a disposição e construiu o seu primeiro kit de desenvolvimento para estudos de microcontroladores. Os projetos foram aumentando rapidamente de tamanho e complexidade. Ainda durante seu curso técnico, Pedro criou um sistema de controle e monitoramento remoto de válvulas pneumáticas de um braço robótico. O termo Internet das coisas (IoT) e o controle remoto do chão de fábrica ainda não eram práticas comuns, mas Pedro já estava prototipando conceitos semelhantes.

Após concluir sua graduação e estágios, Pedro teve a oportunidade de realizar sistemas embarcados em diversos setores. Essas experiências enriquecedoras o levaram a trabalhar com dispositivos biomédicos e equipamentos para frota de transportadoras com aplicações de telemetria e rastreamento veicular, sensoriamento e coleta de dados. Além disso, Pedro participou do desenvolvimento de firmware de balanças industriais e, mais recentemente, do desenvolvimento de sistemas embarcados Android para dispositivos móveis.

Cada uma dessas experiências havia seus desafios e demandas técnicas particulares. Um desses desafios é garantir o melhor desempenho e confiabilidade do sistema, o qual é limitado em velocidade de processamento e em memória. Para contornar essas dificuldades e extrair o melhor dos poucos recursos disponíveis, Pedro precisa trabalhar nos níveis mais baixos das camadas de abstração da programação. Isso o leva a implementar software próximo aos registros de memória da CPU, em código assembly, entendendo as diferentes arquiteturas de microcontroladores e microprocessadores disponíveis e dominando o processo de compilação do programa. Essas são talvez as áreas mais complexas da computação e a ordem de grandeza do tempo de execução das instruções da CPU são de nanosegundos.

Não há segredo para aprender a codificar na linguagem de programação assembly. A curva de aprendizado é íngreme e é necessário muito tempo e dedicação. No entanto, Pedro deu algumas dicas para facilitar esse processo: ler a documentação oficial provida pelos fabricantes e os exemplos disponíveis para cada arquitetura, além de livros e tutoriais online. Porém, é colocando a mão na massa que realmente se aprende a arte de programar em assembly.

Após trabalhar em diversas cidades e estados, Pedro se estabilizou em Campinas (SP), um dos principais hubs de tecnologia do país. Além do seu trabalho de pesquisa e consultoria, Pedro também desenvolve projetos da Internet das coisas (IoT), desde a prototipagem em protoboard, passando pela placa ilhada até a PCB final.


Source: Pedro Bertoleti 

Vale a pena conferir as apresentações que Pedro fará em dezembro em duas conferências online sobre IoT e LPWAN, as quais são a The Developer's Conference (TDC) e a IoT Online Conference, além dos cursos que ele disponibiliza na plataforma Udemy.

-----

I had the pleasure of chatting with Pedro Bertoleti, an electrical engineer who works as a senior software developer and embedded systems consultant. Our conversation covered some episodes from his professional trajectory in this field.

Pedro started learning computer science as a child, in a self-taught way, in the late 90s. A few years later, he had the opportunity to start a technical course in industrial computing, where he complemented the background he already had in software with practical knowledge in electronics. The interviewee quickly learned that this area of intersection between computing and electronics was a great passion, which motivated him to study electrical engineering with emphasis in electronics.

At that time, in the early 2000s, the scenario was quite different from today. Microcontrollers and development kits, which today cost a few tens of dollars, were inaccessible at that time. Arduino, for example, is a project that started only in 2005 in northern Italy. Furthermore, the maker community and even the information available on the internet was limited and most of the material was written in foreign languages such as English, German, and Chinese. Nevertheless, Pedro decided to use the components he had extracted from other devices he had at his disposal and built his first development kit for microcontroller studies. The projects were rapidly increasing in size and complexity. Still during his technical studies, Pedro created a system to remotely control and monitor pneumatic valves of a robotic arm. The term Internet of Things (IoT) and remote control of the factory floor were not yet common practice, but Pedro was already prototyping similar concepts.

After completing his studies and internships, Pedro had the opportunity to develop embedded systems in several sectors. These enriching experiences led him to work with biomedical devices and equipment for transportation fleets with telemetry and vehicle tracking, sensing and data collection applications. In addition, Pedro participated in the development of firmware for industrial scales and, more recently, in the development of Android embedded systems for mobile devices.

Each of these experiments had its particular challenges and technical demands. One of these challenges is to ensure the best performance and reliability of the system, which is limited in processing speed and memory. In order to get around these difficulties and make the best out of the few resources available, Pedro has to work at the lowest levels of the programming abstraction layers. This leads him to implement software near the memory registers of the CPU, in assembly code, understanding the different microcontroller and microprocessor architectures available, and mastering the process of software compilation. These are perhaps the most complex areas of software engineering, and the order of magnitude of CPU instruction execution time is nanoseconds.

There is no secret to learn to code in the assembly programming language. The learning curve is steep, and it takes a lot of time and dedication. However, Pedro gave some tips to make this process easier: read the official documentation provided by the manufacturers and the examples available for each architecture, as well as books and online tutorials. However, it is through hands-on experience that you really learn the art of assembly programming.

After working in several cities and states, Pedro settled in Campinas (SP), one of the main technology hubs in Brazil. Besides his research and consulting work, Pedro also develops Internet of Things (IoT) projects, from prototyping to the final PCB.

Source: Pedro Bertoleti 

It's worth checking out Pedro's presentations in December at two online conferences about IoT and LPWAN, which are The Developer's Conference (TDC) and IoT Online Conference, as well as the courses he offers on the Udemy platform.

No comments:

Post a Comment