Congratulation! – You have advanced to the final round
We ask you to complete an exercise and demonstrate the result to us in a follow-up interview (dates in the e-mail). As we are looking for the best talent that can help us build the App and Backend for the 2Marketing product we have chosen relevant test cases.
2ai Student Developer - Exercise
tldr; Create a expo/RN app with 4 bottoms tabs and showcase your choice features like Auth, Voice chat and Calendar view and anything else you want to include.
Exercise
Create a Native App with Expo SDK 52 and React Native 0.76 using TypeScript
Demonstrate running app in iOS or Android simulation or real device
Demonstrate and explain the code for the App (Hint: know your code. We may ask you to change or extend something in the interview)
Demonstrate use of AI assistance in your development process like ChatGPT or Claude or IDE's like VS Code with AI ext. like GitHub CoPilot, Aider, ClaudeDev a.o. or other AI IDE's like Cursor or Windsurf. Explain your choice and pros/cons.
Explain your choices, process, challenges, obstacles, time spend, AI usage and what you found trivial and hard
You can spend any amount of time you like and use any support tools of your choice
Have fun!
Create an App with one or more of the following features.
1) 4 x Bottom Tabs/Views using Expo Router
Today - Empty or dummy examples of todo's, stats, rewards/gamefication, quick actions, suggestions
Idea - Chat
Plan - Month view
Profile - user sign in/out
- Bonus: Use Nativewind 3.3.2, 4 or later for styling
- Keyword: Expo, React Native, Expo Router, Bottom Tabs, Styling
2) Authentication using Supabase
Use Profile tab/page for user sign in/out
Sign-up and Login using Supabase auth
- Bonus: Show splash screen and light/dark mode
- Keyword: Auth, Supabase, Dark mode
3) Chat using voice
Use Idea tab to show a audio/speak symbol - e.g. similar to ChatGPT
Demonstrate the use of access to microphone using expo-av (or alpha version of expo-audio)
- Bonus: Demonstrate the use of OpenAI real-time API to have a conversation in native app
- Note: If you need OpenAI API keys - let us know and we will provide it for you

Examples:
https://static1.pocketlintimages.com/wordpress/wp-content/uploads/wm/2024/09/chatgpt-telling-a-story-using-different-voices.jpg
https://static1.pocketlintimages.com/wordpress/wp-content/uploads/wm/2024/09/chatgpt-advanced-voice-running-on-iphone.jpg
- Keyword: Chat, Audio, Voice, User approval
4) Calendar view
Use Plan Tab to show a calendar view similar to iOS month view
Calendard view must have a full month (up to 5 weeks)
Include Month and for each date 1-31: date, icon, color, text
Show styling of icon (SoMe channel), colors (Category) and text for each day
- Bonus: Click a day and get a feed view using a styled flat list with picture, icon, title, body
- Keyword: React Native component, Extended styling

Example view:
https://preview.redd.it/ios-18-db1-calendar-has-detailed-monthly-view-v0-nzql4w9jws5d1.jpeg?width=1080&crop=smart&auto=webp&s=5be1ce2cf796b01533d9cd57a38fb84f31f01c2a
https://github.com/wix/react-native-calendars
5) Add more, if you got bored, or have something you want to showcase for us.
Examples for inspiration:
Testing, Logging, Monitoring, Debugging the app (Process and Tools)
State Management, Persistence (e.g. using Zustand)
App or 2D Animation using Reanimated 3.0 or Skia
Upload photo from library or Camera using expo library incl. access rights
Use any native library and do a custom dev build for iOS or Android
App gestures like pan, tap
Evaluation Criteria:
To ensure fairness and clarity, the following aspects will be evaluated:
Technical Skills: Your ability to use frameworks and libraries effectively.
Creativity and Problem-Solving: How you approach the tasks, especially in the "Bonus" and "Add more" sections.
Code Quality: Clean, maintainable, and well-documented code.
Commitment: Your attention to detail and effort in completing the test.
Tips for Success:
Don't hesitate to showcase your unique approach or creativity—this is your chance to stand out.
Focus on quality over quantity; it's better to have a smaller, polished solution than a larger, incomplete one.
Be sure to test your work before submission to minimize bugs or errors.