frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Fintech Engineering Handbook

https://w.pitula.me/fintech-engineering-handbook/
102•signa11•2h ago

Comments

danielabinav160•1h ago
The idempotency keys section alone is worth the read most devs learn that lesson the hard way.
__natty__•1h ago
Also audit trails. Good audit trail can save company (and you) in emergency as well. Useful for debugging and last resort of compliance data source.
pards•1h ago
100%. It deserves more detail, too.

I've spent many hours explaining how idempotency is supposed to work, and why it's important. Most teams understand the need for it, but very few thought about it up front.

lxgr•17m ago
I just wish the financial industry itself had known about these when the core banking systems and financial communication protocols of the 60s and 70s were invented that are still being used to this day...

Many of these predate the widespread knowledge of idempotency, so often idempotency keys are hacked together by joining various, hopefully globally unique fields, except that they never quite are. (You can look behind the curtain sometimes, e.g. when your bank does not let you transfer the same amount to the same recipient account on the same calendar day.)

dc_giant•1h ago
Sorry have to ask these days. Is this carefully written down information from years of experience in the field or AI slop?
thewisenerd•1h ago
from the author's mastodon post [0]

    I just published Fintech Engineering Handbook distilled from 6 years of tears, sweat and swears. 
    It’s a free ~25-page resource with various hints and patterns around handling money. 
    Tell me what you think!
other than that, peruse the commits on the source [1], or wait for the author to respond.

[0]: https://mas.to/@krever/116814803588993437

[1]: https://github.com/Krever/fintech-engineering-handbook/commi...

jagged-chisel•1h ago
Appears that the author got some help organizing the document, but wrote it all themselves.
zipy124•1h ago
Whilst I wouldn't say anything in it requires years of experience to know, this would be helpful for someone who hasn't considered anything about monetary systems. It doesn't read like slop, but I could be wrong but even so it all seems fairly reasonable (I've only fully read about 50% before realising there's nothing new here for me, and then skimmed to rest).
manwithopinions•1h ago
lxgr•1h ago
Word of advice to anyone considering the "minor-units precision" strategy for representing monetary amounts: Don't (or at least, don't use it as an interchange/API data format).

It seems like a clever idea (fast integer math, no rounding problems for addition and subtraction), but it'll bite you incredibly hard if you ever stumble upon an edge case such as working with a partner that has a different implied number of digits for a given currency. This is especially relevant for stablecoins, which often have a different number of implied decimal digits than the "fiat" currency they represent.

Also, consider representing amounts as a string type in JSON-based APIs. JSON does not specify decimal precision, so you (and all your users/vendors) will always have to make sure your parser/serializer doesn't internally lose precision by going via floating point. This can get ugly fast, and while a string seems conceptually less neat, it completely bypasses that problem. (Some will call this an anti-pattern [1], but I'd rather not fight this particular battle for ideological purity on the shoulders of my users or shareholders.)

[1] https://blog.json-everything.net/posts/numbers-are-numbers-n...

gucci-on-fleek•1h ago
What do you recommend instead? Standard floating-point ("float"/"double"), fixed-point arithmetic with thousandths (or smaller) of the minor unit, arbitrary-precision decimal numbers, or something else entirely?
lxgr•1h ago
I think what matters most is your database and API representation, as well as having consistent and well-defined rounding rules.

I largely agree with TFA: Round explicitly and consistently whenever you cross a boundary, i.e. database persistence and internal API calls.

