101 advice for mobile engineers

What languages, frameworks & tech do you need to succeed in Germany?

The following is an excerpt from a conversation between mobile engineer Mohamed from vivy.com and Johann, Founder & CEO of Imagine. This event was hosted by Egyptian Techies in Berlin & Imagine Foundation e.V.

Johann: Welcome Mohamed. Great to have you here. Who are you, and what do you do?

Mohamed: Hi, I’m Mohamed, I’m a software engineer, I’m an android developer. I work for a company called Vivy.com. We build a secure health management assistant.

Johann: Awesome! What are the skills required, skills, technologies, languages, tools to find and do a great job here in Germany?

Mohamed: I mean, in the end, there are some foundations which all the front end developers share. I’m talking about them from the mobile perspective. These are basic skills on how to manage a big codebase. Because most of us work in small companies at some point and they saw how weak the code can grow. For small apps, it’s really tempting to, like, take shortcuts just to get things done, but after some time it grows massively.

So, the main skill I see in the mobile technology or any mobile development is to be able to manage large codebases which has some principles and software writing skills.

You need to have SOLID principles, how to write clean code, how to write your code in a way that follows design patterns that solves future problems that may come into place and of course to stay up-to-date with the technology.

This means you have to look at the latest technology in the market, the community, you have to participate in conferences. If you don’t have the luxury to participate in conferences you can watch some talks. This way you will increase your knowledge and you will gradually become a better developer.

Johann: What technologies or languages would you advise aspiring mobile developers should know?

Mohamed: Well, the market here I see in Germany doesn’t go toward cross-platforms. Even though it’s tempting and there are some really nice frameworks, but cross platforms has not matured yet. In fact, a lot of big names are moving away from it, such as AirBNB and some parts of Facebook, they all reverted back to native. So all the markets are going toward the native languages.

So Android is mainly going towards Kotlin. iOS is all about Swift now. I mean, nobody’s using Objective-C anymore.

For Android its mostly Kotlin, and Kotlin’s trending. I see also a lot of people, a lot of companies are moving 100% to Kotlin. It’s become like really mature and you can use well it in production.

Johann: Mohamed, I know you are an active believer in lifelong learning. Can you give an example of how you learn?

Mohamed: Yes. I used to learn and listen to specific podcasts. In particular, a podcast called Fragmented. It’s an Android podcast. And there are some newsletters for Android, like Android Weekly. The good thing about the newsletter is that the most experienced people look at their blogs and they talk and they group it all together in one newsletter. It’s really beautiful to find such information all gathered in one place.

Johann: Thanks. Another question relating to experience. How many years of experience should an android mobile developer have to move to Germany and what are the desirable skills they should have?

Mohamed: Well, how many years of experience is really dependent on the type of experience. I see young developers, by young I mean 2 years experience in Android, but some of them have experience in Java, some of them have like worked with back-end before. But just 2 years of experience is enough, just make sure that the developer has worked with the relevant technologies and business cases. If you work for 2 years in a service company that only writes content without any logic or without any business growth, it doesn’t really count as experience.

So make sure your current job is adding relevant software engineering experience to your career.
And for the desirable skills make sure you use Kotlin, you are familiar with functional programming, make sure to use RX java for example, and Reactive overall concept. Make sure you know design patterns, lean architecture, best practices like SOLID principles, make sure to read Clean Code book.

Johann: Good, thanks for your time and detailed advice, Mohamed. Thank you very much.

A special thanks to our partner Egyptian Techies in Berlin for their contributions to this article.

This post is part of a longer series. For more visit us here: https://medium.com/imagine-foundation