Senior Software Engineer - Data Services
New York, NY
Posted Aug 28, 2019 - Requisition No. 76957
Engineering Data Services group is responsible for core data and analytics services that are used across Bloomberg’s application teams. Our service stack currently runs on over 900 machines and serves over 120 billion requests a day. With ever increasing data volumes and growth of Bloomberg’s Enterprise products, this footprint has been growing at a rapid pace year over year. Our team also provides multiple foundational services such as meta data and id master for our Bloomberg Query Language (BQL), the next generation analytics and screening engine for financial datasets.
We are building out a suite of tools that help developers support and optimize our data services. One such tool, our data integrity checker, is required to verify 50 billion unique data points daily to detect anomalies. This immense scale requires the use of Hadoop and Spark analytics framework. We are developing a set of brand new services for metadata, security & entity relationships and entitlement. Due to the large volume and explosive growth of underlying data we are looking to leverage Hadoop based storage for these services. We are also building new tools to manage our server farm more efficiently and leverage analytics to ensure high availability, efficient load balancing and fair scheduling.
We are looking for strong C++/Java software engineers who can design and develop low latency, high performance distributed systems. The ideal candidate should have strong programming skills, the ability to work collaboratively and a proven track record of delivering quality engineering solutions to real world problems. Our team is comprised of a small group of technologists passionate about data and pushing the boundaries of technology to deliver innovative solutions. We expect you to be proactive, able to work independently and take ownership in driving the vision and execution of the product.
We’ll trust you to:
- Design, implement and own critical applications and components of our services stack
- Participate in the full SDLC (Software Development Life Cycle) of various components and systems that are required to be highly efficient, robust and scalable
- Enhance our infrastructure to fulfill mission critical SLAs, whether low latency or high throughput data retrieval
- Get to know development teams across Bloomberg, understand their application requirements and data access patterns
You need to have:
- 3+ years of C++ or Java on UNIX/Linux environment
- Solid understanding of algorithms and data structures, knowledge of object-oriented design and multi-threading
- Excellent problem solving and communication skills, and ability to thrive in a highly collaborative and dynamic work environment
- Experience with high volume, high availability distributed systems
- Experience working in a test-driven development and agile environment
We’d love to see:
- Knowledge of low-level Linux, UNIX networking and C system calls for high performance computing and debugging
- Experience with systems level Java or Scala
- Experience with Hadoop and/or using a distributed analytics infrastructure like Apache Spark
Bloomberg is an equal opportunities employer, and we value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.