
Building a Bank with Go [video] - asherwood
https://www.infoq.com/presentations/bank-go
======
micah_chatt
I had to click around to find the video, but here it is:
[https://www.infoq.com/presentations/bank-
go](https://www.infoq.com/presentations/bank-go)

~~~
lprd
Thanks!

------
danesparza
Great presentation on use of Go to build large distributed apps. Good open
source tech developed there (see
[https://github.com/monzo](https://github.com/monzo)). Also -- They appear to
be hiring (located in the UK):
[https://boards.greenhouse.io/monzo](https://boards.greenhouse.io/monzo)

------
johnmarcus
i wish my company was using Go for it's SOA instead of node.js. so much less
overhead to run that neatly compiled binary than the dependency hell which is
node.js. probably because node.js is hardly a language and almost every basic
function needs to be imported from some third party, which also feels not so
safe, as a sys admin. go is also easy to use.

~~~
LunaSea
At least Node.js has a built in package manager and not Github link hell like
Go.

~~~
bpicolo
npm isn't a built-in package manager. It's commonly packaged alongside node,
sure.

~~~
LunaSea
It's separate to the language but there is actually an NPM version inside the
Node.js repository if you build from source.

------
mattheath
Hi, author here. Happy to answer any questions!

~~~
dmix
For some reason [https://monzo.com/](https://monzo.com/) crashes in both
Chrome and Firefox before the pages loads on my linux desktop machine. Never
seen anything like that before...

~~~
noir_lord
Both browsers is unusual (I have the occasional Firefox crash sometimes though
not on Mondo and not for a while).

It works on both here (FFDE and Chrome 58).

------
rubatuga
A bit off topic, but I'm delighted by the live updating of the slides below
the video. This is something all conferences should be copying.

~~~
pronoiac
I play AV Geek sometimes; I think I first saw Defcon do this, only within the
video. I've been trying this out, partially for laziness; it's much quicker to
edit the video if you don't have to transition from the speaker to the slides.

------
londev
I met a couple of their team at Golang UK last year, some great tech
leadership there by the sounds of things.

------
alisson
I always dream of something that would make easier for foreigners to open an
US bank account, I now people that went to the US as tourist and could open an
account there, but there's no way to do that via internet without actually
visiting a branch in person. Don't seems to be so difficult is it? Seems very
much its just a internal political thing.

------
kzisme
Can anyone recommend Go learning resources for someone coming from a c#
background?

~~~
geodel
I'd say tour.golang.org is quite good. But the most important thing I feel for
C# devs is to know that there is no Visual Studio like fancy IDE for Go.

People may be debate merits/demerits of this situation with valid arguments.
However if you are in everything IDE camp Go might just not suit you.

~~~
kzisme
Which editor do you prefer?

~~~
geodel
I use VIM or Sublime with Go plugin.

~~~
kzisme
Any specific VIM plugins for Go you can suggest?

~~~
geodel
[https://github.com/fatih/vim-go](https://github.com/fatih/vim-go)

------
shiv86
Any reason why you went then Kubernets as opposed to Docker Swam ?

------
lykron
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.

~~~
obeattie
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 :)

~~~
runevault
So is all the math just in cents and then you display it with the decimal if a
user needs to see it?

~~~
tclancy
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.

~~~
oblio
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...](https://msdn.microsoft.com/en-
us/library/system.numerics.biginteger\(v=vs.110\).aspx), 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 :)

~~~
53475
> My money's on BigIntegers: [https://msdn.microsoft.com/en-
> us/library/system.numerics.big...](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.

