Skip to content

Instantly share code, notes, and snippets.

@thinkt4nk
Forked from travistruett/ambition-interview-project.md
Last active November 9, 2021 17:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thinkt4nk/fd3a0b343099fa0051eddb21f47e2214 to your computer and use it in GitHub Desktop.
Save thinkt4nk/fd3a0b343099fa0051eddb21f47e2214 to your computer and use it in GitHub Desktop.
Ambition Interview Project for Full-Stack Engineer

interview-project

Thank you in advance for taking the time to work through this project. The purpose of this project is to showcase your creativity and skill. Once completed, we'll be able to talk through this project in review as a way to better understand the way you think through problems.

One additional thing to note... we have a high bar and need to learn through this process that you are a great engineer, problem-solver, and communicator. With that said, it's your right and perogative to know what you're getting as well. Please don't hesitate to ask questions and challenge us as to how Ambition is the best place for you to further your career while maintaining a great work/life balance.

Ambition Technology Stack

Have any questions, opinions, stories with anything listed below? Let us know!

  • AWS
  • Postgres
  • Python
    • Django
    • Django Rest Framework
  • Javascript
    • React
    • Highcharts
  • Celery
  • Redis
  • Salt

Ambition Synopsis

We help companies increase employee productivity with data-driven transparency, accountability, motivation, recogntion, and development. Practically speaking... we process data into metrics that are then turned into leaderboards, scorecards, goals, competitions, tvs, and coaching plans.

One of our biggest challenges, and the foundation of this project, is the handling of data. Our customers generate a lot of messy information and expect us to turn it into actionable insights, in real-time. Quite frankly, we need people who have a lot of top-to-bottom experience in this space because we're starting to run up against the limits of our expertise.

So, please keep that in-mind as you work on this project and communicate to us why you're our next hire :)

Interview Project

Create a Github repository and complete the requirements listed below. Once completed, email a link to the project to our hiring team

Requirements

  • Retrieve data from third-party source using an API. It's ok for this to be performed via manual process.
  • Store raw data within one model and then normalized/processed data within separate model with relationship between the two. Processing scope is at your discretion and can be trivial. For example, Ambition turns {user: "travis.truett@ambition.com", date: 1582130926, type: "call", duration: 122} into Travis Truett, 1 Call, 2 Minute Duration, February 19th, 2020.
  • Serialize data to be displayed on website upon button click, via AJAX request.
  • Write backend test to verify that your API endpoint is returning the correct data.

Recommendations

  • If you're struggling to find a data source to use check out the Star Wars API (https://swapi.dev/).
  • Ask us lots of questions, there's no such thing as a complete/perfect spec!

What We're Looking For

  • Are you getting/saving data in a performant way that minimizes hits to the database?
  • Does your schema correlate to the data that you're storing? Are you indexing appropriately?
  • Is your test adequately asserting that inputs are generating the desired outputs?
  • Does it appear that you're capable/comfortable writing readable, maintainable, performant code?
  • Maintainability (DRY, readability, modularity, etc)
  • Ability to talk about the decisions that were made along the way
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment