Technology - Java Developer (Position Keeper), Associate, Hong Kong

  • Competitive
  • Hong Kong
  • Permanent, Full time
  • Morgan Stanley
  • 15 Oct 18

See job description for details

We're looking for a great software developer to join our fixed income position keeping team to be part of an exciting project involving breaking new ground ? this is not your industry-standard job description involving enterprise style application architecture.

If you are interested in scaling an innovative product into new use cases and helping to define a new 'right way' to do things, then come talk to us.

Our team writes software to tell our traders and automated trading systems what their total financial obligations are so that they can control the risk we are taking. The goal is to write code that is:

- Correct (otherwise our automated systems would buy or sell assets they should not)

- Fast (many of our trading systems aim to operate at sub-millisecond latency)
- Robust (we must retain control in the event of disruption to our infrastructure)

Our main system is an event-sourced (adapted CQRS), distributed, in-memory trade store capable of processing thousands of trades per second. This allows us to rapidly compute task-oriented summary views while retaining the capability to explain them via the underlying trades that caused them. The codebase is test-driven and written mostly in Java.

This role does not require prior experience in financial services - just a passion for solving hard technical problems with excellent quality code, an ability to quickly learn the business needs and the highest standards of professional conduct and practice.

We offer:
- Work in a genuinely agile development environment supported by a strong technical team

- The ability to make a difference to the business across multiple departments, trading desks and product areas
- Close collaboration with colleagues in the fixed income technology/Strats teams and other technology teams
- Sensible working hours
- Competitive salary and benefits


The successful candidate will be:
- A strong developer with an excellent knowledge of object-oriented fundamentals (probably 6+ years of experience in Java, C++ or C#)
- Experienced in using test-driven development to build dependable systems
- Passionate about educating others and helping others succeed
- Excited by modern approaches to software development (DDD, CQRS, event sourcing)

Preferred (but not required) experience in developing:
- High throughput, low latency transaction/event processing systems
- CQRS or event-sourced systems
- Software for Linux (or other UNIX) operating systems