Senior Software Engineer
Role details
Job location
Tech stack
Job description
Our purpose is to deliver energy to the world, today and tomorrow. For over 100 years, bp has focused on discovering, developing, and producing oil and gas in the nations where we operate. We are one of the few companies globally that can provide governments and customers with an integrated energy offering. Delivering our strategy sustainably is fundamental to achieving our ambition to be a net zero company by 2050 or sooner!
The bp pulse eMSP team plays a critical role in supporting BP's ambition to achieve "Net Zero by 2050". We provide the mobile application and all of the customer facing services that enable bp pulse deliver excellent EV charging solutions to customers. Our charging points have been used over 30 million times to enable around 200 million miles of zero tailpipe emission driving.
We own and run a diverse portfolio of in-house built solutions and third-party vendor systems, ensuring that bp's EV technology ecosystem remains reliable, secure, and high-performing. From integration services and payments technology to monitoring tools, operational data platforms, and core site systems, we drive efficiency and innovation across our global footprint. By building scalable solutions on global technology standards, we create seamless experiences for both customers and employees while optimizing bp pulse's operations.
As a Senior Software Engineer, you will act as a technical authority, 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 completing initiatives, and delivering results in a product-led, empowered environment. Your leadership skills, ability to handle multiple partners, and experience in software development and software engineering will be critical to your success in this role
- Design and document sophisticated software components, services, and platforms
- Implement robust and maintainable code with clear and maintained documentation
- Deliver customer value in iterative fashion while working towards longer term systems to solve roadmap goals with increasing efficiency
- Serve as a technical lead and own projects end-to-end
- Communicate status and changes to the work they are responsible and accountable for, keep all interested parties informed of changes and updates to original plan
- Design test automation on all code implemented through unit testing and integration testing
- Work with internal and external teams to bring new platforms to market
- Maintain and enhance software frameworks for development
- Serve as a technical mentor for other engineers on the team
- Participate in code reviews and supply to the development of guidelines
- Collaborate with multi-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 multi-functional teams to implement new controls and procedures to address identified compliance gaps or risks
Requirements
-
Bachelor's degree in Computer Science, Engineering, Computer Information Systems or equivalent work experience
-
Skillful in the ability to adapt to new technologies and processes, and be able to work independently and as part of a team
-
Skillful 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 your peers through to senior leaders.
-
You should be able to engage and influence others to collect requirements, describe what you're doing, work through problems, and find productive solutions
-
Self-starter, able to handle ambiguity, navigate uncertainty, identify risks, and find the right people and tools to get the job done
-
Skillful in at least one programming language (C#, Python, or TypeScript, JavaScript, React Native) developing cross-platform solutions.
-
Skillful in writing secure, stable, testable, and maintainable code with minimal defects
-
Skillful in systems design
-
Demonstrable in software development, with a focus on platform or service engineering
-
Skillful in software engineering practices & guidelines for full software development process including coding standards, code reviews, source control management, continuous deployments, testing, and operations
-
Skillful in designing and building complex software systems end-to-end which have been effectively delivered and operated in production. You should understand security and privacy guidelines as well as how to properly monitor, log, and alarm production systems
-
Skillful in building and scaling infrastructure services using Amazon Web Services or Microsoft Azure
-
Skillful in the understanding of using core cloud application infrastructure services including identity platforms, networking, storage, databases, containers, and serverless
-
Skillful in solving large-scale distributed production systems
-
Demonstrable working on production systems. You'll have supported these production systems through on-call rotations
-
Skillful knowledge of databases, such as relational, graph, document, and key-value
-
Skillful ability in data modeling and database design
-
Skillful in SQL
-
Possess a passion for mentoring and coaching engineers in both technical and soft skills
-
You have a product-centric approach that you used to understand business needs. You have the technical and social skills to collaboratively design scalable systems and engineering solutions that meet those needs
-
You employ strong senses of compassion and curiosity to build the best possible experiences for the users of your products
-
You focus on delighting customers with amazing user experiences and customer service, Agility core practices, Agility core practices, Analytics, API and platform design, Business Analysis, Cloud Platforms, Coaching, Communication, Configuration management and release, Continuous deployment and release, Data Structures and Algorithms (Inactive), Digital Project Management, Documentation and knowledge sharing, Facilitation, Information Security, iOS and Android development, Mentoring, Metrics definition and instrumentation, NoSql data modelling, Relational Data Modelling, Risk Management, Scripting, Service operations and resiliency, Software Design and Development, Source control and code management {+ 4 more}