From On-Premises to Cloud - The Transformation of Quality Assurance

13 July 2023 INTRAVIS
Transformation from on premise solution to cloud solution with Intravis Vision Inspection

This interview was created for the website With their friendly permission, we are allowed to publish it here.

In their dev interviews, EntwicklerHeld talks to developers from a wide range of companies. Today, Ilja Bauer, CTO and Co-CEO of EntwicklerHeld, talks to Jonas Deitmerg, Technical Lead at INTRAVIS - from dev to dev.


Ilja: Hello Jonas! I'm Ilya, one of the founders of EntwicklerHeld.

Jonas: Hello, Ilja!

Ilja: Glad to have you here for our dev interview!

Jonas: Yes, I am very excited! We are currently recruiting mainly in the area for which I am now responsible. Since three weeks, I am the Technical Lead of the team that develops cloud and Industry 4.0 products for INTRAVIS.  

Ilja: Then please tell us directly what you do at INTRAVIS. You've already mentioned your managerial position.

Jonas: INTRAVIS is a special machinery manufacturer. We build industrial machinery and equipment in the plastic packaging sector. We also develop the appropriate software. Quality assurance and inspection play a particularly important role in this area. For 30 years, this has also been our focus, with which we have grown up and which distinguishes us. Most of our inspections are based on image evaluation and image processing.

Excellent product quality leads to significantly fewer complaints and a better reputation. The use of up to 100% recycled material makes the production process more demanding and our inspection systems help to optimize the process, save material and ultimately increase sustainability. By means of a classic edge finder or circle finder, the object width or diameter is determined. Modern anomaly detection is used to identify production defects such as spots.

Of course, we have also acquired a great deal of expertise over time in addition to quality assurance. In machine control, for example. That is a world in itself. But we also have automation groups in our software that work with PLCs. This is a closed world, too, which is very foreign to me. (Laughs) Then there are also human-machine interfaces, which provide users an interface that looks very different in the industrial world than you would find in an app in the private sector.


Ilja: I believe that. Does the software run directly on site, more or less in-house? Many companies have isolated servers, and if you want to install something there, you always have to be on site. That makes it more difficult.

Jonas: Oh, I hadn't gotten that far with the history of INTRAVIS. So everything we did for many years was running in the machine. There is a high performance computer in the machine where everything happens. There might be an internet connection for the team to connect to the machine, but that was the only thing in terms of "connected." You can't say IoT to that. But then, many years ago, we came up with the first product idea for a web-based application to visualize the data about production. That was then an on-premises installation. Everything was set up on our customers' servers, including the database. But in the meantime, we have moved away from that. Now we have the IntraVisualizer which runs entirely on Amazon Web Services (AWS). The machines have been empowered to connect and send data to it. We can process the data in the AWS world and provide a front end for visualization.

Ilja: And what is your background at INTRAVIS?

Jonas: Most of the time, I was an embedded system engineer at INTRAVIS, thus a hardware-related area, and I also developed electronics. However, it has developed more and more in the direction of firmware / embedded Linux. We run our machines with an embedded Linux computer. And that juggles, so to speak, with these worlds that I described. On the one hand, there is the industrial environment, where everything has to be super robust and work for a long time, and preferably should never be updated, because: "Never change a running system!". On the other hand, there is the cloud world, which is totally fast-moving and an update is much faster, which is much closer to the pulse of time. I was then responsible for communicating between these two worlds with the Edge Device.

Ilja: What happened next?

Jonas: Then I learned about everything AWS has to offer. And three weeks ago, I took over the technical lead. I quickly realized that frontend solutions are not my world at all. 

Ilja: Okay, that sounds exciting. Sometimes companies just say, "We're using AWS - in other words, we have VMs running there and we're doing the same thing we were doing before." What about you guys? Are you taking advantage of the capabilities that AWS provides?

Jonas: With all the advantages and disadvantages, we use AWS services, 100 percent. But the advantages outweigh the disadvantages immensely, for example, completely scalable time series databases. You just dump data in and it gets written away.

Ilja: And how is it on the customer side? Do they notice that everything is running in the cloud? Not only technically, but also in terms of billing? Per review process or something like that?

Jonas: The licensing model is designed so that we charge for an annual license. A bigger problem is convincing the customer that the data will leave their plant. There are customers who don't want that at all. According to the rule: "No bit leaves this hall!". We are custom machine builders, still! That's how we earn our daily bread. But with the IntraVisualizer, the customer gets an additional software solution for analyzing the performance of his production.

