Senior Software Engineer - Core Data Taxonomy
Bloomberg
2021-12-03 09:00:31
Barkingside, Greater London, United Kingdom
Job type: fulltime
Job industry: I.T. & Communications
Job description
Who are we?
Bloomberg has tens of millions of time series our clients can use to generate ideas and make trading decisions. Some of these time series represent prices, whereas others represent fundamental data, such as the inventory of warehouses around the world. We have developed a system that organises time series and datasets across the Commodities, Foreign Exchange/Currencies, Economics, ESG and Bloomberg Intelligence spaces.
Our system enables downstream applications to empower Bloomberg's customers to hedge their inherent business risks, brokers to facilitate deals between their clients and speculators identify opportunities.
Technology
We develop primarily in Python 3 and Javascript, and maintain some assets in C++. We use Postgres for our primary database, RabbitMQ for work distribution and Solr & Redis for specialist use cases. We started to use RDF for inter-system communication. We've designed a variety of GraphQL services, where we can solve multiple query problems with a single implementation.
We drive our SDLC processes from our GitHub Enterprise instance and use Jenkins for CI. We deploy to a mix of containerised and Linux VM-based environments.
What's in it for you?
We place a lot of value on a good developer experience and developing the right solution. Every week, we encourage people to spend half a day on engineer-led learning and innovation. As part of this process, the team has open sourced 2 Python libraries and introduced GraphQL to our stack.
We have been an agile team since 2015; we started with Scrum, but have now adopted predominantly Kanban practices. We regularly reflect on our process, practices and tools together as a team in order to evolve our way of working. We work closely with our product owner and delivery manager, and encourage everyone on the team to contribute to the roadmap and develop a breadth of knowledge across our assets.
We'll trust you to:
- Implement stable solutions using the best technology for the job, whether that is well-established in the system or introduced from outside of Bloomberg, in order to deliver solutions that minimize maintenance cost and improve our reliability and performance
- Contribute to the work of the engineering team, including mentoring junior members, pair programming and peer reviewing
- Contribute to the work of the wider group, including collaborating with product owners and data administration teams, to understand and develop solutions to their problems
- Participate actively in our agile process
You'll need to have:
- Experience with one or more of the following: Python, JavaScript, C or C++
- An aptitude for problem solving, and a desire to build software solutions to complex business problems
- A team player attitude and collaborative approach to development
- Commitment to building quality software through tests
We'd love to see:
- Familiarity with Postgres, Solr, Redis and/or GraphQL
- Experience with RDF, or similar knowledge base technologies
- Interest in learning about the financial markets
If this sounds like you, please apply!
Interview process:
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:
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.
And do check out our blog, TechAtBloomberg.com/ to learn more.
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.