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.
Then they claimed my evidence was incorrect, without any opportunity to correct.
And finally in their complaint system they completely refused to look at any of the evidence and sent me a generic refusal letter that referred to me by the wrong name.
All this despite other banks successfully handling chargebacks for the thing in question. Sad.
Row level locking and update indeed works, most of the time - bugs are a real issue.
som write ledger and update row in the same transaction.
then in bg have a batch ledger verification, probably on a read replica, and flag any discrepancy.
You might be assuming that there is only one database, and that all consumers are reliably connected it. So who owns the database: Visa or MasterCard? Because ACID doesn't span across database instances (let alone database vendors or companies).
If you write down that "Bob withdrew $20", that cannot be wrong, (at best it can lack info that you later wish you had).
If you write down "Bob's balance is now $10", you already know the problems with that from your question.
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?
Who owns the database in your locked example?
How would a ledger work without having some kind of lock, how would you prevent a negative balance?
When someone checks their balance, would you to retrieve every transaction from the ledger and calculate the current balance?
You can also let an overdraft occur. Now the user ows the bank some money and you can charge them interest for their debt.
Hey, not only he didn't believe in appending to a ledger but moreover he probably believed it was fine to store the amounts in floats (I know, I know, everybody who's using floats never make any mistake, knows everything about rounding rules, has read and could write by heart "What every computer programmer should know about floating-point numbers" etc. But I'm still not using floats for monetary amounts).
I have all the patience and time in the world to discuss my ideas.
I had the problems, the solutions, slide decks and a Miro board ready to go.
He wanted to shut down discussion at every turn with nonsense like "so you think no banks work at all?". Sure, I can grin and eat shit, or I can say "banks predate your CRUD operations by just a little bit".
If he had working knowledge on how to represent mutable money amounts in a distributed environment, he didn't let on. I was all ears.
So I pushed back on him, and I'll push back on you:
> even if you were technically correct why would a company hire someone...
Because I'm technically correct.
You're certainly not alone in your appraisal of the situation. The market over here works exactly this way. Correct, reliable systems come a distant second to agreeing with the team.
Technical discussions are incredibly likely to devolve into people discussions.
No people discussion has ever worked it's way back into being about fixing the broken software.
If anything, you dodged a bullet from a potential job where nothing gets done correctly.
Interviews are a gamble. If he interviewer has a specific framework in mind - no matter how correct or incorrect it is - good luck hitting the right spots.
i stand by what i said here down-votes be damned; judging by our brief interaction and your telling anecdote you come across as a smug disagreeable know-it-all and in their position i wouldn't have hired you -- there is after all the option to hire someone who both knows their stuff and doesn't come across the way you do
Oh Revolut's down are they? Let me tell you about an interview I did with them. Blah blah blah. Yeah, no thanks.
This is why I wrote:
Technical discussions are incredibly likely to devolve into people discussions.
No people discussion has ever worked it's way back into being about fixing the broken software.
I'm perfectly happy, if things get out of hand, for someone to take me aside and say "you were a bit of a cunt back there mrkeen." We're all human. As long as we actually get fix the code or resolve the intellectual side of the argument too.I wouldn't dream of calling someone a smug disagreeable know-it-all.
I'm here for any discussion of the tradeoffs of balance v ledger, though.
Sadly there is an increasing preponderance on the part of retailers to do one of two things:
1. Go card only (sadly happening in far too many places)
2. Make it incredibly difficult to pay by cash (e.g. 10 card tills, 1 cash till with long queues because it is also the cigarette/lottery ticket/package collection till)
The only people remaining who will almost kiss you for offering cash instead of card are taxi drivers.I'm also pretty sure it's illegal to pay cash for anything above 1000 €.
I'm curious how this legislation will end up, because the reason to push for cashless is that you should think of the children^Wterrorists. And much of this push comes from the EU itself (see chatcontrol).
The plans for harmonization are to have a limit of 10000 €.
> the EU itself
“The EU itself” isn’t a singular mind, it’s a forum with many participants and positions. In the end there needs to be a majority in the Parliament.
Contactless is all fine and dandy but straight out refusal to handle cash is a big negative for the users, which is the only perspective anybody cares about. On top of obvious long term massive loss for society and personal freedom. Don't feed the actors that are harming you / us.
This is why the apparently extortionate merchant fees. Precisely so that when you do swipe it always works no matter what. I genuinely cannot recall a single instance where I was unable to obtain payment auth in a grocery store using Visa or Amex.
No redundancy redundancy?
No redundancy redundancy?
No redundancy redundancy?
No redundancy redundancy?
Revolut is the biggest private company in all of Europe.
Perhaps it’s me but I still find it kinda wild that a single power outage in London can shut down Google DC and it can lead to Revolut shutting down for some time disrupting much of the economy which depended upon it
Perhaps this could’ve been prevented, which makes me wonder how much of code written at Revolut is ai generated and its ai policy?
As in not publicly traded? That's surprising, to be honest. How is that even measured?
But, yeah, certainly not by revenue, income, assets, number of employees, or any of the other metrics you might use for a private company.
https://www.theregister.com/paas-and-iaas/2026/10/20/google-...
Google cloud outage takes down HSBC, Revolut, Bank of Scotland, Lloyds, Equifax, more
Take with appropriate seasoning, given its anecdotal nature.
No need to wait for a bank and it doesn't matter the blockchain, as long as it supports USDC and you have a crypto wallet, the payment goes through.
Stripe knows this already and crypto payments will be here for a very very long time as they already are today.
So, approximately six 0s of uptime for my use case?
I didn't say bitcoin. I said blockchains that use USDC.
> So, approximately six 0s of uptime for my use case?
No-one cares if 1 person (out of 8 billion and trillions of bots) won't use it. It exists and Shopify and Stripe have crypto payments with USDC which is useful for both humans and agents.
the point was about physical flesh-to-flesh shopping experiences.
If they have a POS Terminal at their physical brick and mortar store powered by Shopify, they can do just that [0] and it accepts crypto payments.
The same for Stripe Terminal which allows contactless payments with stablecoins such as USDC [0] for physical stores. They can accept crypto from there and Stripe handles the transaction seamlessly.
[0] https://www.shopify.com/uk/pos
[1] https://www.privy.io/blog/contactless-payments-with-stableco...
Revolut, for example, has confirmed all its operations, that include, sign-ups, sign-ins, payments and transfers, top-ups, ATM withdrawals, stock trades, cryptocurrency, are all down.
https://www.neowin.net/news/google-cloud-outage-takes-down-h...which makes sense, you'd either end up paying in pegged, virtual crypto dollars, or pay with a completely separate crypto currency which then means that the shoes you bought a month ago are suddenly worth a magnitude more or less. might as well pay in turkish lira.
[0]https://www.six-group.com/en/home.html [1]https://en.wikipedia.org/wiki/SumUp
Like can you pay with crypto at a Stripe POS when the infrastructure goes down? Or was this just completely irrelevant?
2. This is Europe, we don't use USD directly or indirectly-via-backed-crypto for daily shopping.
3. Crypto comes in two layers: layer 1 which is too slow to replace interbank exchanges (which is much easier than everyone in Spain paying rent, which is much easier than everyone in Berlin buying lunch); and layer 2 which, as per memes about tech guys reinventing things which already exist, is reinventing the concept of a bank which is the thing here which fell over because the cloud it was on got unplugged.
If you were following Stripe for years, you would know that they are already using crypto for payments and it is here to stay.
$100B value down the drain.