getyourguide / se-tech-challenge

Technical challenge for candidates applying to a Software Engineer position

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Objective

Key Points

  • We want to assess your skills as a generalist software engineer.
  • We are looking for people who are able to work on a variety of projects and technologies.
  • We are not explicitly looking for expertise in a specific technology or domain. An ideal candidate would be able to work with a variety of technologies.

We would like you to build a web application that allows users to search for activities. The project is meant to be a simple application that you can build in a few hours. We are not looking for a production-ready application but we will assess your project both in terms of quality(use of best practises/robust architecture) and potential(scalability).

In this repository you will find a list of activities that you can use to build your application (please find the file activities.json in the resources folder).

We bootstrapped in advance 2 skeleton applications for the back end and the front end: you will find a skeleton SpringBoot backend application and a VueJS frontend application. You can use them to speed up the implementation, or you can start from scratch choosing the technologies you are most familiar with, or you think most appropriate to fulfill the requirements.

Requirements

  • You need to provide a backend application meant to expose an API (REST or GraphQL).
  • You need to provide a client application consuming the API exposed by the previous application and implement a UI.
  • The client should display the list of activities to the user and allow the user to search for activities by title by providing an input field.
    • The fields to be displayed are:
      • title
      • price with currency
      • location
      • rating
      • whether it has a special offer or not
      • the activity's supplier name
  • You need to decide if the filtering logic should be implemented on the client or on the server.
  • Please add instructions on how to run locally your project and notes on your architectural choices.

How to submit your work

Please fork this repository and send us a link to your forked repository or a zip file containing your work. We will grade your project after submission and eventually invite you for a remote live interview with our engineers.

⚠️ Make sure not to publish your work on a public repository.

Presentation

  • We will ask you to present your work. Please be prepared to present your work, demo it, and explain your choices.
  • We will ask clarifying questions about your code and your design choices.
  • In addition to the presentation we will ask you to refactor the code, add addional features, or fix bugs: please be prepared to share your screen during the interview and to code live with us.

About

Technical challenge for candidates applying to a Software Engineer position


Languages

Language:Java 37.5%Language:Vue 18.9%Language:HTML 17.1%Language:SCSS 8.9%Language:Dockerfile 6.8%Language:CSS 4.4%Language:JavaScript 3.3%Language:TypeScript 3.1%