What I ask Junior and Senior Flutter Developers in a Job Interview
Tags: Flutter Questions, Interview Questions, Flutter Job Interview, Flutter Interview

What I ask Junior and Senior Flutter Developers in a Job Interview MobileDevBlog Jan 13·7 min read

In this article, I will share my Flutter job interview process, questions I ask during Flutter interviews, and point some tips for junior and seasoned developers. I plan to do a few articles about interviews covering different topics from different perspectives of the interview, so don’t forget to follow and clap ;)

What I ask Junior and Senior Flutter Developers in a Job Interview

I’m Team Lead of the mobile department and my duties include basic things like code review, mentoring, coding of course, but also interviewing candidates. During my career I have interviewed a lot of people for different positions: android developers, front-end developers (especially for React position), and for the last few years flutter developers.

The interviews for android and front-end positions are pretty much stable. I mean the market for this position is not new and it’s clear what to ask and what interviewee should know for every type and level of this position. But with flutter, it distinguishes a little bit. The market for Flutter apps is still small. Well, that’s compared to the other mature markets like android, iOS mobile development, or front-end development. And flutter developer should know not only the Dart language and Flutter framework, how it works, but also a lot of aspects of mobile development for different platforms: how to build and configure the app for iOS and Android devices. And you know a lot of other small, not necessarily complicated things, but during the interview, I have to understand whether the candidate has worked with it or not. That allows me to understand the skills and level of experience.

What I ask Junior and Senior Flutter Developers in a Job Interview

Flutter Job Interview: Start

I usually start the interview with a suggestion for the candidate to talk about the experience, previous job position. Also, I ask to describe the most challenging problem the person has ever solved, or the solution the candidate is most proud of. Of course, such kinds of questions are for Middle and senior developers.

In the case of interviewing a junior developer, I will not start the conversation with such kind of questions, because obviously, this person hasn’t have such kind of experience yet. So, at the beginning of the interview, I usually ask juniors about the courses they have attended, or what kind of online courses they have enrolled in to learn Dart and Flutter development. Another important thing is the small, test apps the person has already built because even if you are a junior developer you need to practice somehow, right?

That’s the interview starter, then I’m usually continuing with technical questions and this is my favorite part of an interview.

Flutter Interview: Technical part

I really don’t like the whiteboard interviews or even worse: questions that require paper and pen, especially the implementation of a specific algorithm. I’ve been to few interviews like this as a candidate and I have to say it is just not the way it should be. It takes a lot of time, like hours to write algorithms, to discuss technical things behind these algorithms, visualize the data structures and possible solutions to the questions asked by the interviewer, and stuff like this. Maybe this approach is good for big companies like Google or Amazon, but not in most of the cases in my opinion.

But, let's get back to my technical interview process. A lot of things depend on the actual position which needs to be filled. For example, if a person applies for a junior developer position, I’m not going to ask questions about the architecture and what this person would choose for a real-time multiuser app, for instance.

Flutter Interview Questions for Junior Developers

I always adjust questions for an interview according to the skill level of the interviewee. And in the case of a junior candidate, I need to check the basics first. This will allow me to understand whether the person knows the Dart programming language, OOP, Dart collections, and Asynchronous programming.

Also, I would ask some basic questions about the Flutter framework, for example, the difference between Stateful and Stateless widgets, what is the build context, the difference between packages and plugins, what is the hot reload and hot restart, and also, something about scaffolds, rows, and columns — so the basics of UI.

The same thing is about state management: junior developer should know the basic usage of some kind of state management solution like Provider with Change Notifiers or BLoC pattern. Another really important thing is GIT. The person should know the basics of GIT, how to manage repository, branching, merging, and stuff like that. What also important is if the person has experience in teamwork. And this is really important. This allows me to understand if the person cares about the code quality and following best practices in collaborative workflows.

Flutter Interview Questions for Middle and Senior Developers

