Software Engineer - Data
The Fixed Income Applications development team is focused on building and supporting a reference data/security master system. The team's responsibilities span providing a rich reference data system of financial products (bonds, futures, options, FX spots/forwards, deposits, swaps, commodities, swaptions, cdx, cds, equities, etc), building infrastructure for keeping the reference data current and accurate, and providing multiple means of dissemination to downstream systems (such as analytics, risk, and trader systems).
Team members interact directly with portfolio teams and other technology teams, so solid communication skills are essential. The team owns the entire software lifecycle, from requirements and design, through implementation, to production releases and support. Release cycles are tight, so in addition to strong development skills, you must have demonstrated the ability to adapt to changing conditions and learn quickly.
There are no business analysts on the team, so we expect developers to have sufficient business and product knowledge to understand the requirements on their own. That being said, this is not a particularly Quantitative role - there is a separate Analytics team that undertakes valuation and related work. We focus more on building up and supporting the technical infrastructure.
4+ years of professional experience with Java and/or Scala
3+ years of SQL database development skills
Solid grasp of Multithreading, algorithms, and data structures
Familiarity with Regular Expressions
Fixed income product knowledge would be a plus
Familiarity with event streaming platforms like Kafka, RabbitMQ, Zookeeper, et
Strong communication skills
Results-oriented, can deliver quality code with quick turnaround
Self-starter and critical thinker, takes ownership of own projects and makes improvement suggestions for the entire infrastructure
Experience with Junit Testing
Experience with vendor feeds (Bloomberg SAPI/BPIPE, Markit)
Knowledge of Google Protocol Buffers for serialization
Distributed caching (e.g., Hazelcast)