Senior Software Engineer (C++/Python) - Collaboration Frameworks
Posted Jul 17, 2020 - Requisition No. 83956
The purpose of the Collaboration group in Bloomberg is to help people work together. We create products and tools that allow users to communicate, to have access to the same information, and to share content more efficiently. With this in mind, we have built products similar to ones that you use everyday - for example, a document sharing application, a contact manager, and a file manager. At the same time we are responsible for the technology that powers these products, including frameworks that bring these kinds of collaborative elements to many other products across the Bloomberg terminal. Our group has several openings so you could be working in any of the following exciting teams.
The Tagging Framework team is working to bring powerful content categorization tools to applications across the Bloomberg terminal. We are creating a unified taxonomy of tags that can not only help a user to easily find the content that matters to them, but will also enable applications to intelligently display that content at all the important points in a user’s workflow.
The Sharing Framework team is working to build a centralized solution for people to share content on the terminal. Their mission is to enable collaboration and easy exchange of information between players in various markets and industries. By providing an API and services that other teams can use, they bring a unified sharing experience to many applications and products in the Bloomberg universe.
The Contact Management team is in charge of storing the personal contact information of Bloomberg users. Our clients have very large distribution lists (up to 20,000 members in some cases), which are used around 50 million times a day and are a key part of many Terminal workflows. Our objective is to simplify the administration of the distribution list and update them automatically based on our users criteria.
These teams own heavily used pieces of infrastructure so they face a wide variety of interesting challenges. The systems we build need to be able to handle large amounts of requests (millions per hour) while also being resilient. The systems must be robust to the point that one client application having problems will not impact other clients. From a product point of view, we need to identify patterns in how people use our systems, to imagine smart solutions and workflows that a user may never have thought of. Our main languages are C++ and Python, and besides the Bloomberg proprietary stack, we use several open source technologies including Redis, RabbitMQ, Kafka or SOLR.
What's in it for you?
- You will be joining a team where everything is done democratically. Collaboration and camaraderie are part of our DNA, which means everybody is always ready to help anybody else. We are all equal in the teams and all big decisions are taken together.
- You will be able to work on back-end services, on client facing-UIs, or both.
- You will have the opportunity to experience and contribute to a high level of SDLC and automation, as each team is very committed to keeping our processes up to date.
- We value inclusion and diversity very highly. We believe that having a wide variety of strengths and a wide variety of opinions represented makes us stronger.
- We take individual progression very seriously. We are developing unique tools and processes to make sure you continue to grow in ways that are meaningful to you.
We'd expect you to:
- Have a good understanding of how to write and deploy code in a production environment
- Thrive in a collaborative environment, where team success directly influenced by your own success with collective ownership of all components
- Be curious and always look for opportunities to improve
- Be keen on sharing your knowledge and learning from others
We'd love to see:
- Experience with distributed systems, micro-services, open-source technologies
- A passion for automation, SDLC and technology in general
- Interest in developing good relationships with stakeholders, including with other teams and with product managers
- An understanding of continuous integration principles and writing testable code
If this sounds like you, apply!
And do check out our blog, TechAtBloomberg.com/ to learn more.
We believe interviewing is a two way street. It's a way for us to get to know you and your skills, and also a way for you to learn more about the team, our technical challenges, and what you'd be working on. The content of each interview round will be tailored to the role and your background, but the general framework can be found here: https://www.bloomberg.com/careers/technology/engineering/software-engineering-experienced-hire/
We want to ensure you can put your best foot forward throughout the process, so if you have any questions or need any accommodations to be successful, please let us know.
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.
We have a lot of opportunities to choose from in Engineering, and it is important to us that your skills and experience align best with the team you are interviewing with. To help ensure you are placed on the right team, your application will be considered for all of our current vacancies in Engineering at the first stage of the interview process.