Blog

What Mathias says – an interview with a Robotics Software Developer

7 min read

Mathias

What initially drew you to the field of robotics software development, and what motivated you to move from Brazil to Germany to pursue this career? I grew up in the Brazilian countryside helping my dad on his farm. Even though I was happy with my “farm” life, I decided to study Computer Science (CS) because I wanted to “understand how things work”. I applied (and got accepted) for the Physics course as well, because it teaches you a lot about the world, atoms, materials, etc. but CS was a better option for me. Throughout my bachelor in CS, I managed to start a research project with some friends to design algorithms for autonomous cars. At that time we were working with Lego kits, building different robots and programming them to navigate autonomously in the environment. Since then, I have never left the field of robotics, just moved on to more expensive hardware and more advanced and challenging algorithms. Most of my Brazilian friends were targeting North America as a place to look for jobs, while I was one of the few targeting Europe. I think my way of thinking and what I value in life fits better with the old continent. Also, Germany is one of the best countries for robotics, both in industry and academia.  

Can you describe a project in which you implemented autonomous robot functionality and the challenges you faced? The outbreak of COVID-19 in Brazil was very serious, killing hundreds of thousands of people. There were many initiatives to help fight the virus, and one of them was the collaboration between Instor, a Brazilian robotics startup, and Phi Group, the research lab where I did my research. Together we created Jaci, the first autonomous robot designed, built and programmed entirely in Brazil. Not only is it equipped with all the basic sensors for mapping the environment and avoiding obstacles, but it is also equipped with UV lights. Although this type of light is quite dangerous for humans (it causes skin cancer), it is capable of inoculating the COVID-19 virus when used correctly. To maximize the efficiency of the light, we had to make sure that Jaci could navigate through the environment, keeping a certain distance from all obstacles (and making sure that the light reached all surfaces that humans could touch). This was difficult because normally autonomous robots have to avoid obstacles as much as possible, but in this case we had to make the robot stay close to them all the time. In addition to the research involved in proposing new path-planning algorithms, I was also proud of being part of this project that helped many people and saved Brazilian lives. 

What's a recent technological development or trend in software engineering that you're excited about? 3D Gaussian Splatting is the latest big thing in the AI/Computer Vision/Perception world. It is basically a fancy way of using lots of soft, blurry dots to paint 3D scenes smoothly and naturally on a 2D screen. It has the potential to have a significant impact on how we deal with 3D point clouds to reconstruct the environment representation and how we combine data from multiple cameras pointing to the same region.

What's something you've learned in your career that you wish you knew when you first started out? I have noticed that in robotics, learning by doing is far more effective than passively consuming technical resources. If I could go back in time, I would choose to learn through hands-on projects rather than just reading books and watching lectures. For instance, to master Computer Vision, I would build a mobile robot capable of detecting and interacting with objects in its environment. This approach would help me identify the necessary skills and apply them immediately. Additionally, these projects could serve as a valuable portfolio and a resource for future tasks. Nowadays that is possible to do for free, using simulators and a “simple” laptop.

You've worked with both ground and aerial robotics. How do these two areas differ in terms of software development needs, and which do you find more challenging? In really simple terms, ground robots usually have to constantly avoid static and dynamic obstacles while navigating in the environment, and their battery lasts for hours. On the other hand, aerial robots do not necessarily have to be concerned about obstacles, but their battery lasts for only a few minutes. In other words, ground robots are dangerous when moving, while drones are dangerous when falling – after running out of battery. Another big difference is that aerial robots are highly affected by the wind, so there is way more uncertainty to be handled by the algorithms compared to ground robots.  

If you could invent any piece of technology, without any limitations, what would you create? I usually rely on drawings or images to explain some of my ideas or complex concepts to other people, because I believe it’s easier to understand them with visual examples. However, many times I can’t find the image that represents what I’m looking for, so I wish I could “transfer” the 3D shapes or drawings I imagine in my mind to a software. I confess that I’m not aware of the current state of the “mind-reading” area, so maybe this is a project for the “future” Mathias.   

Do you have a favorite programming-related joke or fun anecdote from your robotics career? “If it’s not an AI problem, we can fix it”. If you didn’t get that joke, here is some context. AI systems do not allow you to debug them and analyze every step of the process as you do with code to fix some issues. Usually, you have to generate new models to improve the performance of AI systems, instead of adding or removing some lines of code like you do with programming languages. 

In your view, what is the most underrated skill in robotics software development? Communication. Once I read that robotics is the field where bytes move atoms. This is a fairly simple definition, but it also implies that there are several "teams" needed to make it work. I personally list the three main ones as: software, hardware, and electrical. And the importance of communication comes when you think that a mechanical engineer doesn't have the knowledge to understand how the code works, just as the programmer doesn’t understand how to convert the power coming from the battery to the sensors. For example, at Sereact, if our gripper does not extend or retract quickly, the robot may not be able to perform well now. But to make the gripper move faster, we (the software team) need to understand if the metal parts can move fast (the hardware team) and if the air pumps can be turned on and off at the frequency we need (the electrical team). So it's not just about talking to other people, it's about understanding that they don't have the same background as you and therefore see the world differently. 

What advice would you give to Robotics Engineers considering an international career? I have missed many opportunities in both my personal and professional life because I thought I wasn't good enough for the task or role, or that everyone else was better than me. Thankfully, life has taught me that I was wrong. No one knows absolutely everything, and you can learn the skills you need for a new challenge. So I would say that ensuring that you are doing your best and have full dedication complements the lacking skills in the beginning. 

Outside of work, what do you enjoy doing in Germany that you might not have experienced back in Brazil? I enjoy visiting places that are part of world history, such as castles and museums. Brazil is quite young compared to the “Old Continent”, and hence it hasn’t been the stage for many relevant moments for our world like Germany (unfortunately). For example, having the chance to visit Porsche and Mercedes-Benz museums to learn more about the history of vehicles and engines is something that would be hard to do in Brazil. The same applies for castles, where I can understand German culture a little better and see how far we have come as a society.  

If you could travel to any place in the world, where would you go and why? There are many places I would like to go, but a personal goal is to visit the north of Italy, where my ancestors came from. I would like to know more about my family’s history and culture, and maybe get to know a distant relative. Who knows? 

Text of this article

Copy text

Images in this article

Download all images

Latest Articles