Bloomberg Senior Software Engineer - Developer Experience in New York, New York

Job Requisition Number: 65482

Bloomberg's developer experience team empowers 5000 engineers globally to reach their maximum productivity. The work we do helps engineers deliver software that underpins the entire financial industry. Bloomberg leverages more tools and open source technologies every year, and our team is expanding to ensure engineers here are well-equipped to take advantage of those tools. That’s where you come in.

You are passionate about build systems that can manage a large-scale, multi-language codebase. You are interested in building tools that can prevent complex bugs and keep our code clean. You are ready to help build the next generation of intelligent analysis tools to perform bug detection and smart code refactoring. You want to provide an end-to-end build and deployment platform where pull requests are streamlined into a modern and dynamic integration.

Read on to learn more about our teams and what we're looking for. You can express interest in particular teams in your application.

1. Build System

Our team develops and maintains the system that Bloomberg engineers use to build the terminal software used by over 300 thousand clients every day. This system comprises proprietary components as well as off-the-shelf tooling for a diverse set of platforms. C/C++ are continuously integrated and deployed daily alongside Python, Haskell, and other third party tooling integrated into Bloomberg.

We'll trust you to:
  • Design and improve protocols that help our engineers build and test code
  • Collaborate with engineers to debug and diagnose compiler or operating system bugs and issues
  • Research and prototype new build platforms as well as operating systems and compiler options
  • Work with a wide range of technologies, ranging from source control (git, subversion) all the way to databases (postgres, sqlite)
You will need to have:
  • An interest in a wide variety of languages (Python, Javascript, Kotlin, Scala, Haskell etc.) including an intimate knowledge of a compiled language (C++/C)
  • Strong development skills with at least one scripting language, preferably Python
  • Understanding and familiarity with compiler toolchains such as gcc or clang
  • Familiarity with build systems such as autotools, CMake, Bazel, or Pants is a plus
  • BA, BS, MS, PhD in Computer Science, Engineering or related technology field
2. Development Workflow

We are a team of technologists, engineers, evangelists, and trainers helping our engineers deliver their best work. We are not afraid to make large investments to build our own continuous integration and development solutions, covering all stages of development. We work with Phabricator, Jenkins, Debian Package, GitHub Enterprise, Coverity, Jira, Confluence and anything that fills gaps and joins them together. You will not only help thousands of developers inside the company, but you’ll also join a global community of engineers leveraging open source technologies.

We'll trust you to:
  • Develop software which will help standardize development workflow across the entire organization
  • Research the latest methodologies in CI/CD
  • Engage with Developers across the firm to design & develop CI/CD tools ?
You will need to have:
  • Development experience in Unix/Linux
  • Experience with technologies like Java 8, Kafka, Node, REST, Python and platforms including GitHub Enterprise, Jenkins, SonarQube
  • Familiarity with technologies such as Postgres, Hibernate, Vue.JS, GraphQL ?
  • BA, BS, MS, PhD in Computer Science, Engineering or related technology field
3. Automated Refactoring and Analysis

We are working with our diverse developer community in improving the overall state of the quality of the code. This is done via the adoption of off-the-shelf Static Analysis tools as well as the development of customized tools based on Clang and Camfort. We not only report on issues for the developers to fix, but whenever the fix is a formulaic code change we also produce a tool to automate that change.

We'll trust you to:
  • Evaluate and implement off-the-shelf static analysis tools, by working directly with our application teams
  • Write tools that will automatically perform changes in C and C++ code by using the Clang Libtooling AP
  • Write tools that will automatically perform changes in Fortran code by using the Camfort API
  • Work with our developer community on adopting Best Practices in terms of code design and general architecture guidelines
You will need to have:
  • Experience in C/C++ as well as some interpreted language, such as Python
  • Understanding of build tools, such as CMake
  • We'd love to see experience with Haskell or other functional languages, clang libtooling API, or writing grammars and parsers
  • BA, BS, MS, PhD in Computer Science, Engineering or related technology field