Skip to content

Instantly share code, notes, and snippets.

@travistruett
Last active October 28, 2021 14:48
Show Gist options
  • Save travistruett/77f6e29649e018c13322d37cce3babf8 to your computer and use it in GitHub Desktop.
Save travistruett/77f6e29649e018c13322d37cce3babf8 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. Our goal here is a meaningful, real-world conversation around how you think and how you work. While we know it's unrealistic to know exactly what "we're getting" through this exercise... it's at the very least more insightful than whiteboard problems in regard to how we might work together.

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.

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?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment