Market Group Careers

Introduction

Hey there :)

Objective

You are a software engineer for advertising technology company Market Group. A fellow software engineer just implemented a new feature on our Bidder Management Dashboard and you are given the task of reviewing their code before releasing it to production.

Notes:

Context

Market Group is a mobile ad exchange, which on the demand side is connected to 3rd-party companies called Demand Side Platforms (DSP) and on the supply side is connected to mobile app developers. For this assignment we’ll focus only on the demand side.

Each DSP can have one or more bidders connected to our exchange. You do not need to worry about the specifics of how DSPs and their bidders work.

exchange-diagram

What does the codebase your colleague implemented do?

The code you are about to review is adding a new feature on our Bidder Management dashboard, which provides tools for our DSPs to manage their bidders. In this particular feature a new functionality is added so that users can view a list of their bidders.

The exact business requirements are summarized below.

  1. When a user visits the /bidders page, then it should display the bidders split in different columns depending on their state, given that the client loaded the bidders successfully.
  2. When a user visits the /bidders page, then it should display an error message given that the client failed to load the bidders.

Notes:

Tasks

The assignment consists of 2 tasks.

Task Objective Expected Completion Time
Task 1: Review the code and add any feedback/comments/suggestions you may have ~30 minutes
Task 2: Implement your suggested improvements and implement end-to-end test cases to check that the business requirements are satisfied ~2 hours

Timing assumptions

The time estimates for the tasks above assume that you are familiar or have professional experience with testing techniques and building basic web apps.

Task 1

Review the code carefully and add any feedback/comments/suggestions you may have.

Please feel free to suggest anything you think that can be improved. There is no limitation on what you can suggest so add your comments freely. Please do not forget to explain your reasoning behind your suggestions.

Where can I find the code to be reviewed?

  1. You should have received a Github classroom link which will give you access to the repo to be reviewed. If you didn’t then please click on your language of choice below:
  2. When you accept the assignment a new repo will be created which is the one you will be working on. You have admin rights so you can do anything you want. This repo contains a branch called feat/view-bidders which contains the code that you will review.
  3. Click on the Pull Request tab and create a new Pull Request with base branch master and source branch feat/view-bidders. Use this Pull Request ONLY to add your code review comments. If you are not familiar with Github’s pull requests please check out this link to find out more.
  4. Add your review comments in that Pull Request.

How do I submit my code review comments?

Please use Github’s code review tool to submit your code review comments. It’s super easy to use but if you are not familiar with this tool please check out this link to find out more.

Task 2

Implement your suggested improvements and end-to-end test cases to check that the business requirements are satisfied.

Important note

The Bidder Management API url used in the original code does not work since this is a hypothetical scenario. However, you can assume that this is the valid url we want to use in production. In your tests you should try to mock that endpoint as you would do in any case.

Please do not use the mock url which is auto-generated by the Apiary documentation.

Styleguide

If you need to implement styling please use the CSS styling already implemented in Market Group’s styleguide.

Deliverables

At the end you should have TWO separate Pull Requests:

  1. The original Pull Request which contains your review comments.
  2. The new Pull Request that contains your changes. Feel free to add any interesting approaches or important points in the PR’s description.