Requirements
We want to turn our basic to-do app into a habit formation app. To do that, we want to introduce the concept of recurring tasks.
We want the app to at least support the following:
- Multiple repetition types: Daily, weekly (specific days)
- Some way of promoting users to create recurring tasks: We want to make this app effective at helping users build habits - which means getting them to make recurring goals. This is intentionally open-ended — we want to see your product thinking.
Codebase
You’ll make your changes to this Flutter codebase. The Readme has details on setup and the architecture, as well as some additional details for the prompt.
birdo_tasks.zip
Note: most candidates don’t have experience with Flutter, and most engineers at Finch had never worked with Flutter before. Part of working here is picking up the framework, so it’s part of this exercise. We’ve tried to ensure that the codebase is easy to get running and debug, but please reach out if you have any trouble.
How to approach this exercise:
- Use whatever tools you normally use, including LLM coding assistants (Copilot, Cursor, Claude Code, ChatGPT, etc.). We want to see how you actually work.
- Target 4–6 hours. We value speed and want to see how much you can accomplish in a tight time constraint.
- You should have high comprehension of your code. Be prepared to explain any part of your solution, why you made the choices you did, and how things work under the hood.
- Don't know Flutter? That's okay. We work with Flutter, but we tried to make this codebase as straightforward as possible. If you have any questions or trouble, feel free to reach out. Part of what we're testing is that you are comfortable diving in to an unfamiliar technology.
Design