Matthias Zielezny is the Head of Software Engineering at Marc O'Polo. In this episode he shares the architecutre details of the Digital. Transformation project they're currently implementing. How AboutYou.cloud was one of the elements that helped them move away from a monolithic architecture towards a headless solution.
Piotr Karwatka: So today my guest is Matthias Zielezny. We're going to get deeper into how you build modern e-commerce software at scale.
Hello Matthias. I'm really glad to have you here. Thanks for accepting my invitation.
Matthias Zielezny: Thank you and it's nice to be here and I’m looking forward to our talk.
Piotr: awesome. Maybe the first question will be about your role. You are Head of Software Development. What does it mean to be Head of Software Development at a global multinational fashion brand ?
Matthias: yeah so I would say company-wide it means to work with friendly open-minded people and even when it's quite a big company it's still a family-like feeling. For me as a Head of Software Development and means to work with a really great team. We're having a lot of fun but of course also having big projects and challenging ones with a cool technology stack behind that. Besides that I'm still coding, mostly back end stuff. That's what I try to achieve. But it’s not how it used to be. And then you have the annoying managing part like checking invoices approving vacation requests and so on.
Piotr: yeah I can I can imagine I got back to coding after 10 years at Divante after maybe nine years and it was so much fun. So i totally get your point. If I ask you what are your key responsibilities and goals?
Matthias: In general across all units it's to show which possibilities you have with technology and what's quite important for me is to show that you don't have to buy every time another expensive software when you miss functionalities, because for me it's quite often possible to build it by yourself. Or extend the software to save time and cost and also to have less dependencies to third-party services. Another point is that in the end we don't want the business departments just come to us to and tell us which software we have to implement because what we want is they should come to us and tell us the problem and we want to collaborate with them um to find the right solution which can for sure be a new software or what I prefer- a custom solution built by ourselves. We already did that with our CRM system by moving it from an on-premise solution to the cloud. All the customization is done with cloud native services on azure and what we also did is to build our own water management system, which we have on AWS. And next to that it's yeah maintaining, further developing our online shop, our store management system, a lot of other tools, middlewares for our internal ERP systems and so on. Different components have a different approach to this. Building the solution by ourselves. And Stefan actually told us a pretty important note on that. He said something like “you build the stuff that you feel generates the difference for the customer”- so a unique selling proposition. For example UX/UI which makes Marc O’Polo shop let's say a better place and more effective than the other stuff you try to just buy on the market. I mean invoicing right? What can you add over in a classical invoicing system? So this approach will have some more questions on this.
Piotr: We came to architecture but first I have one more question on your daily routines actually. Whom do you do work with on a daily basis? Like as a head of software development you said you need to understand the goals of the business and with whomever you work with.
Matthias: Yeah so in our Digital Intelligence unit I work with the business developers who are mostly responsible for bringing in new concepts, new ideas. To step forward then our data warehouse team and they also have a nice project right now. They are moving from a classical data warehouse which is based on Microsoft SQL server to the cloud, with a data lake approach and other fancy features. And then our Data Analysts and Scientists and of course with our Project Managers and Agile Coaches and company-wide, yeah, it's widespread. It's the online shop team, the online marketing guys, merchants, buyers, ERP guys and a lot more.
Piotr: So I can say that you are kind of a connector between those tech folks and business stakeholders within the company. How do you connect those two separate worlds? They are usually totally separated. They even don't understand themselves.
Matthias: I would say for the business stakeholders it's a big challenge to describe very technical tasks in more simple words or let's say not too technical to make them understand which possibilities they have with technology to make their daily business easier. So that's one part. And for the tech people, it's the other way around. It's the challenge to change their point of view from a very technical perspective to the business one so to make them understand which kind of problems they are facing so the developers are not just coding guys, but also guys who understands the business needs and knows how to solve it right.
Piotr: that's interesting. So you try to to work on understanding parts and polish the edges between those words. Can you say something more on this digital transformation project you are working on uh at the moment with Steffen?
Matthias: Yeah. We have different projects at the moment but the biggest right now is the relaunch of our commerce platform based on About You Cloud where we build a b2b and b2b and b2c omni-channel platform right. Maybe about the timeline, the project started in March and should be finished in early 2021. A bit about the team we have currently nine developers working on that yeah pretty huge team. There’s six developers from our side and three external ones and for the managing part we have two project managers on Marc O’Polo side and three external project managers. And a lot of people are conceiving.
Piotr: So what are the key goals for this project. You said that red platforming is one of the goals and you have given us the time frame. What else?
Matthias: Strategically, it's to get rid of channels and to have the same look and feel for all consumers facing front ends. So for instance: the b2b and b2c shop should look and feel the same. And technically what you already said. It’s to move from a monolithic approach what we currently have to a headless system, where we want to have as much reusability as possible in the front end and of course based on a modern text stack in the front. So we choose view and next and typescript. And on the back end, we have a lot of microservices in place on AWS and azure.
Piotr: Okay you said uh that one of the goals is getting rid of channels. What do you mean by that?
Matthias: it's about building the infrastructure for the customer and not for the specialties. Each channel has like a b2b shop or b2c shop. So for instance the b2b shop should work, look and feel how the b2c shop does and we also try to bring the retail and e-commerce world together by adding more and more cross-channel services. Like our “reserve and collect service” where you can reserve a product online in the retail store, or our “click and collect service”, where you can order a product and ship it for free to a retail store. And we also have our members program where you can collect member points no matter if you buy online or offline with your member card. So in the end each customer who buys or returns a Marc O’Polo product should get the same experience and service in all Marc O’Polo customer related touch points. So no matter if it's online or offline, that's the main goal. So if I paraphrase, It’s kind of unification for the customers. Huge unifications or touch points supported by those headless systems.
Piotr: So the customer shouldn't care if you bought something online or offline. It should always be the same, exactly. That sounds really awesome. Why headless? What was the key advantage of this approach? For me or in general I would say it's a clear separation of the front end and the back end. So the front end is completely data and API driven; it just consumes the data from the back end, displays it and sends new data. Like creating a basket for instance. With this approach you don't have that strong dependency that you have in a monolithic system as the only communication to the back end is in your API layer in the front end, where you have a json format which is language agnostic which is also another benefit because you can choose the technology you want in the front end. That’s also motivating for developers to always work with the latest stuff. In general with this approach it's much easier to replace your backend system. The performance is better but you have a bit more workload on the client. But that's okay.