Building a Bank with Go [video]
infoq.com
infoq.com
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.
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.
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?
https://monzo.com/blog/2016/09/19/building-a-modern-bank-bac...
I just wanna add that I think it's beyond cool that there's a bank out there that's publishing a dev blog and detailing their tech stack.
It works on both here (FFDE and Chrome 58).
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.
I use it a lot for my work (Linux & Mac OSX) and personally at home too (Win10). I am not in any way connected to VS Code or MS, but I think it is a really good editor both for Go, but also for all of the other stuff it supports.
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! :-)
I'll still checkout https://gobyexample.com/ - thanks for the link!
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)
I've been doing full time C# for almost 2 years now, and while I enjoy it one of my biggest fears is getting stuck into only knowing one technology/stack.
I don't have a professional need for using Go currently, but I've always had an interest in learning new languages.
Aside from those aspects - the people who implemented and worked on Go (Rob Pike and Ken Thompson in particular) I find very interesting.
Go is an extremely practical language, maybe too practical, almost like C#. I'd rather look at something which takes a different approach, something which includes programming language research from the 90s, at least :)
My goal was/is to find something to work on in my spare time using a new language. Just to keep learning as well as broaden my horizons :)
It's usually less rails oriented than C#, so you will figure out a lot of stuff for yourself, but in general it's quite boring (i like that). If you're interested in something interesting, i am in love with Rust, and definitely recommend it.
I don't personally use it these days, as i am not sure i want to invest in the tradeoff of safety vs prototyping speed. However i definitely recommend it as a cool language.
That's the biggest hurdle I've been trying to overcome currently with learning Go (or any new language). Other than re-writing small problems, but that isn't terribly exciting.
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?
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 :)
I was thinking something along these lines too. Would love to know what they used and the justifications behind their decision.