[ BETTER TECH LEADERSHIP ]

Mohamed Gamal: The Art of Architecting Strategies for Future-Proofing Tech

[ THE SPEAKERS ]

Meet our hosts & guests

Matt Warcholinski
CO-FOUNDER, BRAINHUB

Co-founder of Brainhub, Matt describes himself as a “serial entrepreneur”. Throughout his career, Matt has developed several startups in Germany, wearing many hats- from a marketer to an IT Engineer and customer support specialist. As a host of the Better Tech Leadership podcast, Matt talks about growing successful businesses and the challenges of being a startup founder and investor.

Mohamed Gamal
Mobile Staff Engineer

Mohamed Gamal is a Mobile Staff Engineer at SumUp with over a decade of experience in Android development. Currently, he spearheads the architectural vision for SumUp's Apps and SDKs, ensuring scalability and performance. Previously, he developed high-performing mobile apps for diverse markets, improved team processes, and implemented best practices in UI/UX. At Ark Development, he built robust Android applications and mentored junior developers. Mohamed also has extensive experience as a freelance instructor, teaching courses in C++, Object-Oriented Programming, and Android App Development. His expertise in modular programming, architectural design, and team leadership drives innovation and excellence in mobile engineering.

Transcript

00:08 - 00:21
My name's Matt, and I will be talking to Mohammed Gamal about architectural decision making and transitioning company cultures. Hey, Mohammed. Good morning. Happy to have

00:21 - 00:23
you here. Hey, Good afternoon.

00:23 - 00:25
Happy to have you as well.

00:25 - 00:28
Good afternoon. You're right. You're right. It's 2 PM.

00:28 - 00:32
We are in Europe, so and it's Friday, so it's almost a weekend.

00:32 - 00:37
So it's, like, a good point to start the weekend or interview. Right.

00:38 - 00:43
And, Mohammed, I'm, I'm not especially passionate about the interest.

00:43 - 00:47
I think, like, people know you, they will know you from the description.

00:48 - 00:54
But what is interesting, and I would, would love to start right away with the question, you

00:54 - 00:58
worked for a sum up, pretty, like, successful Fintech recently.

00:59 - 01:08
You've got, like, a quite a quite a big round, so I hope you have a lot of money to spend on technology in your department. Everybody holds

01:08 - 01:09
so. Yeah.

01:11 - 01:18
And, so we recently talked, it was really interesting in what apartment you work because you

01:18 - 01:20
work in a platform in that department.

01:20 - 01:22
So maybe could you tell a few words about it, and what do you

01:22 - 01:25
do there? Yeah. Of course.

01:26 - 01:30
So the platform team by nature is more foundation team.

01:30 - 01:38
So, you need if you work in tribalized world, which is Spotify model, we can, go through later.

01:39 - 01:45
When the team gets much bigger, you in the end need 1 team that's responsible for the architecture,

01:45 - 01:52
the architecture vision, the architectural or engineering direction you are going to.

01:52 - 01:59
So it should kind of oversee all the products and how products work together and be the center of this.

01:59 - 02:03
So actually, the platform team doesn't own feature by nature.

02:04 - 02:11
The plat the platform team owns tooling, services, to help engineers to deliver better products,

02:11 - 02:19
more stable products, observability, for example, to always have track over the data, over the crashes, everything.

02:19 - 02:27
So it's more a gain of foundation team that have simply architecture vision and providing tools

02:27 - 02:32
to engineers to help and support them through their engineering process, the coding, and so on.

02:33 - 02:35
So, yeah, in few words, is that what it means?

02:35 - 02:39
And the platform tribe, it's still a tribe as every other department.

02:39 - 02:41
It's it has different teams.

02:42 - 02:45
So the team I work for is called the mobile platform.

02:45 - 02:50
So we are more dedicated or only dedicated, dedicated for the mobile.

02:50 - 02:57
We don't own any features that you can see as a user in the end, but we own again the foundation,

02:57 - 03:04
how the products work together, how things should align, how to add a new library, new dependency,

03:04 - 03:11
how it's going to affect the other dependencies, to have, libraries to provide engineers with libraries for observability.

