Thank you for applying for our pilot software engineer development program! This challenge will be the focus of the technical conversation we'll have during your interview. It consists of two parts:
Please clone this repo on your machine and make a branch named {yourname}-pilot-interview containing:
- Your application code
- An APP_README.md file detailing the key architectural and UX decisions you made (including language(s), frameworks, and paradigms you utilized/implemented and why) as well as instructions for running and using the app.
You'll be walking us through your code and running app during the technical part of your interview, so this will help you prepare. It's encouraged to start fleshing this out prior to even coding––we care first and foremost about your thoughtful approach, then clean and clear code, then a working app, then a fine looking UI.
Zomato has a public API that you can use to get restaurant information, including restaurant details, reviews, and menu information.
As an example, https://developers.zomato.com/api/v2.1/cuisines?city_id=280 returns a list of all cuisines that can be found in New York City restaurants.
The API requires you authenticate using a user_key
which you can instantly generate for free.
The task is to create an application that presents the data from at least two endpoints. For example, an app that lists all sushi restaurants in New York City (using the /search
endpoint), and upon clicking on a restaurant takes you to a detail page that includes its info and reviews (using the /reviews
endpoint).
You can create the application as either a web application or a mobile application in any of the following languages or platforms
- .NET (Full Framework or Core), PHP, Ruby, Python and/or JavaScript for web applications
- iOS, Android or Windows Mobile for mobile applications
Feel free to spend as much or as little time on the exercise as you like as long as the following requirements have been met.
- Please complete the user story below.
- Your code should compile and run in one step.
- Feel free to use whatever frameworks / libraries / packages you like.
- include tests
- implement a search/filter for users to narrow down the results your app returns
As a user running the application
I can view a list of restaurants
So that I know which restaurants are currently available
As a user running the application
I can view each restaurant listed individually
So that I can view details about the restaurant
Please include answers to the following questions in your APP_README.md
markdown file.
- How long did you spend on this technical challenge? What would you add to your solution if you had more time?
- What was the most useful feature that was added to the latest version of your chosen language? Please include a snippet of code that shows how you've used it.
- How would you track down a performance issue in production? Have you ever had to do this?
- How would you improve the Zomato API that you just used?
- Please describe yourself using JSON.
- The BuildNG team