Use whatever works for your required business case internally (i.e. inside of procedures calculating some function of one or more input amounts). This can be regular old floats/doubles if you absolutely know what you're doing, or BigDecimal if you aren't and would rather suffer slightly slower performance than having to talk to an auditor about IEEE 754 rounding modes, or even minor-amount integers (yes, even though I just said to not use them – but you'll want to ABSOLUTELY NEVER leak them outside of your system, including your data/analytics pipeline, which might have different ideas about financial amounts than your business logic implementing a nice custom monetary type).

dapperdrake•1h ago
First half didn’t sound so bad.
ricardobayes•1h ago
Does anyone have more learning resources in this field? Any model implementations, pet projects, anything to get going?
cirrhosis•44m ago
I have just left a fintech company after 5 years and I can say after reading this, it looks legit to me (not AI slop as someone asked). These are the same sort of lessons I learned during my time in the industry.

I would recommend anyone starting in fintech to take some time to understand accounting principles and the ledger in a bit more depth than just debits vs credits - this is likely what is most unfamiliar to programmers.

Also financial software is very data-heavy and I learned more about databases in my time working in fintech than the 15 years before that. I think going into a bit more detail about even the basics (indexes) will save a lot of headaches.

sdevonoes•25m ago
> I would recommend anyone starting in fintech to take some time to understand accounting principles and the ledger in a bit more depth than just debits vs credits

Any good resources you would recommend to learn more about this?

benashford•40m ago
I think most of this applies to software engineering generally, not just fintech.

For example the parts talking of retries, idempotency, event ordering, etc. This applies to all systems that require any degree of accuracy, even if no money is directly involved. I've seen so many systems built on the assumption that "we can always retry", but you can only retry if you fail cleanly in the first place, and if the downstream system offers the same level of idempotency that you think it does. Quite often these are not put to the test.

charlieirish•39m ago
Similar style and message to https://shapeofthesystem.com/
xlii•22m ago
I glanced, and I found this handbook shallow and - in some areas - even bad advice.

E.g. If I ever see a monetary value stored in something else than integers I'm going to run away screaming (thank you Rust decimals represented as JSON floats). It's always integers unless you have a VERY good reason to do otherwise (though exported view can be in anything, even in weird bitcoded formats).

FX exchange. Resolution of FX isn't a point-in-time thing, things like buyer rate-in-time, seller rate-in-time, agreement, agreement tolerance, agreed upon resolution timestamp come in the effect.

Immutability - that's why you want to have event sourcing everywhere that touches money:

    # Resolved stream
    A -> B -> E

    # Actual stream
    A0 -> Edit(A0, A) -> B -> C -> D -> Rollback(B) -> E

Though in the end Fintech != Fintech. I worked at Fintech where money was treated like a baggage, and in other where money was a central point of everything.
Skimmed it and based on my experience in fintech, it looks good, accurately represents the real world. I guess there’s still a chance it is AI generated but it doesn’t seem like vacuous slop, it has substance!
krever•39m ago
Hey, author here :)

Its at least 80% organic artisanal writing and maybe 20% AI when I needed help with grammar, completeness, broader perspective and everything around.

ivanmontillam•1h ago
A string type. As parent says: it completely bypasses the problem. Save the numbers between double quotes and be done with it.
portly•15m ago
Storing numbers as arrays of u8? That doesn't make sense
KellyCriterion•47m ago
Do not throw away any precision in finance/money computation, regardless what/ how you are doing it.

In C# e.g., there is type decimal for those computations.

lxgr•39m ago
You'll definitely have to throw it away at some point.

The art is in making those points well-defined and rare enough to not cause large discrepancies, but frequent enough to avoid ballooning arbitrary-precision numbers across databases and services that might not be able to handle them.

necrotic_comp•8m ago
[delayed]
denismenace•1h ago
> but it'll bite you incredibly hard if you ever stumble upon an edge case such as working with a partner that has a different implied number of digits for a given currency

Why would that be a problem? You just transform the values when interacting with their API.

lxgr•1h ago
Sure, but are all your (and your users' and vendors') engineers and LLM agents going to remember that? When in doubt, always be explicit.
makeitdouble•45m ago
I'm curious how you handle that.

Let's say I operate with a 4 decimal expectation and your API expects 6, is there any way to reconcile that outside of documentation and or metadata ? (which would be the same issue I guess whatever representation is used ?)

lxgr•41m ago
Yeah, you need to document it.

Still, even if you do: Chances that your users are just going to assume you're conforming to ISO 4217, some national standard, or your competitor that they're already integrated with are pretty high, so I wouldn't take the chance. Pick something that doesn't have to be documented instead.

xlii•34m ago
Exactly, model is in integers and representation can be 1⃣3⃣ or whatever, that's why model-view separation exist.
lxgr•20m ago
Sure, you can do that if you can absolutely guarantee that everyone will always respect that separation and there will never be ambiguity between your internal and some partner's representation – even during incidents, even during low-level CSV-to-DB ETLs during incidents ("just one time, I promise, we don't have time to build the proper adapter, but look how similar their and our formats are").
antonymoose•8m ago
Having done HFT / low-latency in C++ with a browser based (read: JavaScript) management front-end: Go ahead and use integer cents everyone. It’s practically an industry standard and it works just fine. Anything else is a worse compromise.

DeepSeek open-sources inference optimizations with 60–85% faster generation [pdf]

https://github.com/deepseek-ai/DeepSpec/blob/main/DSpark_paper.pdf
431•aurenvale•3h ago•133 comments

Fintech Engineering Handbook

https://w.pitula.me/fintech-engineering-handbook/
105•signa11•2h ago•32 comments

OpenRA

https://www.openra.net/
8•tosh•31m ago•1 comments

