Flutter burst onto the scene five years ago, promising beautiful apps with code you could write once and deploy everywhere.

Today, with over 700,000 apps in the app stores, the question I hear most isn't, “What is the best state management?”.

After presenting to 20+ conferences and collaborating with 5k+ developers globally this year, I always get asked a lot: “What makes someone a Senior Engineer in Flutter?”

In this article, I’ll share the top three skills that I find valuable that helped me level up from being a Junior to becoming a Senior Software Engineer in Flutter.

1. Technical Breadth and Depth

Screenshot 2023-12-18 at 4.52.52 PM.png

While Flutter offers an easy and declarative way of writing UIs and layouts, most start to experience difficulties when implementing custom UIs using painters or shaders and even working with low-level APIs for animations.

Given that Flutter is designed for deploying apps on multiple devices, trying to make an app work on mobile, web, and desktop can get very intimidating.

To level up as a Senior Engineer in Flutter, you need to find the right balance with your technical breadth and depth:

Implementing your custom UIs with painters, shaders, and animations can help you appreciate Flutter more.

It helps you write better and performant UIs, which you can apply to other UI toolkits or frameworks, and negotiate better with your product designers if there are technical constraints.

Trying to master all of the platforms at once can get very intimidating and might be confusing for some.

Some level of mishaps could happen given the complexity each platform brings.

I was a native iOS and Android engineer before I used Flutter, so it made sense to me to start and jump right ahead learning desktop and macOS development with Flutter.

Distribution is a critical aspect of writing apps. This is one of the most essential steps to get the apps delivered to your users.

Knowing one or two CI/CD providers like GitHub Actions and Codemagic is a good start.

If you’re unsure which technical depth you want to dive deep, start with the needs of your team first and fill that gap.

Try to understand what makes the most impact on the business and go from there.

2. System Design