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:
- Quad Core Q6600 Vista 64 Workstation 8GB of RAM
- Apple Macbook with 4GB RAM
- VMWare Workstation and VMWare Fusion (running various linux distros and Win XP images)
- Large Monitors 24” +
- 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!
- 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 :)