| ▲ | mrkeen 2 hours ago | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Interviewed for them this year. Got into a heated argument where the interviewer insisted it was perfectly acceptable to store money as a mutable row in a database. I pushed back with the standard "You append transactions (including corrections) to a ledger" but he wasn't convinced. I whipped out the standard two-ATMs -separated-by-a-distance overdraft example, and how you can create or destroy money that way. He said it made no sense as an example because it was buggy and you would never release buggy code. I asked if he'd done bug fixes before (yes) but obviously he was going to keep digging in further. The irony of it was that he was part of the blockchain team. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | sksksk 36 minutes ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I get you with needing a ledger, which most banks use. I'm assuming Revolut do as well, but this engineer wasn't aware. Or perhaps it was a different question they thought they were asking, or maybe a misunderstanding. But the two ATMs problem would be solved by securing a lock on the database before proceeding with the transaction? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | randunel an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I don't see the difference between a ledger (possibly with a unique sequence enforcement) which would take the balance to a negative number, and a mutable row in a relational database with optimistic locking (same unique sequence enforcing). Would you mind helping me out, how would a ledger work better to prevent a negative balance, given that the enforcement isn't specific to ledgers and can be used in relational DBs? After all, both can go to negative balance by applying atomic subtractions, and both can prevent writes with the wrong sequence. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | igravious 2 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
even if you were technically correct why would a company hire someone who demonstrates that they are unable to disagree in such a way that a heated argument does not ensue? i'd say they dodged a bullet. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||