Our client, a large international commodity trading company, is expanding its internal software development team and is looking for programmers to join the team working on a new generation risk management and position keeping system.
We are looking for mature software engineers with in-depth experience of writing performance orientated and highly reliable software, who love and understand technology and also understand or are willing to understand the trading business. We expect the joiners to work on a fairly wide range of tasks: from purely business functionality to its underlying technological foundations; we also expect them to come up with well thought-out, simple, robust, testable, and elegant solutions.
- Writing performance orientated and highly reliable software in object oriented languages for risk & position keeping system
- Delivering within cost, time, and quality constraints of projects
- Needs to work closely with business analysts, testers, and project managers
We would generally expect the candidate to be educated to at least degree level (or equivalent) in either Computer Science or another hard science or engineering discipline and a true passion for delivering quality software
We do not set any specific technology skill as an absolute requirement; however the candidates should be able to demonstrate that they:
- Can program in a real-world object-oriented programming language (Java, Scala), preferably in multiple languages suitable for different purposes
- Understand how the basic data structures and algorithms work, can program and use them, and can assess their performance
- Understand common programming practices, like version control, unit testing, automated regression testing and continuous integration, etc. and can use the associated tools of the trade
- Have strong desire to write good, maintainable code
- Can solve routine tasks such as writing a simple script or querying a relational database
- Understand how computer hardware (e.g. computers, networks, data storage) and system software (e.g. operating systems, databases, compilers, virtual machines) work
- Have a realistic picture of how JVM and applications on top of it work, of the relevant operational aspects
- Have strong analytical and mathematical skills
- Can communicate with their colleagues in English
Nice to have
- Experience with Scala and ability to write good Scala code are a big plus
- Some knowledge of commodities and derivatives trading and financial mathematics
- Experience of any functional languages
- Fluency with git and Linux command line
- Experience of a scripting language such as Perl, Python or Ruby
You can also impress us in quite a few other ways, for example, showing your profound understanding and mastery of topics like algorithmic complexity, functional data structures, concurrency models and tools, or the inner workings of JVM.
- English: Upper-intermediate