03:11 - 03:16
For example, as I mentioned, also being the DevOps for the mobile.

03:16 - 03:23
So we own the CI and CD and all of these processes, the release management, with the Play Store

03:23 - 03:25
and Apple, Store and so on.

03:25 - 03:30
So more or less, that's what we it depends, of course, on everybody role, but in the end, we

03:30 - 03:36
are kind of, I'd say, the lubricant between the tribes. So yeah.

03:38 - 03:40
Well, thank thanks for thanks for that.

03:40 - 03:46
I think it's, like, clever solution, but I'm just wondering what kind of challenges, what kind

03:46 - 03:49
of typical challenges on or pain points do you have?

03:49 - 03:52
Like, because you have a huge impact on the whole organization, on

03:52 - 03:58
the whole application, but what are the typical challenges and pain points? Yeah.

03:59 - 04:06
So, usually, the challenge is that by time, people feel I mean for every platform team, I don't

04:06 - 04:11
mean necessary in my case, but by time people might feel that they don't really have full responsibility

04:12 - 04:16
or ownership over what they are shipping and how it impacts other things.

04:16 - 04:21
Because with teams, usually they focus on their own product to deliver their own product in

04:21 - 04:24
the best way, but they don't see how it affects the others.

04:25 - 04:31
Having platform team also helps in this because you still know if I broke something the platform

04:31 - 04:34
team is gonna know about it, so they are gonna take care of it.

04:34 - 04:39
So I think this kind of minimise a little bit the responsibility of seeing the big picture.

04:39 - 04:44
So that's the big the biggest challenge for us is to not do that.

04:44 - 04:46
So we want to solve things.

04:46 - 04:50
We want everything to be integrated well integrated.

04:50 - 04:56
But on the other side, we want also teams to feel responsible for what they do and see the big picture.

04:56 - 05:02
So I'd say, in my opinion, that's the biggest biggest challenge you have, is that you need to do both together.

05:04 - 05:10
And, who is your partner in crime of who you usually work and where you can solve your decisions?

05:11 - 05:16
Yeah. That's a very tough question, I said. Okay.

05:17 - 05:24
Basically, our team is really, really self driven, so we never make individual decisions, for example. Everything comes through documents.

05:25 - 05:26
We challenge each other a lot.

05:26 - 05:28
We are very, very honest together.

05:28 - 05:32
We don't have this political thing like, yeah, okay.

05:32 - 05:33
And then we change things.

05:33 - 05:35
No, we we are very challenging peeps.

05:36 - 05:43
So I'd say all, but the closest one, of course, because I'm more into Android. There is, Tiago.

05:43 - 05:45
Now he is engineering manager of our squad.

05:46 - 05:48
So we work together all the time.

05:48 - 05:54
Also, because we firefight a lot, so there is, something happening in release and so on.

05:54 - 05:57
We pass we keep passing, things to each other very freely.

05:57 - 06:02
So I would say, yeah, if it's a partner partner of crime, it's him.

06:02 - 06:05
So and for this reason, we really firefight a lot.

06:07 - 06:10
And why do you firefight a lot? Why is it so?

06:10 - 06:15
Yeah, because, again, we oversee how everything works together.

06:15 - 06:20
So firefighting, it's not necessarily, something about the app performance in production.

06:21 - 06:28
This rarely happens, but it's more of how things are integrated and what's the direction teams are going.

06:28 - 06:35
For example, only talking about Android team, it's more than 40, 45 engineers. Same for iOS.

06:36 - 06:44
So all of these engineers don't know that others are working maybe on the same thing or maybe something that will conflict.

06:44 - 06:50
So this when you go advice, sometimes you need to kind of, yeah, be very patient.

06:52 - 06:58
Really try to coach people that they need to learn about how everything is connected and work together.

06:58 - 07:06
This I still call firefighting because when you add, for example, new dependency to, your project, it might break everything.

07:06 - 07:11
But you don't know that because you want to shape your sense, you test, it works, but you don't

07:11 - 07:12
see what's happening behind the scene.

