Skip to content

forge-ml/mobile-interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

React Native Take-Home Assignment

Goal

This exercise is meant to make your engineering judgment visible. We want to see how you interpret an ambiguous product prompt, choose scope under time constraints, structure a mobile application, reason about trade-offs, and explain your decisions.

We're going to be evaluating you on the following:

  • clear/sensible code patterns
  • functionality + validation
  • readability

This assignment is designed to take less than 6 hours with AI-assisted code development. A focused, well-executed slice is better than a large build.

Assignment

Build a React Native mobile app for peer-to-peer messaging and calling with an AI component. It should include a lightweight backend for peer-to-peer communications.

The product should support a simple communication flow where two users can exchange messages, initiate a call-like interaction, and use an AI capability within the conversation.

Peer-to-peer communication must work. When we run your app locally, we need to be able to open two instances and have them talk to each other. This is non-negotiable.

The exact product shape is intentionally unspecified. Choose a narrow interpretation and implement it well.

You may use AI tools during development.

Requirements

Setup

  • Frontend: Use React Native
  • Backend: Whatever language/setup you're most comfortable with
  • Run locally with clear setup instructions
  • Include a README.md (entirely human written)

Functionality

  • Support functional 1:1 messaging
  • Include a functional call-like interaction between two users
  • Include one meaningful AI feature

Code Quality

  • Demonstrate strong architectural patterns: clear separation of concerns, modular structure, and maintainable code organization

AI

Include an AI capability that improves the communication experience. You may stub or simulate model responses if needed.

Examples: auto-reply, missed call -> AI realtime fallback, AI-generated conversation summaries.

Scope

Some aspects of the product are intentionally unspecified. You should decide what "calling" means in this product, how realistic messaging should be, how AI fits into the UX, what to fully implement vs mock, and where to spend your 6 hours.

Explain those decisions in the README.

README

The README must achieve two things: setup and help us understand your reasoning. Your README must be entirely human written. If your README is AI generated, I will be very angry.

Should include:

  • Setup instructions
  • Tradeoffs
  • Stubs / Unhandled Edge Cases (what's known incomplete)
  • Key decisions

Should not include:

  • File structure or location
  • BS/Fluff

How to Submit

This is a template repository. Create a new private repository from this template:

  1. Click "Use this template" → "Create a new repository"
  2. Make the repository private
  3. Clone your new repository locally
  4. Complete the assignment in your repository
  5. Once done, share the repository with @jakezegil, @danielgavidia, @SamuelRCrider

Your submission should include:

  • the React Native project
  • a README.md (entirely human written)
  • setup instructions in the README
  • a short video (I recommend Loom) of you walking through your repository in your preferred IDE

The Video

  • The video (<5m) should be you sharing your code and include the following:
    • an architectural overview
    • a walk through of your data models
    • a brief explanation of each part of your codebase/how it works / why it's necessary
    • as you walk through, emphasizing what you would change in a production codebase shared with a team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors