From an Open Source Community to Strategic Product Development | Vector
2023-09-11

From an Open Source Community to Strategic Product Development: An Interview With Marcus

In this interview, Ilja, co-founder and CEO of EntwicklerHeld, has a conversation with Marcus about his career and his work at Vector Informatik.

Marcus is Product Area Manager at Vector and deals primarily with strategic matters, customer relations and organizational issues. He is a devout developer and has worked on various open source projects during his studies and in his spare time, including a chat client and the development of an infrastructure for distributed automotive simulations. In this interview, Marcus recounts how he came to Vector in 2017 and shares some of the experience he has gained.

Ilja: Hello Marcus, I’m Ilya, the co-founder and CEO of EntwicklerHeld. I’m glad to have you here.

Marcus: Hi, thanks for the invitation.

Ilja: Could you tell us a little bit about yourself? Who you are and what do you do?

Marcus: Of course. The interest in IT runs in the family. Information technology and programming have been my passion since I was a child. Therefore, choosing to study information technology was a natural choice for me. During my studies I also worked in technical support for a web hosting company and was able to gain a whole lot of experience.

In addition to that, I’ve dedicated a lot of time to open-source development, simply because I love open-source. We had developed an IRC client that was very popular back then. It was one of the first chat applications to have an “infinite scroll” feature. That was pretty cool and I had a great time applying my technical knowledge.

Ilja: How did this project come about?

Marcus: I put the whole thing together with a friend of mine. He was always dissatisfied with what was around at the time and would say “even I could do better than that”. And I was like “If you decide to do something, count me in! But you have to take the first step”. Then we just went ahead and did it. At some point our IRC client was the default one in the Kubuntu distribution. As a result, we were invited to Qt Developer conferences. After we presented our solution there, we were also approached by people saying, “Hey, would you like me to design a logo for you?”. And we were like “sure, why not”. You get in return what you give out. This is also the great thing about the open source community, in my personal opinion, precisely because of these collaboration opportunities. That project was tremendously valuable to me at the time. Not only was I able to strengthen my programming skills, I also learned quite a bit about collaboration, team spirit, and so forth. After graduation, when I was on the hunt for a job, I was also offered a chance to do a PhD. I thought the doctorate probably wouldn’t hurt and so I ended up doing a PhD in Embedded Systems at the University of Stuttgart, with a major in simulation.

Ilja: So how did you end up joining Vector?

Marcus: I first got to know about Vector through a colleague of mine who was employed at Vector himself. I thought the company was great even back then. Then it all just fell into place when I was invited to a Vector event for PhD students. It was there at the Karlsruhe site that Christian Köllner (Product Area Manager at Vector) gave a presentation on simulations. Then, one thing led to another and I finally signed the contract with Vector.

Ilja: What kind of job did you have when you first joined Vector?

Marcus: Actually, I’m still a developer at heart, but unfortunately I just have too little time for it now – which is a shame. When I started, I worked on a cool project at Vector. It was a specific project for a customer. We created the infrastructure for distributed simulations, something like a tool coupling, but just completely adapted to automotive. This infrastructure was our very first open source project that ran with an MIT license in the automotive industry, which is something very atypical for the automotive sector.

I felt it was important for our project to be open and accessible, so that everyone could see how it was created and who worked on it. While some in the automotive community claim they make open source software, the truth is they just pushed a big code drop in a commit to GitHub years earlier. We wanted it to be different: our aim was to show all the commit history and provide a reliable communication channel so that people know: This is a true open source project.

Ilja: And what about today? Tell us about the day-to-day life of a developer at Vector.

Marcus: In my current role as Product Area Manager, I mainly deal with strategic matters, contact with customers and organizational issues. Sadly, it’s practically no longer the case that I get to see code. But I can still tell you what it was like when I first started, since it wasn’t that long ago. As a research employee at the university, I was not bound by regular working hours and often had to work more than eight hours a day. Therefore, I tremendously enjoyed my normal working hours at Vector. I’m a little bit of a late riser myself and Vector provides all the possibilities. There is no fixed starting time – just do it the way it suits you best. I always get my cup of coffee first thing in the morning, check my email and then try to get back into my gear. And the rest of the day was mostly a mix of ‘developing for myself’ and brainstorming with colleagues. So I was busy programming most of the time. It was nice to have a mentor to whom I could always turn and say: “Hey Andreas, I have this and that going through my head right now, how would you go about doing that?”. I personally would say that as a developer, Vector gives you enough freedom to find the best possible solution. Each team tends to use different ways of doing things, so this also means that meetings, such as dailies, must be held. But we make sure that they stay focused and efficient.

Ilja: What exactly do you build in your team and where do the requirements originate from?

Marcus: Vector has two major divisions: embedded software development with over 1,000 employees, and departments focused on development tools. I work for Vector’s Network and Distributed Systems division. We don’t deal with embedded software, but rather build testing tools (desktop applications). They are core products, i.e., you buy them the same way you would Word or Excel: “That’s how it is”. There is one major release every year plus service packs on top of that. The requirements come formally from Product Management and are a mixture of both strategic and customer requirements. We give our best to find a good balance between pleasing customers and moving things forward in an innovative fashion at the same time. The automotive industry keeps innovating itself. Our customers used to be engineers who worked extensively with GUIs. Today, automotive manufacturers are increasingly evolving into software companies, and now all of a sudden things like CI/CD, test automation are playing a significant role. So you have a trend towards headless tools to complement GUIs, and text-based configuration formats that you can diff and merge. The tools must be able to run on Linux and in Docker containers. So, by and large, we actually do product development, not project work.

Ilja: As a developer at Vector, to what extent does Vector involve developers in the decision-making process when it comes to designing and implementing features?

