Fintech job nightmares: Engineers share coding errors
When taking a high profile engineering job at a fintech (or starting your own), the pressure is on to perform. Sooner or later, mistakes will be made, however. On a forum from startup accelerator YCombinator, a group of engineers in the fintech space have shared invaluable experience of their previous errors, giving a comprehensive look at what not to do. Among all of them, two pieces of advice stood out the most.
Don't use floating point types.
Binary and decimal points do not mix well. Unlucky for you, working in fintech means dealing with money, and that means lots of decimals.
Using floating point types fractionalizes a larger number into individual integers and in doing so rounds them up. When dealing with small amounts of money this might be acceptable, but as the fintech grows you will need to completely overhaul your code base or risk making your product defunct.
So what is the alternative? One engineer says, "if your language does not have a dedicated type for monetary amounts, or one cannot be trivially built, then you should ask yourself if it is really a suitable language for financial tasks." Another gives an example of how their programming language, Haskell, has a predetermined process for storing monetary information.
In the same vein, another engineer says, "never record an amount without its currency."
Synchronize your time
Whether your team is global or not, working in finance means dealing with markets operating worldwide. Whether you're enabling money transfers from one country to another or building a brokerage platform, being a few seconds out could cause havoc.
As regulation tightens in industries like BNPL and crypto, ensuring any and all processes are accurately timestamped is vital to the efforts of the FinCrime and compliance team.
Joran Greef, CEO of accounting infrastructure fintech Tiger Beetle, said "unsynchronized clocks and far-future timestamps can in turn lead to money being locked up in 2PC payment protocols."
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org in the first instance.
Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)