Staff Software Engineer
bp
About the Role
bp PLC is seeking a highly skilled Staff Software Engineer to drive the design, development, and deployment of robust software solutions, fostering a culture of technical excellence and continuous improvement within our engineering teams.
As a Staff Software Engineer, you will act as a technical expert, mentor, and coach, providing guidance and support to your team, while fostering a positive and productive work environment. You will also be responsible for setting project and squad goals, prioritizing and executing on initiatives, and delivering results in a product-led, empowered environment.
Key Responsibilities
- Design sophisticated software components, services, and platforms.
- Write design documents and review them with software engineering and architecture peers, incorporating and quickly iterating on feedback.
- Lead the delivery of projects to production, following best practices including writing high quality code, developing unit, functional, and performance tests, and creating end-to-end deployment pipelines.
- Integrate software with other distributed systems and shared APIs across bp.
- Work closely with partner teams to help evolve their systems to make services more re-usable and resilient.
- Partner closely with multi-functional teams including product management, data science, and UX design.
- Stay up-to-date with the latest technologies and industry trends.
- Hire and develop others by mentoring junior software engineers and peers, and proactively sharing expertise and interests.
- Participate in code reviews and contribute to the development of best practices.
- Collaborate with cross-functional teams to identify and resolve platform-related issues.
- Support internal and external audit teams to prepare for and participate in security, software licensing, and regulatory audits, ensuring that all necessary documentation and evidence is available and accurate.
- Collaborate with cross-functional teams to implement new controls and procedures to address identified compliance gaps or risks.
Requirements & Tech Stack
- Technical Skills:
- Mastery in problem-solving, with the ability to analyze complex problems, identify root causes, and develop creative and effective solutions.
- Excellent communication skills and ability to communicate with peers through to senior leaders.
- Self-starter, able to handle ambiguity, navigate uncertainty, identify risks, and find the right people and tools to get the job done.
- Software Skills:
- Mastery in at least one programming language (C#, Python, or TypeScript) for developing cross-platform solutions.
- Mastery in writing secure, stable, testable, and maintainable code with minimal defects.
- Mastery in systems design.
- Demonstrable experience in software development, with a focus on platform or service engineering.
- Mastery in software engineering practices & best practices for full software development life cycle, including coding standards, code reviews, source control management, continuous deployments, testing, and operations.
- Mastery in designing and building complex software systems end-to-end that have been optimally delivered and operated in production.
- Understanding of security and privacy best practices as well as how to properly monitor, log, and alarm production systems.
- Infrastructure Skills:
- Mastery in building and scaling infrastructure services using Amazon Web Services or Microsoft Azure.
- Mastery in the understanding of using core cloud application infrastructure services including identity platforms, networking, storage, databases, containers, and serverless.
- Mastery in troubleshooting large-scale distributed production systems.
- Demonstrable experience working on production systems, including supporting these systems through on-call rotations.
- Database Skills:
- Competent knowledge of databases, such as relational, graph, document, and key-value.
- Mastery in data modeling and database design.
- Mastery in SQL.
- Skills That Set You Apart:
- Passion for mentoring and coaching engineers in both technical and soft skills.
- Product-centric mindset to understand business needs.
- Technical and interpersonal skills to collaboratively design scalable systems and engineering solutions.
- Strong empathy and curiosity to build the best possible experiences for users.
- Focus on delighting customers with amazing user experiences and customer service.
Qualifications
- Bachelor’s degree in Computer Science, Engineering, Computer Information Systems or equivalent work experience.
- Ability to adapt to new technologies and processes, and be able to work independently and as part of a team.


