Hacker News new | ask | show | jobs
by hathawsh 1059 days ago
Once the service provider is connected to the Fed (a somewhat complex process), it's normal software development. The client uses either MQI or JMS to send and receive messages; the messages are essentially ISO20022 XML. The development environment could be anything (any OS, any IDE). You interface those messages with your system of accounts. The Fed also provides a simple web UI and a testing network where you can test with other participants and run regression tests.

From a software development perspective, it's really quite normal.

2 comments

That's really interesting. I worked in PCI (payment cards industry) and we had terminals we could relay the ISO8583 messages through, eventually opting to emulate via software for obvious reasons.

Always so cool to hear about this sort of stuff.

For someone entirely outside of the payments space, what are those obvious reasons please?
generally having to rely on a piece of hardware for high-iteration software development is very unpleasant, so my guess is they chose to abstract what the hardware would do in software for testing/development.
One of the huge pain points I was responsible for was certification of certain payment terminals. Meaning, hardcoded PANs (personal account numbers) written to magnetic stripe cards (or, worse, EMV chips) that have to make physical contact with a reader to transmit data.

Up until a point, we were able to (easily) reproduce these messages via the ISO8583 message format via software. Makes certification much more automation-friendly.

Once we got into hardware encryption/decryption via HSM devices, it wasn't as easily done.

What is normal though? From the perspective of a hardware engineer, from the perspective of a contractor or small company developer, from the perspective of a developer at a medium-sized firm, and from the perspective of an engineer at a FAANG, what is normal is different. Twitter famously doesn't have a dev environment and that's not a bad thing. That's because coordinating umpteen teams to have an actually useful dev-dev and qa-dev env costs more than it's worth, in their eyes. And then, what does normal look like depends on when, too. Local dev envs looked a lot different before Docker came on the scene.

So back to the question, what's the dev env look like? :)