Senior Software Engineer - Desktop API
Our team provides engineering support to the Bloomberg Product Oversight (BPO) group, with a primary focus on the Desktop API product. The Bloomberg Desktop API (DAPI) provides a powerful suite of tools as part of the Bloomberg Terminal service. These allow our clients to access market data, historical data, reference data, etc via desktop applications (such as Microsoft Excel) and do their own analytics. Our team builds state-of-the-art software for DAPI product management, configuration, customer service, and usage analysis. We help BPO ensure that customers are using the Desktop API (or other products) in a manner compliant with Bloomberg contracts. We support tools for reaching out to our 200k+ customers to review their usage and ensure they are using the right solution to meet their workflow requirements.
As part of our team, you will be exposed to a variety of domains and technologies, learn continuously, and contribute new ideas starting day one. We deliver software for both front-end and back-end. Our day-to-day work includes a wide range of development opportunities, from brainstorming to design to coding. We're always looking to improve our automation via tools like Jenkins, and to upgrade our technology stack to use new technologies such as kafka and Redis where appropriate to the engineering problem we're trying to solve.
We operate on an Agile / scrum methodology. This includes typically two-week sprints of work with a quarterly PI meeting that allows us to plan what we will deliver over three-month increments. We review with business and refine our estimates to determine the highest priority work and how much we can commit to completing within those time periods.
There are lots of new developments coming to continue refining the way we look at usage analytics and to ensure the usage is compliant. Currently the team is enhancing our main function; we are focusing on being able to establish better surveillance and a clearer picture of a client's overall usage profile, which includes capturing and displaying new types of data requests across different systems.
We pioneered a machine learning model to perform predictive analytics which is now being worked on by the Data Science team to enhance and productionalize our proof of concept. We partner with BPO resources in a Business Intelligence (BI) / Data Warehouse (DW) team to cooperatively allow for better analysis of data and usage patterns.
For this coming year we are developing new tools to support evolving surveillance processes which involve working with various lines of the business including multiple product and engineering groups. We'll trust you to:
You'll need to have:
- Create C++ and/or Python back-end services / microservices on Linux using Bloomberg Application Service (BAS) framework
- Work with various database technologies including Microsoft SQL Server, IBM DB2, and Bloomberg proprietary COMDB2 (based on SQL Lite)
- Script complex stored procedures
- Work across multiple teams in Engineering to enhance interconnected systems
- Communicate and interact with product managers and end users
We'd love to see:
- 5+ years programming experience in C++ or Python
- Experience building flexible and maintainable software components and framework using object-oriented design and design patterns
- Experience working with UIs
- Ability to learn on the fly, the desire to share ideas and be a team player
- Strong verbal and written communication skills
- An undergraduate or post-graduate degree in Computer Science, Engineering, or related field (or equivalent expertise)
- A strong desire to uphold good software engineering principles; to build high quality, long lasting, well designed systems that are extensible, maintainable, and easy to troubleshoot
- Familiarity with SQL, experience developing stored procedures, performing optimization and query tuning, and designing databases
- Familiarity with Linux, a working knowledge of Linux/UNIX shell scripting
- Problem solving and troubleshooting skills
- Experience in working with business/customer to identify and understand business needs, analyze and normalize workflow, ramp up and create solutions
- Familiarity with Agile and full SDLC, particularly evaluating business / client requirements to redesign existing systems better meet needed workflows
We are extremely proud of our diverse and open culture, and value diversity of thought and perspective in every form. We're looking for engineers with a real passion for writing reusable, efficient solutions to complex problems, who can adapt to an ever-changing market landscape, and who can collaborate and work effectively on small teams to develop software that impacts thousands of power users around the world. We're looking for engineers who are passionate about understanding business requirements and turning them into useful tools, and providing feedback and ideas on how to do so. If this sounds like you, please apply below! Sound interesting? Apply!
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.