Apllying job is hard, even harder is to answer strange questions to interviees.
1. Tell me your top 3 favorite software development tools.
2. What differentiates a good software engineer from a great one?
3. Describe the process you follow when reviewing someone else's code in a code review.
4. Tell me about a difficult bug you were tasked with fixing in a large application. How did you find and resolve the issue?
1) Docker, I no longer need to think versions, installation, uninstallation, encapsulation.
Type in typescript, it helps to keep my mind cleaner than components of objects/arrays.
Git, I'm that old to remember when we just copy files over ftp without versioning.
2) Engineers make assumptions while designing system, if those assumptions are accurate they are good engineers, If good enginners are using a system, that system made by great engineers.
3) I assume that submitted code has passed tests and I have prior knowledge about changes.
I would check general structure, flow of code, which files changed/added.
I execute positive scenario, and negative paths.
while cheking the code, I would check for naming conventions, comments (if necessary)
4) In waset we changed dubai bank to turkish bank to process credit card payments, and after 2-3 weeks a client wrote that they cant pay with their card. It was strange because we have already processing so many payments that he should be the only one that has this problem, not our system. But I've dig through and found the root cause. Bank was rejecting because between turkish entities any commercial transaction should preeceed in Turkish liras (According to turkish money protection act). I needed to put an ugly "if" for customers from turkey, convert euros into try using central banks rates.