07:13 - 07:15
And that, yeah, that happens a lot.

07:15 - 07:21
So overseeing this, yeah, we need to pass, problems to each other and yeah.

07:21 - 07:23
Okay, Thiago, you are tackling this. Okay. No.

07:23 - 07:25
I'm tackling this now and so on.

07:25 - 07:27
So, yeah, that's why I choose.

07:28 - 07:34
And you mentioned the tribes, tribes are squad, so, like, in a in a Spotify kind of manner.

07:34 - 07:38
So could you tell me more about it?

07:38 - 07:39
How does it work for you?

07:40 - 07:43
Are there any down side of that kind of approach?

07:43 - 07:45
Because this is a really popular model. Right?

07:45 - 07:53
It is. I mean, I wouldn't understand a company with 100 employees size applying this, to be

07:53 - 07:56
honest, like, because it doesn't make sense.

07:56 - 08:01
So I also work it in different, styles, I'd say, not only the Spotify model.

08:02 - 08:10
But when some company like SumUp, I think we are more than 3.5, k employees, so it makes more sense.

08:10 - 08:17
So what exactly it does is that it offer you good, team structure, it's autonomous approach,

08:17 - 08:20
how to scale the agile, and so on.

08:20 - 08:25
So, basically, you have tribe each tribe is responsible for its domain.

08:25 - 08:29
In big companies, this domain might be a small company inside the company. Yeah.

08:30 - 08:33
And then this tribe has its own teams.

08:33 - 08:39
So, also the responsibility is shared across teams and the beauty of Spotify models that it

08:39 - 08:42
doesn't force all teams to work using the same methodology.

08:43 - 08:44
So every team is autonomous.

08:44 - 08:48
They can work as they like, In the end, they contribute to the big vision.

08:49 - 08:52
But on it on their own way, so it's not forced.

08:53 - 09:00
And then because also all of these teams are kind of cross, functional teams.

09:00 - 09:03
So you also need to have kind of chapters.

09:03 - 09:08
So every team has back end engineers, front end engineers, mobile, blah blah blah.

09:08 - 09:10
Then you have chapters for these domains.

09:10 - 09:12
So for example, you have mobile chapter.

09:12 - 09:15
Inside it there is Android chapter, iOS chapter, and so on.

09:15 - 09:21
So you always also get everybody together sharing knowledges, sharing knowledge and so on.

09:22 - 09:23
And it has many other details.

09:23 - 09:27
Let's not I think there are lots of people can talk about this way better than me.

09:29 - 09:40
So the downside in my opinion is prioritization, because in the end each entity, which is tribe

09:40 - 09:42
in this case, has its own priorities.

09:43 - 09:46
So the alignment becomes a problem sometimes.

09:46 - 09:50
You need always to be aligned and it's it's I think it's the hardest mission ever.

09:50 - 09:57
To be aligned on the vision, to be aligned on the priorities of your team against the priorities of other teams.

09:57 - 10:00
So I think this is the biggest, challenge.

10:00 - 10:06
So you need always to work on this because I think this is the biggest deal in my opinion.

10:08 - 10:14
So, yeah, I think also maintaining a shared vision is kind of problematic because, again, like,

10:14 - 10:19
with different domains, it's very hard to come up with a shared vision for all together.

10:20 - 10:23
So this also is a little bit challenging, I'd say.

10:25 - 10:32
Also, hiring, for example, is a is a challenge because when it comes to this and each tribe

10:32 - 10:41
is very big, big enough, they have their own, let's say hiring, process or standards.

10:42 - 10:48
So you also need to work on this kind of standardizing the hiring process across all tribes,

10:48 - 10:52
not only, each tribe is free to do whatever they want.

10:52 - 10:54
Because in the end, you care of the quality.

10:54 - 10:59
All engineers or all employees will be with the same quality, with the same titles in all tribes.

10:59 - 11:01
So this is also a challenge.

11:02 - 11:09
The last thing in my opinion is the resource allocation, or talent distribution, what I mean.

11:10 - 11:11
So some tribes are overstuffed.