Beer CSS – Build material design in record time

https://www.beercss.com
57•Seb-C•3h ago•14 comments

Previewing GPT‑5.6 Sol: a next-generation model

https://openai.com/index/previewing-gpt-5-6-sol/
1032•minimaxir•19h ago•649 comments

Long Wave radio era set to end with switch-off

https://www.economist.com/britain/2026/06/25/the-bbc-switches-off-its-oldest-service
68•edward•1d ago•73 comments

Nox Metals (YC S25) Is Hiring SWE

https://www.ycombinator.com/companies/nox-metals/jobs/M1f1enD-software-engineer
1•zane_heng•40m ago

Linux on Older Hardware: The Complete Revival Guide

https://www.fosslinux.com/158206/linux-on-older-hardware-revival-guide.htm
90•tapanjk•2d ago•45 comments

WordStar: A Writer's Word Processor (1996)

https://www.sfwriter.com/wordstar.htm
114•droidjj•9h ago•49 comments

Why does kinetic energy increase quadratically, not linearly, with speed? (2011)

https://physics.stackexchange.com/questions/535/why-does-kinetic-energy-increase-quadratically-no...
270•ProxyTracer•13h ago•129 comments

The US Army Issued Ocarinas to Soldiers in World War II

https://www.flutetunes.com/articles/my-flute-goes-to-war/
26•tomcam•2d ago•13 comments

Faster KNN search in Manticore: 2-pass HNSW, batched distances, and AVX-512

https://medium.com/@s_nikolaev/faster-knn-search-in-manticore-2-pass-hnsw-batched-distances-and-a...
25•snikolaev•1d ago•1 comments

If You Can't Hold It, You Don't Own It

https://dervis.de/physical/
4•cemdervis•1h ago•0 comments

Cultures of Making and Relating

https://blog.khinsen.net/posts/2026/06/25/cultures.html
7•akkartik•1d ago•0 comments

U.S. allows Anthropic to release Mythos AI to ‘trusted’ US organizations

https://www.semafor.com/article/06/27/2026/us-releases-powerful-anthropic-model-mythos-to-some-us...
477•bobrenjc93•13h ago•594 comments

MicroVMs: Run isolated sandboxes with full lifecycle control

https://aws.amazon.com/blogs/aws/run-isolated-sandboxes-with-full-lifecycle-control-aws-lambda-in...
343•justincormack•4d ago•189 comments

OpenTTD 16.0-Beta1

https://www.openttd.org/news/2026/06/25/openttd-16-0-beta1
191•untilted•8h ago•33 comments

AI in mathematics is forcing big questions

https://spectrum.ieee.org/ai-in-mathematics
152•rbanffy•14h ago•117 comments

Jest/Vitest interactive course (runs in the browser)

https://howtotestfrontend.com/courses/jest-vitest-fundamentals
15•howToTestFE•2d ago•8 comments

Hellishly Slow Level 13 Deflate Compression

https://kirill.korins.ky/articles/hellishly-slow-level-13-deflate-compression/
72•zX41ZdbW•4d ago•21 comments

Fusion Programming Language

https://fusion-lang.org/
91•efrecon•3d ago•38 comments

Anatomy of a Failed (Nation-State?) Attack

https://grack.com/blog/2026/06/25/dissecting-a-failed-nation-state-attack/
82•signa11•9h ago•12 comments

U.S. government will decide who gets to use GPT-5.6

https://www.washingtonpost.com/technology/2026/06/26/openai-says-us-government-will-vet-users-its...
1072•alain94040•18h ago•1127 comments

IBM MCGA Gate Array Reverse Engineering

https://github.com/schlae/IBM_MCGA
45•userbinator•7h ago•8 comments

The gap between open weights LLMs and closed source LLMs

https://blog.doubleword.ai/frontier-os-llm
234•kkm•15h ago•186 comments

Foreign funds help make housing unaffordable: research

https://news.mccombs.utexas.edu/research/foreign-funds-help-make-housing-unaffordable/
98•hhs•13h ago•33 comments

Ultrasound imaging of the brain

https://alephneuro.com/blog/ultrasound-brain
292•rossant•1d ago•115 comments

Show HN: Hacker News on a train station-style flip board

https://popflame.quickish.space/hn-flipboard/
80•PaybackTony•11h ago•18 comments

Om

https://daringfireball.net/2026/06/om
421•throw0101a•13h ago•19 comments

We can still stop California's 3D printer surveillance scheme

https://www.eff.org/deeplinks/2026/06/we-can-still-stop-californias-3d-printer-surveillance-scheme
427•hn_acker•15h ago•152 comments