Senior Java Engineer - Communication Channels
New York, NY
Posted Jan 31, 2020 - Requisition No. 77117
Bloomberg data moves global financial markets – but only when people can converse about that data. The Communication Channels team builds the robust infrastructure responsible for delivering real time communications between 350,000 financial professionals on the Bloomberg Professional Service.
Our software and hardware are responsible for processing 900 million emails and more than 1 billion instant messages every single day. Stock quotes, trade confirmations, breaking news alerts, and help desk inquiries all flow through our tightly integrated communication applications, placing our team at the center of the Bloomberg universe.
Each day we are tasked with selecting and implementing the best possible solutions to support our clients across every imaginable workflow, geographic location, and asset class. Our group’s products (MSG and IB) seamlessly link the myriad financial and data application on the Bloomberg Professional Service, making us crucial to the company’s success.
Unlike traditional e-mail or instant messaging platforms, where there are many users who receive a relatively small number of e-mails or chat posts, our communications products serve clients who receive more than 10,000 e-mails and tens of thousands of chats per day. The CC search team provides tools to better manage this continuously growing barrage of information with our alerts and search offerings. In order to give our clients the ability to find what they need and surface other meaningful information, we need to provide more than the standard search and alerting features.
Users can set up custom rules to be alerted on various criteria such as participants, content, time, metadata and tens of others parameters. The current rule system is based on client side filtering and IDOL software. The CC Search team is working on building a new distributed and scalable system which consolidates the rule offering on the server side and will be built on top of open source Java based Lucene libraries. The system has to be performant enough to match millions of user created rules across millions of emails and instant messages per minute in real time.
Search is also a critical component of our communications products. Our search infrastructure services millions of queries per day in real time. In the coming years, our search offering needs to evolve to meet the needs of our clients. Our search system is built of top of Solr and is distributed across multiple collections over hundreds of machines. It is built to support performance requirements of today and tomorrow, and can support additional features to meet our client's needs.
As part of our team, you'll roll up your sleeves, collaborate and deliver real solutions to clients across all industries.
We'll trust you to:
- Build large, scalable, real time distributed systems
- Explore Solr, Lucene and other technologies to solve problems
- Collaborate with other communication channels teams, as well as other partners of our search system
You'll need to have:
- An aptitude for analytical problem solving
- Experience developing and managing large real-time distributed systems
- 3+ years experience in Java development and associated technologies (Spring / Jmx)
- Working knowledge of modern development methodologies and tools (Jenkins / Maven / Jira)
- 3+ years of experience with object-oriented design, data structures, algorithms and all phases of the SDLC
- BA, BS, MS, PhD in Computer Science, Engineering or related technology field
We'd love to see:
- Experience with search systems, particularly Lucene and Solr
- Programming experience in C++
- Experience developing software using agile methodologies
- Experience with open source technologies such as Kafka, Docker, Cassandra
Bloomberg is an equal opportunity employer and value diversity at our company. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.