News for hackers. Stuff that matters.
Re:Building a Bank with Go [video] by lykron on Thursday April 13, 2017 @09:58AM (#14106926)
He didn't talk much about this, but I find it very hard to believe that they were able to make their own deposit application and get it certified for use (unless the UK has vastly different banking regulations than the US). 32-bit/64-bit systems have small rounding errors that are show-stoppers for banking from what I've heard. There is a reason why COBOL and Big Iron rain supreme in Finance.
Re:Building a Bank with Go [video] by amouat on Thursday April 13, 2017 @10:04AM (#14106972)
Well they got a banking licence recently https://monzo.com/blog/2017/04/05/banking-licence/

I don't really understand why you pick on 32-bit/64-bit. I assume you wouldn't touch floating point with banking. What is it you think Cobol and big iron can do that Go and AWS can't?

Re:Building a Bank with Go [video] by obeattie on Thursday April 13, 2017 @10:11AM (#14107040)
I'm the Head of Engineering at Monzo. We don't use floating point at all in our core banking systems, which are all written in Go by our own engineering team :)
Re:Building a Bank with Go [video] by runevault on Thursday April 13, 2017 @10:19AM (#14107109)
So is all the math just in cents and then you display it with the decimal if a user needs to see it?
Re:Building a Bank with Go [video] by tclancy on Thursday April 13, 2017 @10:28AM (#14107210)
That is typically how you handle it (in my limited understanding). If you're going to make an error, let it be in the presentation layer and not the actual math.
Re:Building a Bank with Go [video] by oblio on Thursday April 13, 2017 @11:58AM (#14108107)
Warning: I don't program applications for finance. However... I'm not sure that representing things in cents works. Mostly because of exchange rates. These can have quite a bit of decimals and go beyond cent-precision.

My money's on BigIntegers: https://msdn.microsoft.com/en-us/library/system.numerics.big..., using some sort of subdivision of cents as the base unit (1/1000ths of cents?)

I'm probably horribly wrong and I hope someone who actually knows what he's saying corrects me :)

Re:Building a Bank with Go [video] by 53475 on Thursday April 13, 2017 @01:28PM (#14109070)
> My money's on BigIntegers: https://msdn.microsoft.com/en-us/library/system.numerics.big..., using some sort of subdivision of cents as the base unit (1/1000ths of cents?)

I was thinking something along these lines too. Would love to know what they used and the justifications behind their decision.

Re:Building a Bank with Go [video] by runevault on Thursday April 13, 2017 @10:47AM (#14107379)
I now wonder if that is what c# does under the hood for currency type which is a rather safe way of dealing with a limited number of decimal places for money. Hm.
Re:Building a Bank with Go [video] by obeattie on Thursday April 13, 2017 @10:43AM (#14107349)
Yep, that's exactly how it works.
Re:Building a Bank with Go [video] by 53475 on Thursday April 13, 2017 @12:41PM (#14108601)
Any chance you could go into detail on this regarding data types? How do you handle exchange rates & such that can be to more precision than 100ths of a $ or other currency for instance?
Re:Building a Bank with Go [video] by dharma1 on Friday April 14, 2017 @12:34PM (#14115406)
I don't know how it works under the hood but when I use Monzo for Euro payments the conversion is shown in cents - they probably round it and pocket the difference. But the actual rate is very good, interbank rates
Re:Building a Bank with Go [video] by chefandy on Thursday April 13, 2017 @10:19AM (#14107115)
Trying to be helpful and not a smug grammar nazi, so I hope it doesn't come across the wrong way: it's "reign supreme," not "rain supreme."