top | item 14105940

Building a Bank with Go [video]

131 points| asherwood | 9 years ago |infoq.com

64 comments

order

johnmarcus|9 years ago

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.

masom|9 years ago

> almost every basic function needs to be imported from some third party, which also feels not so safe, as a sys admin

Go (and most languages) also supports importing a lot of packages from third-parties. Just pin your dependencies to specific known versions and do hash verifications.

LunaSea|9 years ago

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

Bombthecat|9 years ago

There is no soap library in go.

Or at least it is so basic, that it is useless (at leat I couldn't find any)

If you are a bank (or any old firm) . You need soap.

A lot.

mattheath|9 years ago

Hi, author here. Happy to answer any questions!

HighlandSpring|9 years ago

Monzo sounds like a really fun bank to work!

I suspect the technological baggage in finance to be one of the main deterrents for young developers, the people who want to engineer modern, elegant systems and not go into the business of maintaining legacy spaghetti. I imagine you guys are attracting some really high end talent.

My questions are a little more about Monzo as a workplace in general as I will be applying for an internship with you guys.

Is there any Scala in your infrastructure? If not, was it a language that was given much consideration earlier on?

I see Kafka as part of your stack. Are stream processing frameworks like Samza, Spark and Flink found in your infrastructure?

How many developers? What would you estimate the backend/frontend split to be at?

lifty|9 years ago

Hi there, I scrolled through the video and also read the blog post describing your stack and couldn't find anything about your data modeling and persistence layer. To me that is the most interesting part since you are a bank but at the same time you are using a micro service based architecture. Is there any information available about what database you use and how you manage your data?

jucoo|9 years ago

Thanks for the talk Matt. Lots of really good detail there. Working with both Go/Java and Microservices. One question I have is how critical is linkerd to having a dependable microservice mesh? Another question is what did you use for async services?

dmix|9 years ago

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

rubatuga|9 years ago

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|9 years ago

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.

walterbell|9 years ago

Is that done with PPT/PDF conversion to images? Are there tools to help generate time codes for slide transitions?

londev|9 years ago

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

alisson|9 years ago

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|9 years ago

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

oblio|9 years ago

Not that I'm against learning new languages, but your question piqued my interest.

Are you thinking about transitioning from C# to Go? If so, is it because you think the language is cool or is it because in your region there are more/better paying Go jobs?

I ask this because I can't really imagine someone transitioning from C# to Go, especially these days that dotnet core is available. Hell, I'd first try to transition to F# :)

(Yes, I know that these are loaded questions and that I'm biased against Go..., but I think the questions are valid even in these conditions)

geodel|9 years ago

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.

mattlondon|9 years ago

tour.golang.org is a good start to get familiar with the language's features. After that it is just worth picking a mini-project and getting cracking. The website https://gobyexample.com/ is a great place to see some simple, real-world examples once you start to actually try and do something.

There will be a lot that is familiar to a C#/Java dev, but also a lot of the stuff you might have got familiar with in C# is missing (famously generics are not there, but also other things like Linq etc has no native equivalent in go, although there are libraries that offer similar functionality).

Good luck! :-)

sAbakumoff|9 years ago

Golang is really, really easy to learn. And as always the key is practicing. Just pick up some medium size project and start building it. Stack overflow will help with the learning curve. This is how I learned to love Golang having 10+ years c# background​.

literallycancer|9 years ago

I was happy with the GOPL by Kernighan & Donovan, but I'm not a C# person, so I'm not sure what you want to skip/focus on?

shiv86|9 years ago

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

lykron|9 years ago

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.

amouat|9 years ago

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?

obeattie|9 years ago

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

chefandy|9 years ago

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