https://github.com/streamlabs/mobile-assignment
https://github.com/streamlabs/mobile-assignment
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/streamlabs/mobile-assignment
- Owner: streamlabs
- Created: 2021-04-12T22:37:14.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-09T16:39:25.000Z (about 5 years ago)
- Last Synced: 2026-02-05T01:55:55.972Z (4 months ago)
- Size: 155 KB
- Stars: 0
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Streamlabs Mobile App Assignment
## Introduction
Hi there! We are happy you are interested in joining the mobile engineering team here at Streamlabs. We are on a mission of building tools to help content creators around the world grow, and we are excited to have you on board.
We believe it is important that our assessment of your skills matches the technical challenges you will face as an engineer at the company. Please carve out approximately 2-3 hours for this assignment.
## Objective
The main goal of this assignment is to build a simple demo application that contains two screens: video feed and user profile.
Video feed shows a full screen video that is loaded from a url.
* Users can swipe up and down to navigate through the feed vertically.
* Implementing a video cache is not required.
* You should parse `videos.json` that has a list of the videos that the user can scroll through.
User profile shows basic information about the user: profile picture, user name etc.
* Please find an example user profile UI in `user_photo.png`.
* You should parse `user.json` to retrieve mock data for the user profile.
## Recommendations
* Preferred language for iOS: Swift
* Preferred language for Android: Kotlin
* Preferred architecture: Anything except MVC
* Please architecture as you would a production app
* Using third-party libraries is allowed
## Result
* Demo app
* Readme file with key decisions that were made during the creation of the demo app
* System design choices
* Anything else you find important
## What we are looking for
While the hard requirements of this assignment are somewhat basic, we are looking for assignments that display a deep understanding of programming language and an ability to write clean and scalable code. The infrastructure should be easily able to potentially handle future feature requirements such as the following:
* Video caching
* Uploading new videos
* Editing user profile
* Interacting with videos: like, share, comment etc.
* Drag-to-refresh
The 2-3 hours time requirement is not a hard stop, and was determined with an assumption of previous basic knowledge of core concepts utilized.
## Documentation & Thought Process
Please take some time to briefly answer the following questions at the end of your submission
- How long did it take you to complete this assignment?
- What about this assignment did you find most challenging?
- What about this assignment did you find unclear?
- What challenges did you face that you did not expect?
- Do you feel like this assignment has an appropriate level of difficulty?
## Questions
Please email us if you have any questions along the way. We will try our best to help guide you through any confusions. Feel free to make assumptions and document them as you go as well.
## Submission
Please submit your completed assignment via email to the recruiter who sent it to you. You can submit your assignment as a zip file attachment, or you can push it to a GitHub repository and include a link to the respository. We want to thank you again for your time and for your interest in joing the engineering team at Streamlabs!