11:12 - 11:14
They have enough people, other tribes no.

11:14 - 11:19
And but with this tribe tribalized world is very hard to share the resources.

11:20 - 11:25
Because sharing the resources is kind of changing the entity you work for.

11:25 - 11:30
It's not that easy, that you just in your tribe need mobile engineer, another tribe has maybe

11:30 - 11:32
2 more than they need.

11:32 - 11:34
No, you cannot share this easily.

11:34 - 11:36
So this is also something to work on.

11:36 - 11:40
But once you take care of these things, once you already know the downsides and you work on

11:40 - 11:48
them, I think it's, in my opinion, the perfect setup. Thank you for that. That's really interesting.

11:48 - 11:49
I haven't so for the

11:49 - 11:53
first time, I'm hearing the downsides of the of the working in tribes.

11:53 - 11:59
I heard a lot of, like, advantages, and I haven't heard about this of the hiring process and,

11:59 - 12:02
like, you know, moving people from one on one side to another end.

12:02 - 12:06
That this is so difficult, so, I think this is invaluable knowledge.

12:07 - 12:12
And recently when we talked, we talked about the, a few technical concepts.

12:12 - 12:20
So, and the one that, stuck in my mind was the discussion about the polyrepo versus monorepo. Yep.

12:20 - 12:27
So if you remember if you still remembered our conversation, maybe you can elaborate on that because this was yep.

12:29 - 12:36
So, like, for example, talking about the back end, what is the biggest architecture trend now is more of microservices. Yeah.

12:36 - 12:38
So each service is stand alone.

12:39 - 12:42
It's still connected somehow, but stand alone.

12:42 - 12:44
So in mobiles, that's different.

12:44 - 12:49
You cannot really apply this because in the end, you ship 1 app.

12:49 - 12:53
It's one product that you ship, you upload to the Play Store. Everything together.

12:53 - 12:55
It cannot be cut into pieces.

12:56 - 12:59
Architectural wise, yes, but delivery wise, no.

13:00 - 13:06
So most of the mobile development goes through the mono repo pattern, which is everything in

13:06 - 13:09
one place, everything in one, GitHub repo.

13:09 - 13:15
Everybody contributes to the same thing, and in the end, everything is shipped together.

13:15 - 13:16
The poly repo is a bit different.

13:16 - 13:21
It's more like microservices, but for more I mean, it's more like microservices.

13:21 - 13:26
So you can cut for example, you have domain, some app app, for example. It has bank domain.

13:26 - 13:29
It has checkout domain, it has big domains.

13:30 - 13:36
You can cut these domains into SDKs, and each SDK is separate repository and has its own version,

13:36 - 13:39
and in the end, these things integrate together.

13:39 - 13:46
So in the end, in my opinion, both of them work very well, but both of them have lots of downsides.

13:47 - 13:53
So the monorepo, it gives the engineers the opportunity to see everything because they have

13:53 - 13:58
open pull requests, for example, for every change of the code, and it's all in one place.

13:58 - 14:00
So that's a very good, thing.

14:00 - 14:04
But the downside is it's also it also gets overwhelming.

14:04 - 14:09
It increase, the build time so much because every and this is the most painful thing you will

14:09 - 14:12
hear from any mobile dev, especially Android dev.

14:12 - 14:16
Especially in big company, the build time, and it takes me forever to build the code.

14:17 - 14:22
So this is also one of the downsides of the monorepo because you need to build everything together.

14:23 - 14:28
The polyurepo is a bit challenging because also you need to align the versions together.

14:28 - 14:31
The version how all of these SDKs work together.

14:31 - 14:35
So that's the challenge part the challenging part, but in the end, it's much faster.

14:35 - 14:38
You are free to do whatever you want in your repo.

14:38 - 14:40
You are free to test the way you want.

14:40 - 14:50
You are free to do whatever, and then you ship new version, maybe weekly, and you put it in the app, integrated, done. Cool. It comes with downside.

14:50 - 14:53
Again, another downside is with testing.

14:53 - 14:56
It's because you it's you don't test the integration all the time.

14:56 - 14:58
So, I mean, both of them are good.

14:58 - 15:04
My personal opinion is to go through polyurepo and try to minimize the side effects of it.

15:04 - 15:08
There are many ways to do that as that's how I see it.

15:09 - 15:13
But in the end, both of them work the most important thing to keep maintaining, and this is,

15:13 - 15:15
biggest deal in software engineering in general.

15:15 - 15:21
Because, anyway, whatever you do is legacy, it's gonna be legacy very soon, so you need to make

15:21 - 15:26
it a fine legacy, not not the legacy that people will suffer in 5 years here.

15:28 - 15:34
And you tackle the the the the trends, in software development, like the microservices. Right? Everybody's going this way.

15:34 - 15:39
And another question that I wanted to ask you to give you a bit of a background, so this was

15:39 - 15:44
with what with, something that I was struggling before, like, running the the the company.

15:44 - 15:49
So, like, my my company that I'm running, the Brain Hub, we are, like, the JavaScript dev shop. Right?

15:49 - 15:55
And when we started it, like, I think it was, like, 8 or 9 years ago, the JavaScript was growing like crazy.

15:55 - 16:00
So, like, each week each day, you have, like, a new framework, new library, and the developers,

16:00 - 16:03
especially the developers, showed up their study.

16:03 - 16:05
This is their first job or they are just studying.

16:05 - 16:07
They are not so experienced.

16:07 - 16:13
They just, you know, trolley with you, like, with all those libraries, frameworks, that we should go with this way.

16:13 - 16:17
We should go this way, this way, and you have, like, plenty of those.

16:17 - 16:25
So I'm just wondering, how do you approach saying no to new things, and keeping devs happy developers

16:25 - 16:26
happy at the same time?

16:26 - 16:29
Yeah. I would say it's a muscle you train.

16:32 - 16:38
Because yeah. In the beginning, especially when I joined platform because this is the teams

16:38 - 16:41
that usually say no, but for a reason always.

16:41 - 16:45
So, hopefully, people understand that it's for a reason.

16:45 - 16:51
So, yeah, in the beginning, I used to say, like, okay, maybe that doesn't work. Okay?

16:52 - 16:54
But maybe without giving enough context.

16:56 - 17:04
After that, time by time you learn how people would get more interested or how they will buy in your idea.

17:05 - 17:08
When you share context, when you share yeah. You know what?

17:08 - 17:10
This, this, this, they don't work together.

17:10 - 17:16
Like, something feels very trivial updating library version, not even adding new library, adding

17:16 - 17:18
just updating the dependency version.

17:18 - 17:24
It might break every cycle easily, because in the end there is there are transitive dependencies,

17:24 - 17:28
and if every dependency has an other dependencies with different versions, whenever you update

17:28 - 17:30
one version it might break everything.

17:31 - 17:35
I think now, by time, also most of engineers now understand this.

17:36 - 17:42
So now to be honest, it's not hard to say no because sometimes even before going and saying

17:42 - 17:45
no, I see other people already did this and they already understand.

17:45 - 17:51
And to be honest, this is the best thing here is that I think the people from the past before

17:51 - 17:57
even me coming here, they developed this culture that people now understand and have kind of

17:57 - 18:02
shared knowledge about the app or about our products, these products we ship.

18:03 - 18:09
Also, there is something that makes things easier is that, you always have something called

18:09 - 18:12
dependence trees that mentions all the versions and everything together.

18:12 - 18:18
So whenever you open a pull request for some changes, you see what all the how all the versions

18:18 - 18:24
change it, and it's very easy for you, very visible to understand the impact of what you have done.

18:24 - 18:30
The problem only happens when maybe new engineers join, so it's it should be a part of the onboarding

18:30 - 18:34
that they need to understand that whatever they do, the impact is very high.

18:35 - 18:40
But in the end, they really accept it very, in very friendly way, and it's very fine.

18:41 - 18:46
So even we keep, challenging each other, like, okay, maybe it becomes a negotiation or kind

18:46 - 18:51
of, like, okay, I want to update to version 5, but, yeah, we have version 3. Okay.

