Skip to content

Latest commit

 

History

History
22 lines (19 loc) · 1.05 KB

README.md

File metadata and controls

22 lines (19 loc) · 1.05 KB

Task: ATM machine

Introduction

Let's imagine you start working as backend engineer in the bank called "BANK". Your manager assigns you to project to develop ATM managing service. Interviewer is your team-mate, who is already working on the project for quite a while. He knows well business part of the work and can advise you on technical solutions. Therefore, feel free to communicate with him and ask for help.

Description

Business wants card balance display feature. ATM managing service has already all integration with hardware components and bank remote-service. So, you need to implement only business logic of showing card balance, with following criteria:

  • User cannot see balance without verifying access (PIN validation);
  • User cannot see balance if card blocked;
  • If PIN wrong, user should know how many attempts are left;

Tech requirements

  • Kotlin/Java language;
  • Cover your code with unit tests;
  • Consider if some components or parts of the system can go wrong;
  • Think about which part of the code could be reusable in further development;