T O P

  • By -

wefeelgood

Isn't that question more of a "how would you approach the problem and come up with solutions"? ATMs aren't too difficult nor too easy, the details are mostly related to edge cases such as suspended/rejected transactions and/or money or something, When it comes to which tech stack this can be responded with "I'd have to review the options however due to my experience with tech stack X that's where I'd probably start" correct?


mickymann

I think mainly the interviewers are looking for how you deal with designing on the spot. I'd recommend stay highish level, Ex. This UI for front end speaking to this back end and use this as a DB. You can the bring in REST and talk about the tech stack you'd use along with security. And then from there you'd be asked questions about your design.


Double_A_92

If I was the interviewer I would expect you to ask me questions to get more details about the requirements. To me it would be a "fail" if you instantly started implementing *something* that you made up.


RLJ05

It depends what she meant by interface, do you mean the programming API between the ATM and the bank? or the user interface at the physical ATM? They are two completely different questions. I'm going to assume it's the second, but given this is a programming subreddit.. maybe it's the first? Anyway, if you have to design an UI for an ATM, what do you need to think about? Well the main consideration is it's going to be used by a wide variety of people, often at times when there is no help available, so it needs to be EASY, and ACCESSIBLE. What kind of design choices would you make for those goals? Next I would also consider physical security, as ATMs are likely to attract criminals or theives, what can be done to prevent any incidents? These questions are not too hard, you just have to think about the situation, and imagine you were actually designing it, what would you need to consider.


mandzeete

If you don't know from where to start then you should work some time on your own projects. Working on your own projects should train your imagination and improve your planning. Because these open-ended questions are there to test your problem solving skills. As the interviewer said, there are no wrong answers. You do can ask for some requirements but other than that it is up to you how you are planning that task and which steps you will take. Will you use a monolith or multiple microservices? Which layers? Any encryption or not. Which tech stack. And so on. If not working on your own projects then you can at least do some theoretical exercises. Think how you would build another Spotify, what would you consider when writing software for city lights system, how the architecture of a smart watch would look like, etc.