18:51 - 18:53
What about updating to version 4? Would it work?

18:53 - 18:58
You know, like, it's like trading. Yeah.

18:58 - 19:00
That's that's exactly what I mean.

19:00 - 19:02
It's a muscle you train. So.

19:04 - 19:08
And let's talk a bit more about the technical aspects.

19:08 - 19:14
I heard once from the CTO that, from one CTO that you mentioned that architecture decisions

19:14 - 19:17
should be the last one to make, like, as late as possible. Right?

19:17 - 19:21
Because it has a huge impact, and it stays with you for a longer time.

19:21 - 19:26
So I'm just wondering in your case, because you already mentioned, the legacy. Right?

19:26 - 19:28
At some point, everything will be legacy.

19:29 - 19:34
But do you have any actionable tips, how to plan properly the architecture?

19:35 - 19:43
Like, how to do it before other leaders, what they should avoid maybe, or what are the common mistakes in this area? Yeah.

19:45 - 19:50
So to be fair, it's impossible, as you said, it's impossible to avoid legacy. This is gonna happen.

19:50 - 19:53
This happened in the past, happening today. It's gonna happen.

19:53 - 19:56
We are building legacy code for future.

19:57 - 20:05
So I think the word legacy is kind of misused because legacy itself is not a bad thing. It's fine.

20:05 - 20:08
If it's working perfectly, it's fine.

20:08 - 20:14
There are new trends that make things work easier, but that doesn't mean that the old ones weren't bad.

20:14 - 20:18
So I I always don't take legacy world as a bad thing.

20:19 - 20:25
But you need to reduce, the bad impact of the legacy in future.

20:25 - 20:28
To be honest, with doing this, it should be easy.

20:28 - 20:34
Anybody who studies software engineering, it should be easy, but it's not as easy as it sounds

20:34 - 20:36
because in the end you need to ship things.

20:36 - 20:37
And this is the main goal.

20:37 - 20:39
We are a product company.

20:39 - 20:42
Most of the companies are product companies, and you need to ship.

20:42 - 20:46
So usually you make your decisions based on the timeline you have and so on.

20:46 - 20:50
Like, there is always a fun joke that, okay, I will fix this later.

20:50 - 20:52
I will just deliver this and fix this later.

20:52 - 20:55
This fix this later would never happen.

20:55 - 20:59
So he's just like, yeah, okay, I misdeliver and we will optimize.

21:00 - 21:06
I never seen somebody who revisited the codes they have done just to optimize.

21:06 - 21:07
I thought this is not happening.

21:08 - 21:15
So I think, in my opinion, they everybody, including myself, is also a reminder reminder for myself.

21:15 - 21:19
Just follow the solid the very basic solid principles.

21:19 - 21:23
When you follow principles, when you follow clean architecture, you when you keep this in mind

21:23 - 21:30
all the time, you will not have bad impact of whatever you write now because it's always open for change.

21:30 - 21:33
It's only, it's always scalable and so on.

21:33 - 21:37
So when when you keep this in mind, I think it works and that's enough.

21:37 - 21:41
So that's how I I take it.

21:42 - 21:45
You need also to learn how to plan the architecture.

21:45 - 21:50
Of course, as you say, the architecture is not the first thing you think about.

21:50 - 21:56
So you need to learn about the business, how the business will be shaped in 2 3 years. It will always change.

21:56 - 21:58
You can learn about it, then tomorrow it will change of course.

21:59 - 22:05
But you build the architecture based on the business needs, because maybe in the end you don't

22:05 - 22:07
need to have fancy setup.

22:07 - 22:10
Maybe the the simple setup will work better for you.

22:11 - 22:18
Because whenever also you try to build fancy things that's more complicated than needed, that

22:18 - 22:20
will end up with bad legacy.

22:20 - 22:23
Because later why why all of that and we don't need it.

22:23 - 22:24
You know what I mean?

22:24 - 22:32
So, yeah, in in in summary, I don't think legacy is bad, but we need to make sure as much as

22:32 - 22:34
we can that it's not gonna be bad.