Marcus: The great thing about Vector is that a lot of trust is placed in us developers right from the start. It’s very noticeable in a lot of areas. For example, if you want to create a concept, you don’t necessarily have to compile lengthy and complex requirements documents. To me, a concept rather means thinking about how to solve the problem and what the advantages and disadvantages of different solutions might be.

This means that you can start your career fairly early at Vector, and that’s also encouraged.

Ilja: What about your release cycles? What testing processes does a new software version have to go through before it can be released?

Marcus: Some of our products belong to the CANoe product family. These are the CANoe desktop tool, which has been established for over 20 years, the CANoe4SW tool designed for virtual testing, and the Server Edition of these for headless execution. These products have a lot of shared code, but it has to be hardened individually in each product context, which makes releases a bit more burdensome. Therefore, we can’t introduce new development processes as quickly as we would like, allowing us to release new versions every two weeks.

We are constantly tweaking our process to make it better, but right now we roughly release a major release once a year and minor service updates twice a year – so about three releases a year. But when we work on new projects, such as the open source library SIL Kit, we release a new version every two weeks. These new versions are tested in an automated way, and we additionally run a manual testing process three times a year to make sure they are good. Fortunately, our testing tools are not so strictly regulated, and this helps us release updates more rapidly.

 
CANoe connectivity configuration with Application Panel, Trace Window and extended Data Window for analysis of complex data types
CANoe simulation interface
CANoe4SE user interface
REST API of CANoe4SW Server Edition displayed in web browser
Close
CANoe connectivity configuration with Application Panel, Trace Window and extended Data Window for analysis of complex data types
CANoe simulation interface
CANoe4SE user interface
REST API of CANoe4SW Server Edition displayed in web browser

Ilja: What technologies do you work with and how do you handle legacy code? You have three C++ challenges on EntwicklerHeld.

Marcus: At present, C++ is the dominant programming language in our company. C# comes second. Little by little, Python is playing a bigger and bigger role here. We traditionally use C# for GUI development and have a great deal of expertise in this language. In a current project, we needed to develop an adapter that runs on Linux and Windows and can import components in C, export them to C++ and being easy to maintain at the same time. I let the team choose whether they wanted to do this in C++ or C#, as long as it runs on both platforms and achieves the objective. But C++ is by far the most popular.

What has been strongly on the rise is the development of dashboards for the automotive industry. This is where the trend is more towards full stack development with Java-based back-ends and Angular for web front-ends. But that is not my area of expertise. Another thing is that we are becoming more open in terms of development. We want programmers to be able to write tests without having to pay for tools, so we consider the development of plug-ins based on Visual Studio Code to be an important strategic topic. That’s where TypeScript and the Language Server Protocol really come into play.

Ilja: Okay, let’s get back to your career shift: How did you make the transition to Product Area Manager? And how did the fact that you had previously done other stuff actually help you?

Marcus: Although going into management was never part of my ambition, at Vector I was given a lot of responsibility right from the start, and I gradually took on more and more of it. I managed to have the highest impact in my daily life by being heavily involved in the planning process and making sure it was going in a direction I liked. The broad knowledge I gained through my studies and my work in the field of embedded programming has definitely helped me in this regard. Thanks to open source development based on C++, I acquired a lot of knowledge, because programming is not something one just learns at university. Through my PhD, I was also able to supervise many student projects. Going into management is never an absolute must, but at Vector there is no risk in taking on new responsibilities and trying out what you like. You might just as well be happy with being a developer to your heart’s content.

Ilja: What is your take on the statement from Azure’s CTO that C and C++ are both dead and Rust is the future? You have a lot of experience in this area and likely have had issues with memory allocation and security vulnerabilities at some point. Rust could offer a solution in this respect and is also already widely used in the Linux kernel. What do you think about that?

Marcus: Rust is necessary and does have good concepts, but legacy code will not die out quickly, although it is important to carefully consider which language to choose for redevelopment or rework. Indeed, it’s an evolutionary development – in the past, you couldn’t imagine writing in anything other than assembly language. C and C++ do have their share of issues, but they are still all relevant. Rust is hot and should by no means be underestimated.

 
Multi-functional lounge area in Karlsruhe
Working and eating terrace at the Karlsruhe site
An innovative building to accommodate up to 600 employees will be built in the Karlsruhe Technology Park by 2023
Vector campus at the Stuttgart headquarters
Close
Multi-functional lounge area in Karlsruhe
Working and eating terrace at the Karlsruhe site
An innovative building to accommodate up to 600 employees will be built in the Karlsruhe Technology Park by 2023
Vector campus at the Stuttgart headquarters

Vector carries out development work in Stuttgart, Karlsruhe, Regensburg, Munich and Chemnitz. Major emphasis is placed on providing a pleasant working atmosphere.

Ilja: Finally, I’d like to ask you two “hot-or-junk” questions. First question: Home office or office?

Marcus: I have to admit that this isn’t so easy for me to answer. So I actually think that a hybrid workplace is the best way to go. I really value our flexible work-at-home arrangement, so one can take whatever time is needed. But I also enjoy being with people and having direct interaction.

As a company and as a team, hybrid working also presents us with challenges that can only partly be solved in technical terms – but a great deal also depends on one’s self discipline. How can everyone participate equally in the flow of information? How can hybrid meetings be on equal footing? One has to admit that sometimes it’s better that everyone is sitting at a computer and has the same basic requirements. It’s definitely a challenge, but we’re handling it pretty well.

Ilja: Tea or coffee?

Marcus: Coffee of course!

Ilja: Thank you so much for your insights.

 

Has this sparked your interest in joining Vector?

Visit the jobs page

Do you want to find out more about the Coding Challenges at EntwicklerHeld? Then create a profile!