Ilja: Do you also have to consider that the product can run on the customer's factory floor, i.e. on-premises? Or do you say that the future is moving toward the cloud anyway, and that you're focusing on the early adopters for whom that's okay? For the others, the old on-premises system can still be used. If I were to start as a developer with you, for example, how much legacy would I have?

Jonas: The old on-premises version is only running for customers who already have it and is still supported there. We are no longer selling the old version. We have made the decision to move towards the cloud and convince customers that this is the future.

The highest maxim is always, »Production must continue!«

Ilja: This makes it easier to install updates, because you don't have to be on site, do you? 

Jonas: Yes, that is precisely the motivation for the edge device component. We can't simply install an update on a device in the production line and then production stops. That costs €3,000 in a few minutes, €10,000 in a few hours, and then it's quickly €100,000. The highest motto is always: "Production must continue!". With the edge device, we have protected ourselves. Every now and then we have customers who have reservations about a cloud solution. But fortunately that is becoming less and less because we have already gained a lot of experience and can clarify all concerns. 

Ilja: Which I also find interesting: You are in the industry in quality assurance. How do you ensure the quality of your own software? Where do new features originate? Where does the code come from, for example? How is it rolled out? Is it all done automatically or manually? 

Jonas: The next features we work on result mainly from feedback from customers and market requirements. The features are then discussed, including our CEO and product management. In discussions, we crystallize the rough direction so we know where we want to go: for example, very specific notifications when something is going wrong on the machine. We break that down to a milestone with our iteration. We further break that down to GitLab essues. That's our format for a developer to then work well with. Then we write specifications for the interfaces between each component. We've learned a lot in the past because previously, each developer worked on different components, and only afterwards we looked at how the components worked together. Just before release, the developer can implement a feature and test everything. After that, the new feature is rolled out.

Ilja: Sounds like a very agile approach and you can get started quickly. They always say that it's important to build the right stuff, not just anything! If you make mistakes at the beginning, nothing good can come out at the end. The needs of the users are different and must be taken into account.

Jonas: This is also relevant for our team. Our main developer has a tight feedback loop and is in contact with customers and in the factory a lot. And I would love to implement this in the team: We need to get even closer to the customers! That is one of my goals!

Ilja: Nice, I really like it! Let's talk about your programming languages. C++, Frontend, React, Javascript, that's in your profile. I'll stop talking about Frontend, because you said you might not want to talk about it. (Both laugh) 

Jonas: I think that you simply have to be a good all-rounder. In the context of AWS, there are no longer any specific core technologies that you have to master. At one point you can program something with Python. At another, you have to declare in YAML how something should work. Or you have to build your own SQL engine and the developer has to somehow teach himself its syntax, which is not documented. So it's not like a developer is perfectly suited if they know the two core technologies, C++ and JavaScript. There is no technology A and B with which one is equipped for everything.

Ilja: So do you have to look for the best tool for the job or does that lead to too much chaos?

Jonas: Fortunately, we don't have as many inconsistencies in places where multiple people are really working on the same code. And if you're not working on the same code, you define the interfaces in between and then everything works fine.

Ilja: Yeah, cool, I understand. I always end up with a provocative question. You may have caught that the CTO of Azure said that C++ was dead. Rust is the new C++, he said, and everyone should only write in Rust. C++ has its problems, otherwise Rust wouldn't have been created. How do you see that?

“C/C++ is deprecated” Quelle

Jonas: Personally, I am thrilled! I started an embedded project at INTRAVIS last year based on Rust. With Rust, you are really forced to get things right. You mess with the Borrow Checker, but when it's satisfied, everything works. But it's definitely a big learning curve! In terms of companies in the embedded space, there are certainly individual projects that can be done very well with Rust. However, we don't have much system programming where Rust has its focus, so I don't see a very big need for INTRAVIS to use Rust. Nevertheless, I think that C++ will not be the future either.

Ilja: It's nice to hear someone say that it's going to die very, very slowly.

Jonas: I come from the electronics world and have moved to the cloud world. You can measure the fast pace on this axis. In the electronics world, there are innovations, but at a very leisurely pace. In the cloud world, this looks completely different. It is hardly noticeable on the front end, but the world is extremely fast-moving. The developers are used to changing the framework every 6 months. (Laughs) 

Ilja: And then only one final question remains: coffee or tea?

Jonas: I drink coffee.

Ilja: Very good! 

Jonas: But I know we are very tolerant in the company and we have a big tea drawer.

Ilja: Yes, tolerance is always good! (Both laugh) Jonas, it was fun!

Jonas: Me too, thank you!