22:34 - 22:36
It's gonna be a legacy. Yes. It will be.

22:36 - 22:41
So I don't know if this answered your question, so please correct me.

22:41 - 22:42
More or less, I cannot correct.

22:42 - 22:46
I'm not well, you know, educated enough, like, in this area. So

22:50 - 22:55
No. I I think that's, that I think that's no. It's a good answer.

22:56 - 23:03
And, Mohammed, I wanted to ask you, like, a tough question because, like, everybody of, each

23:03 - 23:07
of us, we learn from, like, really hard things at work.

23:07 - 23:13
So I'm just wondering what was the hardest thing or situation that you have experienced in your

23:13 - 23:16
career impact, and what you have learned from that?

23:19 - 23:27
I think the biggest step, the hardest for me, and it took lots of time to adapt, is moving from

23:28 - 23:36
the software house culture and environment and, yeah, To the product company.

23:36 - 23:39
So software house is very different with very different mentality.

23:40 - 23:44
You need to you you don't care a lot about the future of this product.

23:44 - 23:46
It's not your product in the end.

23:46 - 23:51
I used to work for a software comp a house, for 5, 6 years.

23:52 - 23:59
I worked on 9 different projects in these 5, 6 years. It's very different mentality. It's very different mentality.

23:59 - 24:02
All of what you want is to ship.

24:02 - 24:07
All of what you want is to ship with without crashes because this is a problem for the client.

24:08 - 24:12
And also you need to deal with the client, you need to understand the requirements, and so on.

24:12 - 24:14
You are in the end in the end you are doing everything.

24:15 - 24:17
I learned a lot from there.

24:18 - 24:21
But moving to product, that's totally different world.

24:22 - 24:23
Things are not the same.

24:23 - 24:27
You need to understand very well what the product is because it's your product.

24:27 - 24:32
You really care about the product because in the end, you are the one who is responsible for it.

24:32 - 24:35
You are the one who is responsible for testing it.

24:35 - 24:37
You are the one who is responsible for the feedback.

24:37 - 24:45
In software house, it's the opposite because the client in the end will test and will come to you with the feedback. It's very different mindset.

24:45 - 24:48
So to adapt to the new mindset, it took me a while.

24:49 - 24:50
It it really took me a while.

24:51 - 24:54
But in the end, yeah, after I don't know, 4 years now. Yeah.

24:54 - 24:58
Maybe 4 a little bit more than 4 years working for only product, companies.

24:59 - 25:02
I think now everything together makes sense, but only after 4 years.

25:02 - 25:04
Now it's easy, of course.

25:04 - 25:09
Now I kinda connected like, okay, back then the client to me was the real client.

25:09 - 25:11
Now the client to me is the stakeholder.

25:12 - 25:16
But we both have the same vision because we both work on the same product.

25:16 - 25:18
We both care about the same thing.

25:18 - 25:22
That's the only difference for me now, but back then, of course, it was horrible. It was very hard.

25:24 - 25:27
Now, what are your biggest challenges in 2024?

25:32 - 25:35
Okay. Technical wise,

25:38 - 25:46
the unification maybe of our, products because, yeah, we have multiple, products, and now there

25:46 - 25:53
are some mergers or some product needs some, features from the other and so on.

25:53 - 25:58
So this unification thing and sharing is is a big one.

25:58 - 25:59
It's really a big one.

26:00 - 26:07
Also, KMP, for example, if you know is Kotlin Multiplatform is new.

26:07 - 26:09
It's it's a new good trend.

26:09 - 26:10
It's not just a new trend.

26:10 - 26:11
In my opinion, it's a new good trend.

26:12 - 26:19
So introducing it to, sign up and relying on it for for big features is also a big challenge for us.

26:20 - 26:25
And there is always a big challenge we always have every year, so maybe if you ask me in 5 years,

26:25 - 26:26
I will always say the same.

26:26 - 26:28
It's about the build process of the project.

26:29 - 26:31
So how the project is being built and so on.

26:31 - 26:35
We always try to improve this, but we will always also try to improve this. It will never stop.

