Senior C++ Engineer: Application Middleware Transport Senior C++ Engineer: Application Middleware  …

in New York, NY, United States
Internships & Graduate Trainee, Full time
Be the first to apply
in New York, NY, United States
Internships & Graduate Trainee, Full time
Be the first to apply
Senior C++ Engineer: Application Middleware Transport
The Application Middleware Transport team is part of Bloomberg's Engineering Software Infrastructure department. Our team provides a low latency transport library for real time data distribution. Our transport library supports reliable unicast and multicast data distribution and are used every day by large scale Bloomberg middleware systems around the world.

With thousands of machines running tasks using our software, it's imperative we continue to deliver a low latency library that can handle high traffic rates. (Combined rate of data streams per machine is in Gigabits per second.) In a typical trading day, there are 40,000 sender tasks and 140,000 receiver tasks running globally. Aggregated receiving rate for all machines is peak at 5 Terabits per second.

Bloomberg middleware systems using our library include:
  • Market data distribution systems
  • Real time news story publishers and subscribers
  • Trading systems
  • Service discovery systems
Our latest mission is to extend our transport library to a transport service powered by a suite of scalable high performance routing services. New and on-going projects include:

  • Adding traffic relay service between isolated multicast data networks
  • Enhancing proxy and alternative repair service between receivers and senders
  • Improving multicast traffic monitoring and configuration management
  • Researching traffic trend, service abnormality detection, and root cause analysis on packet gaps
We are looking for motivated software engineers to help us with these projects.

You'll need to have:
  • Demonstrated experience in C++
  • Experience with multi-threaded programming
  • A deep understanding of object-oriented design, data structures, and algorithms
  • An aptitude for analytical problem solving
  • Exposure to all phases of the software development life cycle

We'd love to see:
  • Knowledge of other programming languages such as Python, Scala, or JAVA
  • Familiarity with networking
  • Experience working with Linux/UNIX
  • Familiarity with the technique of building high volume, high availability distributed systems
  • Knowledge of network protocols such as TCP/IP, multicast and various optimization techniques

If this sounds like you, apply!