Ok, what about the more skilled developers, who already have commercial experience and a few projects built from scratch to publishing?

So, in such kind of interviews, I also ask technical questions, but I assume that the interviewee already knows some of the basic topics, and that’s why the questions are more advanced. For example, someone with Middle and senior skills have to know Dart programming language with complicated topics like streams, for example, can explain what the event loop is, what isolates are, and how to use them. Also, the candidate should know the responsive UI design practices and have experience in writing different sets of tests including unit tests, of course, widget tests, and integration tests.

Another important topic is the state management in Flutter apps. For example, an experienced person should know not only the differences between common state management solutions but also should know when to use them and can provide valid arguments that support the answer. The same thing is about the project architecture, how to organize the project, how to make it scalable with its growth, and stuff like that.

This allows me to understand how the person is experienced in different topics an how the person thinks, the way they think, and how they make technical decisions.

And it’s not only flutter related things, the interview includes questions about Firebase services, Continuous integration and continuous delivery solutions like Codemagic and Bitrise, or maybe self-made solution using Github Actions or other providers. This is usually a big plus.

Middle and Senior Flutter developers should use Best practices for releasing apps or at least can explain what they used for such kind of tasks. If they can’t put together few words about how they release apps, that’s a warning sign.

Flutter Interview: Proposed Scenarios and solutions

I like to discuss different scenarios and solutions during the interview. I really like to ask questions about what tools and packages would the interviewee use for a fully responsive mobile app for different screen sizes, for a real-time multiuser app, or for a background location-based app. You know the background processing in flutter apps is a huge topic and it’s important to know what the candidate knows about it and what the possible solutions are.

So, I listen to the reasoning for certain solutions to proposed scenarios and making notes for myself.

Job Interview tips and suggestions

The really important thing that plays a huge role in the whole interview is the way people answer the questions.

The answer should not be peremptory. If the interviewee thinks that his answer is the only right answer and he doesn’t consider other possible solutions or ideas, then it says a lot about that person, especially about the decision-making and problem-solving skills.

So, when the interview is over and I have all the needed answers, I have to make a decision on whether to recommend this candidate or not.

If a candidate has the side projects it’s a big plus because it allows me to check the project architecture, the way candidate implemented state management in the app. Also, code quality, UI implementation, and the way a person organize a repository.

And another huge advantage of the candidate is if he has his own published flutter apps in Google Play and App Store. It shows strong interest to flutter development and shows the fact that the candidate has come through all the stages of the development process: from an app idea to publishing.

Flutter Job Interview: Practical Test Assignment

And in some cases, when I don’t feel confident about the candidate, especially for junior and middle positions and especially when the candidate doesn’t have code to show on Github. In these cases, I recommend an additional interview step which is the test assignment.

This test assignment is a really small task, but that will allow me to see the coding skills and understand whether your theoretical knowledge backed by solid coding skills. Test assignment usually requires the set up for state management solution, few screens, and network calls and UI implementation. Tests are optional but would be a plus. Well, that’s not rocket science, the task is simple, but the implementation demonstrates to me the code quality, and I understand the way the person organizes projects and implements business logic — that is the most important one. All of the mentioned things help me to make a decision and this approach always proves its effectiveness.

Flutter Interview: Candidate Background

I prefer interviewing developers that have switched to Flutter from Android and iOS because these candidates know the specifics of the mobile development field and already know how to build apps, release apps, and configure native code. Well, if the person has switched from Web development to flutter, then the native code, Xcode configs, and Gradle dependencies will really make the learning curve harder. But this of course doesn’t mean that the candidate can’t become a great flutter developer in the future.

In this article, I shared with you my approach to interviewing junior and senior flutter developers and some of the interview questions I usually ask during an interview. Hope you liked this article and learned a few things for your next Flutter Job Interview.

Clap this article and leave a comment below with your thoughts about my approach and what you ask interviewing others or what questions you have been asked during flutter interviews.