26:35 - 26:36
It will always have issues.

26:36 - 26:40
So those are, I think, the main three, things.

26:41 - 26:48
Thanks for sharing. And the last question that I wanted to ask and ask all of my guests, I wonder,

26:49 - 26:56
can you recommend any books, resources, conferences, podcasts, or some trials that were particularly

26:56 - 27:00
helpful to you as a particular that helped you and can shape you.

27:01 - 27:04
Yeah. Of course. So I would start first with, podcasts.

27:04 - 27:07
There is a very nice one called Better Tech Leadership.

27:10 - 27:12
Anyhow, you're Thanks for that.

27:12 - 27:13
I will use it on a website.

27:13 - 27:15
I will use it on a website.

27:17 - 27:24
Otherwise, for yeah. For other podcasts, there is, the prime time is, of course, good as well.

27:26 - 27:29
I don't, to be honest, listen to many podcasts.

27:29 - 27:34
I know about yours, like, before we, we contacted each other from Jan.

27:35 - 27:37
So that's why I became interested. I wanted to hear.

27:37 - 27:41
I like the talk and so on, so I wanted to listen to more interviews.

27:41 - 27:44
The prime time is also great, but those are the only 2.

27:45 - 27:54
For box, I mean, for bigger vision about software engineering and company and, how to build

27:54 - 28:00
lean software and DevOps and so on. I like Accelerate book. It's very, highly recommended.

28:00 - 28:04
It's called Accelerate, the sign of, Lean Software and DevOps.

28:06 - 28:12
There is one book that I think it's one of the top I have ever read, 5 Dysfunctions of a Team.

28:13 - 28:14
I really love this book so much.

28:14 - 28:16
I love I love it. I love the story.

28:16 - 28:17
I love how it's written.

28:19 - 28:23
It's really very inspiring in my opinion because you always feel these,

28:26 - 28:32
values, but you don't know that it's a common thing across all teams.

28:33 - 28:39
It it's kind it's very, very important in my opinion, to be read, for anybody who wanna step

28:39 - 28:43
up, to learn more about the team and how team work and how to build better team.

28:44 - 28:47
Unfortunately, there are not lots of box for staff engineering.

28:47 - 28:50
There are lots of box for engineering management management track.

28:51 - 28:56
So that's why the staff engineer book is called the staff engineers path because I say it's

28:56 - 29:03
one of the first one, and the other one is thus called staff engineer. So it's that easy.

29:04 - 29:11
Those were were also important to learn from other aspects, how staff engineer or staff plus,

29:11 - 29:12
staff principal, and so on.

29:13 - 29:17
How it works in other companies, in big companies, and so on. What does it mean?

29:17 - 29:22
What are the tracks different tracks for being staff, different, styles of being staff, and so on?

29:22 - 29:24
So, it was very, very helpful to me.

29:25 - 29:28
So, yeah, I think, those are on top of my mind.

29:29 - 29:34
Great. Thank you very much, Mohammed, and this was my last question.

29:34 - 29:37
You gave Amara a great answer, so thanks for that.

29:39 - 29:45
And I really appreciate your time, and I wish you a great weekend. You too. Enjoy. Thank you.

29:47 - 29:52
Follow Matt on LinkedIn and subscribe to the Better Tech Leadership newsletter.

Explore similar episodes

I for Interim: A day in the life on an Interim CTO

Matt Warcholiński interviews Martin Rusnak, owner of Rusnak Consulting and Interim/Fractional CTO.

listen now
P stands for Pivot: Growing a startup from the ground up

Leszek Knoll talks with Fatima Zaidi, CEO and founder of Quill, about the challenges of setting goals for a growing organization.

listen now
Company at startup, company at scale

What's the difference between being a technical leader in a large company and a startup? How do you set goals and measure them? What are the pitfalls to avoid?Leszek Knoll digs into these topics with Robert Coletti, co-founder of Cello.

listen now
A leader in engineering: Leading people, tech and strategy

Matt Warcholiński talks with Phil Freo, VP of Engineering about mixing leadership requirements with building tech strategy.

listen now