Senior Software Engineer - Message-Oriented Middleware
New York, NY
Posted Jun 29, 2022 - Requisition No. 75327
Every day, over thousands of Bloomberg engineers rely on the messaging systems provided by Application Middleware group to build the core foundation required for their applications. Our group builds messaging middleware -- the software infrastructure which enables applications at Bloomberg to exchange messages with strict latency, throughput and fault-tolerant requirements at enterprise scale. We are four dozen engineers building complex software frameworks providing a variety of paradigms such as RPC, publish/subscribe, and message queues.
You'll have the opportunity to work in a team which builds a modern message queuing framework (Bloomberg Message Queues or BMQ) from the ground up. BMQ provides durable, efficient and highly available queues by means of persistence, clustering and replication. BMQ has been written in-house from the ground up in C++ and does not depend on any external framework. Our goal is to make BMQ the default messaging system for engineers at Bloomberg when they look for a high performance durable messaging framework, and our BMQ roadmap reflects this goal -- we have several challenging projects which aim to add more features, reliability and capacity to BMQ. You'll be working on projects which span from "how to design a client API" to "how to design an efficient wire protocol over TCP" to "how to implement robust distributed consensus among several nodes", and everything in between.
- 4+ years of demonstrated experience in C++
- Experience with multi-threaded programming
- Experience designing or working with complex distributed systems
- A deep understanding of good software design, data structures, and algorithms
- An aptitude for analytical problem solving
- Exposure to all phases of the software development life cycle
- BA, BS, MS, PhD in Computer Science, Engineering or related technology field
- Hands on experience designing and implementing high volume and high availability distributed system
- Familiarity with network protocols (particularly TCP)
- Familiarity with distributed consensus protocols like Raft, Paxos, etc.
Bloomberg is an equal opportunity employer, and we value diversity at our company. We do not discriminate on the basis of age, ancestry, color, gender identity or expression, genetic predisposition or carrier status, marital status, national or ethnic origin, race, religion or belief, sex, sexual orientation, sexual and other reproductive health decisions, parental or caring status, physical or mental disability, pregnancy or maternity/parental leave, protected veteran status, status as a victim of domestic violence, or any other classification protected by applicable law.
Bloomberg is a disability inclusive employer. Please let us know if you require any reasonable adjustments to be made for the recruitment process. If you would prefer to discuss this confidentially, please email email@example.com