Beyond Mobile Engineering - Part 1

A software developer’s journey begins with entering one specific technology and mastering it as time progresses. Some follow the Full Stack path, whether front-end or back-end, but even in that, they master one language, such as Java, JS, or Python, to build full-stack applications. However, few developers will spread their wings and go horizontal into learning different technologies as time progresses, gaining broad software knowledge and experience.

Similarly, a new developer will start with either iOS or Android, even in mobile application development. However, many eager developers with prior web experience want to develop for both platforms and take the path of React Native, Flutter, or Cordova in the olden days.

  • C/C++ developers typically explore iOS
  • Java developers will take up Android
  • Java Script developer will take up React Native
  • C# developers will take up Xamarin
  • The daring soul will venture into the Flutter world

Mobile devs can be divided into two main camps: Native and Hybrid Mobile devs can be divided into two main camps: Native and Hybrid

Every developer faces two critical decision points in their professional lifetime:

  1. The time when you need to decide which language and technology to start your career with.

  2. The time when you need to decide what is next for them after gaining years of experience and being a master in a particular language and technology.

Decision Point 1:

Options in software development Options in software development

This comes early in the journey and is relatively easy to decide. A mobile developer will pick one native platform based on their interest and environment and continue with it. I picked up the iOS platform and stayed in the ecosystem for over ten years. It worked for me very well.

With more opportunities in React Native and Flutter, many developers are deciding to start with a hybrid tech stack. They bring different perspectives and push the boundary of developing apps for mobile.

Decision Point 2:

Learn other mobile platform and tech stack. For eg: Android Dev Learn other mobile platform and tech stack. For eg: Android Dev

In my career, even though I went deep into the iOS platform, I kept experimenting and learning Android, Xamarin, React Native, and Flutter. This gave me a broader knowledge of the mobile development ecosystem. In addition, it gave me a bigger picture regarding Design Systems, CI/CD, build systems, external tools and services.

Two choices Two choices

With that comes the second critical decision to either stay in the technical field or take the management route. This is very common in the software developer’s journey. Finally, there comes the point where you have to choose your next challenge. I decided to explore the management path. I wanted to learn what challenges management faces and how it impacts the software development lifecycle.

Note: You can always move from management to technical and vice versa. In these paths an individual have varied skills and experiences. It allows them to experiment their interests and take on new adventure.

Expanding Other Technical Paths

Now, these are only some of the two options at this stage. You have the option to either go deep within your domain, become a principal engineer or an architect who is an expert in a specific platform, or you can go horizontal and try out another tech stack, such as the back-end.

Horizontal vs. Vertical

Let us take a quick look at what we mean by going horizontal and vertical. As you can see in the following diagram, there are two levels of horizontal paths:

  1. It is getting broad knowledge of software engineering in general. That means trying different domains, learning multiple languages, and building other apps, sites, and databases.

  2. It is getting broad knowledge of a specific domain within software engineering. This means learning to make mobile apps for different platforms using different available tools and languages.

And then, there is the vertical path that gives you mastery in one specific domain and platform.

Going horizontal vs going vertical Going horizontal vs going vertical

This is a very generalized representation of a typical iOS developer. If you are not a mobile developer, you can still see how your domain can fit into this graph.

Your first goal should be to master one domain and gain soft skills as you progress in your career. Next, get feedback on your progress from your mentors, then evaluate and validate your position. What do you need to improve or are still lacking? And once you have a good idea about it decision point 2 will open more gates for you.

In this part, we have seen what the decision points are and, within those decision points, what the options are for a mobile developer. In the **next part **of this series, we will go into detail about technical paths and give tips that will help your decision process.

Thank you for reading this article. Constructive criticism is welcome.

Post header image Designed by slidesgo / Freepik