4 ms·
I'm shocked, in the first paragraph they assert that they handle 6 million lines of code. Is it common for the fintech industry to have codebases of that magnit
by liendolucas 3y ago
I'm shocked, in the first paragraph they assert that they handle 6 million lines of code. Is it common for the fintech industry to have codebases of that magnitude? I'm aware that for example OSes and browsers can achieve similar sizes (if I'm not wrong certainly more) but I'd have never thought that a fintech company could approach such size. It just seems way too much...
Edit: Question out of ignorance for people that regularly program in Haskell in the industry: I want to believe that the language has nothing to do with this and is just their business logic, right?
- great_wubwub 3y agoI don't know about Standard Chartered specifically, but I remember one of the big US banks (I forget which one. JPMC or Goldman Sachs, probably - it was a while ago) telling us that they had more developers than Microsoft. Don't sleep on these finance companies, they're big development shops.
- postexitus 3y agoJamie Dimon said that they have enough engineers to build their own Windows, back in 2007/2008.
- mhh__ 3y ago6 million is easy, in fact its probably a small-ish fraction of their total code as a firm. Especially for a bank where their processes are a bit more defined than (say) a hedge fund. What do you think fintech companies do? (I'm not entirely sure either but I can potentially give a flavour of finance coding in general) If you want to come up with prices for things then you'll need a bunch of mathematical optimization code, interpolation code etc, then an enormous chunk of market conventions (Quick! How do you calculate the yield to maturity for a Brazilian treasury bill). Having established this you will then need to build a system for getting market data to the right places to be used - and probably snapping data for historical record too. This could be as simple as drinking from the Bloomberg firehose, or reading from an SFTP server in the morning (no really), or pulling in trading data from an exchange (https://www.eurex.com/ex-en/data/trading-files/efpi https://www.eurex.com/ex-en/data/trading-files/efpi for example). It all gets very messy. And now, if you are a bank rather than merely a player in a market you also probably have your fingers in many fiddly boring pies too (e.g. retail banking, mortgages stuff like that).
- Agingcoder 3y agoThat’s a fairly accurate overview. If you’re a bank, there is also code to handle market parameters/fits, software to handle positions/booking, exotic payoffs ( and the accompanying compiler to compile the dsl ), regulation, GUIs and custom tools for trading/sales, risks, etc. 6 million sloc is indeed a fraction of what you’ll find in an investment bank. It’s also (I think) what makes it very interesting: an IB is a huge software system, with a mixture of extremely legacy (30y) and bleeding edge tech, and very strange human made rules.
- dybber 3y ago6 million lines of Haskell. A language known for the ease of creating domain specific languages and thus writing the business logic declaratively. You would assume that is what is also done in Standard Chartered. 6 million lines of Haskell maintained by around 40-50 engineers. Sounds like a lot of tech debt in the making. Maybe the 6 million lines includes their fork of GHC?
- nequo 3y agoPerhaps it also includes (quasi) dead code that is not used anymore because regulations changed, and code for one-off analyses and experimentation?
- Agingcoder 3y ago40-50 people is tiny indeed, but Haskell is supposed to help quite a bit here. 6 million lines of c++ and 50 people could be very hard. I’ve seen 4 million sloc of c++ and 80 eng, and it is hard. Investment banks are extremely complex systems - 6 millions sloc, even in a very expressive language, make sense to me. What’s harder to grasp is the real complexity of an IB - it took me years to get that. 30 years of random, non homogeneous software evolution, coupled with 30 years of funky human made rules in 200 countries. It’s going to be big and messy! And I really wish it were easier. To some extent, it’s a bit like Unicode, or font rendering, or the tax code : on paper it’s just a bunch of rules, but for real, it’s big and complex.
- mrkeen 3y agoYes it's hard to imagine what all that code's doing. But I'm currently at a very small fintech, and I've got about half a million lines of code checked out. There is a lot of copy-pasted code, but I also have nowhere near all the repositories checked out.
- twic 3y agoI work on a trading desk at a financial firm. I just checked out all our applications, and they total 388444 non-comment lines of Java, 73889 of JavaScript, 13619 of Python, 9160 of C++, and some other things. The JS probably includes some vendored libraries. Also, this is just apps - we have a bunch of libraries used across our apps which will add tens or low hundreds of thousands more lines, but i have no systematic way to check them out, so i can't tell. That's a single trading desk!
- game_the0ry 3y ago> I'm shocked, in the first paragraph they assert that they handle 6 million lines of code. I work at a bank. To answer your question - yes. The consumer website for the bank I work at was 9 million lines of code (at least as of 2019). A lot of it was bad code, some of it was dead code that was never deleted.