/backend-coding-test

A fairly simple coding test, aimed at backend-focused engineers.

Primary LanguageJavaScript

Goal

Produce a simple web-app backend to complement the supplied front-end code.

Mandatory Work

Fork this repository. Starting with the provided HTML, CSS, and JS, create a Java-based REST API that:

  1. Saves expenses as entered to a database.
  2. Retrieves them for display on the page.
  3. Add a new column to the table displaying the VAT amount for each expense.
  4. Alter the README to contain instructions on how to build and run your app.

VAT is the UK’s sales tax. It is 20% of the value of the expense, and is included in the amount entered by the user.

Give our account alchemytec access to your fork, and send us an email when you’re done. Feel free to ask questions if anything is unclear, confusing, or just plain missing.

Extra Credit

These are optional, but are a chance to show off useful skills you might have. If it's outside your experience, no stress.

  1. Provide a deployment mechanism/package for your app so we don't have to build it to run it. Docker, vagrant, or something else entirely?
  2. Style the app to get close to, or match the image optional_mockup.png.

Questions?

I don’t want my current employer to see this!

Bitbucket allows you to create a private fork for free. You’ll have to give our account - alchemytec - access to your fork so we can see it. No-one other than you and us will be able to see the fork. You can do the same with Github, but you’ll have to give them some money.

Why aren’t you using Pull Requests to review this?

Pull Requests back to public repos are public; not cool if you’re currently employed elsewhere. If you don’t mind our conversation being out in the open, feel free to open a PR.

What frameworks can I use?

That’s entirely up to you, as long as they’re OSS. We’ll ask you to explain the choices you’ve made.

What application servers can I use?

Anyone you like, as long as it’s available OSS. You’ll have to justify your decision. We use Tomcat internally.

What database should I use?

MySQL or PostgreSQL. We use MySQL in-house.

What will you be grading me on?

Elegance, robustness, understanding of the technologies you use, tests, security.

Will I have a chance to explain my choices?

Feel free to comment your code, or put explanations in a pull request within the repo. If we proceed to a phone interview, we’ll be asking questions about why you made the choices you made.

Why doesn’t the test include X?

Good question. Feel free to tell us how to make the test better. Or, you know, fork it and improve it!