Senior Software Engineer - BAS Infrastructure Reliability
New York, NY
Posted Nov 10, 2022 - Requisition No. 102677
Bloomberg Application Services (BAS) is the core microservice framework powering the backend of virtually all Bloomberg products and services, responsible for reliably handling billions of dollars of transactions daily. The BAS network services over 5 million requests per second across thousands of applications and tens of thousands of machines on our global network. We provide a stable, fault-tolerant, scalable architecture with flexible routing rules and support for enterprise security and monitoring capabilities used for developing services by over 6,000 Bloomberg software engineers!
BAS is a global group of software professionals composed of several teams based primarily out of NYC and London, each handling responsibility for different aspects of BAS software development. BAS Infrastructure is uniquely positioned at the intersection of traditional software engineering, DevX, and SRE subject areas. This SRE role uses a combination of open-source and proprietary technologies to provide internal support to the BAS organization as well as the global Bloomberg developer community for building and deploying reliable software quickly and safely, with a wide domain of expertise and support applied to:
- Building analytics and observability frameworks, for tracking the performance and health of the BAS services at the individual machine level and overall health across all global stages of deployment
- Building core testing infrastructure components, for providing a world-class automated testing environment for our BAS developers, including unit testing, regression testing, and performance testing
- Building and supporting our automated Continuous Integration framework, with an extensive suite of automated verification testing and static analysis tools
- Building and supporting our production Continuous Deployment framework, supporting multiple operating systems and cloud-based environments
- Managing and automating our Jenkins instances and multi-platform build farms, from capacity planning, to system administration tasks, to writing chef/salt recipes
- Building software SDK packages for other teams to write software using the BAS framework
- Building and supporting tools for efficient local development work
- Building core high-performance software infrastructure components, used across all BAS services
- Support for many production computer language and deployment environments (C++, python, docker, ruby, chef, github, Jenkins/groovy, cmake, Typescript, powershell, among many others)
We work in a collaborative environment, with daily stand-ups and clear inclusive communication. Our team is well adapted to both in-person and remote working. Our biweekly sprints are planned as a group, all team members are included and everyone’s opinion is heard. We follow industry-wide best practices for software development including in-depth code reviews, consensus-based decision making, engineering discipline, and top notch standards for writing code. We have a strong culture of mentorship and professional growth within the team. The BAS team is associated with many of Bloomberg's collaborative efforts, with many of us involved in the C++ Guild (an internal meetup group), automation and testing guild, reliability guild, as well as conferences and external organizations such as ISO C++ Standardization. We also have relationships with many other infrastructure teams across Bloomberg and numerous open-source projects used at all levels of our software development and deployment stack.
Who we are looking for:
We are looking for experienced disciplined SRE professionals with an eye for detail and an interest in working with many different unique technologies in our collaborative environment. You have the ability to approach a new technology in the morning that you’ve never worked with before, and become an expert with it by that afternoon. You enjoy diagnosing and solving complicated software build and debug problems, for yourself and others on the team, quickly and successfully. You are excited about the prospect of working with three, four, or even five programming languages in one day. You enjoy writing code and performing advanced system administration tasks on many operating system platforms. You have experience of owning and managing the team’s production system environment. You understand how to make changes to a live production system safely and responsibly, without causing any impact on the end users. You bring a strong understanding of working with highly multi-threaded and asynchronous programming environments. You enjoy mentoring and sharing your knowledge with others. You communicate clearly and effectively and share our values toward software development and professional collaboration.
We currently have a need for someone to help us with the following projects:
- Creating a new monitoring infrastructure framework for BAS software, writing code, analyzing metrics, creating new alert rules and monitoring dashboards, transitioning from legacy measurements
- Enhancing our Continuous Development and health-check frameworks, adding support for more platforms, and using analytics to improve reliability of automated deployments
- Improving and managing our CI framework and software build architecture, focusing on improving build stability and our integrated test environment across multiple platforms
You'll need to have:
- 3+ years programming in C++ and/or Python
- An understanding of object-oriented design, data structures, multi-threading, and algorithms
- An aptitude for analytical problem solving
- BA, BS, MS, PhD in Computer Science, Electrical Engineering or related technology field
We'd love to see:
- Experience working with large, complex systems under continuous use
- Experience with Continuous Integration systems such as Jenkins
- Experience with build and test frameworks, such as cmake, ninja, GTest
- Experience working with Linux/UNIX and/or Windows system administration and programming
- Experience with system management and container technologies, such as Docker, Kubernetes, chef, salt
- Interest in engineering disciplines such as migrations, planning, post-mortem analysis, and system design
- Ability to critically assess and plan software changes and roll-outs
- Exposure to multiple phases of the software development life-cycle
If this sounds like something you would be passionate about, apply! We'll get in touch with you to let you know what the next steps are.
Bloomberg is an equal opportunity employer and we value diversity at our company. We do not discriminate on the basis of age, ancestry, color, gender identity or expression, genetic predisposition or carrier status, marital status, national or ethnic origin, race, religion or belief, sex, sexual orientation, sexual and other reproductive health decisions, parental or caring status, physical or mental disability, pregnancy or maternity/parental leave, protected veteran status, status as a victim of domestic violence, or any other classification protected by applicable law.
Bloomberg is a disability inclusive employer. Please let us know if you require any reasonable adjustments to be made for the recruitment process. If you would prefer to discuss this confidentially, please email email@example.com.
The referenced salary range is based on the Company's good faith belief at the time of posting. Actual compensation may vary based on factors such as geographic location, work experience, market conditions, education/training and skill level.We offer one of the most comprehensive and generous benefits plans available and offer a range of total rewards that may include merit increases, incentive compensation [Exempt roles only], paid holidays, paid time off, medical, dental, vision, short and long term disability benefits, 401(k) +match, life insurance, and various wellness programs, among others. The Company does not provide benefits directly to contingent workers/contractors and interns.
Salary Range: 160,000 - 240,000 USD Annually + Benefits + Bonus