Tools of the Trade in developing Payment Systems

I was thinking about the tools and systems and general knowledge that I use on a daily basis, and thought is would be a good exercise to document them here:

Computer Systems:


  • A good text editor - UltraEdit, TextMate or vim
  • A good hex editor - UltraEdit, hexdump, hexedit or vim -b
  • ssh client - PuTTY or OS native ssh clients
  • svn client
  • NetCat - to pipe binary message dumps to simulators, and to create listening servers to accept message dumps.
  • Client and Server Simulators – write your own!
  • Calculator – the DEC to HEX and HEX to DEC functions are great for header lengths - if you are a real geek you have a HP-16c
  • Instant Messenging clients and Skype to communicate with your team.


  • Ability to read – seriously, read those specs!
  • ISO8583
  • TCP/IP Socket programming - both Client and Server
  • Database programming experience e.g. SQL - and other O/R Mapping tools - Understanding the I/O requirements between write intensive OLTP and read intensive Data Warehouse data stores.
  • Payment Processing 101 knowledge
  • Data Encoding techniques and character sets and numbering systems - ACSII, EBCDIC, BCD, Binary etc.
  • Basic understanding of Encryption, including symmetric, asymmetric, PIN encryption , PIN translation, and DUKPT
  • Basic understanding of IT Security
  • PCI and PABP/PA-DSS requirements - review the audit procedures !
  • How to use Google
  • Ability to read – Note: This is intentionally listed twice :)


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now