Code Monkey home page Code Monkey logo

design-exercise's Introduction

Heroku Design Exercise

Overview

The design exercise is part of the Design Team interview process at Heroku. The intent of the exercise is to test creative thinking, product decision making, visual design talent and communication skills. Candidates are encouraged to spend 3 hours on this task. Candidates can work in whatever medium they feel best demonstrates their skills. We use Sketch internally but welcome HTML prototypes, Google Slides, Figma etc.

Below we have outlined a design brief for a hypothetical redesign of the Heroku Scheduler product. The scenario proposed is that you are working as a designer at Heroku and are being briefed for a small project.

Outline of exercise

  • ~3 hour homework task
  • 45 minutes presentation / discussion

The brief

Heroku Scheduler is a product that allows developers to execute jobs to a schedule; for example, I might want to run a database task (e.g. rake db:pull_latest) every 2 hours. Heroku Scheduler can be thought of as a more user friendly interface to cron.

The current release of the Scheduler UI displays jobs in a tabular layout. Through discussions with customers, the product manager for Scheduler has suggested that a designer explore a new concept for the user interface that better communicates the temporal nature of the scheduled jobs. The product manager has suggested the following issues with the current design:

  • Hard to differentiate very frequent jobs with those that run less frequently
  • No sense of whether previous tasks exited successfully or failed
  • Times for 'last run' and 'next due' could be relative to the user to help comprehension
  • Users would like to make jobs temporarily inactive without having to delete them entirely
  • Does not scale well for small width layouts

As well as a product manager, an engineering architect has also been briefed on the next iteration of work for Heroku Scheduler. They have been tasked with proposing the new API for Scheduler to support some of the requested features.

The architect has attached their working version of the new API to the resources section of this document so that it may help with the design process and for your feedback.

The team is looking forward to discussing your concepts.


Resources

Sketch template & fonts

Included in the /resources folder of this repo is a Sketch template with some basic elements picked from our design kit.

Screenshots of current Scheduler

API Proposal

// GET /scheduled-jobs

{
    "scheduledTasks": [
        {
            "job": "rake db:pull_updates",
            "frequency": "Every 2 hours",
            "nextDueAt": "August 2, 2019 2:01 AM UTC",
            "isActive": false, // Users can make jobs inactive
            "previousJobs": [{
                "job": "rake db:pull_updates",
                "runAt": "August 2, 2019 1:01 AM UTC",
                "exitCode": 0, // Successful. 1 if unsuccessful
            },...]
        }
        ...
    ],
    "user": {
        "currentUser": "[email protected]",
        "userTimezone": "BST"
    }
}

design-exercise's People

Contributors

almonk avatar itchymutt avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mgan59

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.