As a core member of the bp Pulse Digital Engineering team, you will play a key role in driving our ambition to nurture an outstanding software engineering team, environment and culture, at global scale.
You will work closely with and be supported by HO Digital Engineering and Engineering Leads to lead, motivate and develop the capabilities of your team to support our aggressive goals and expansion into new regions.
The scale we operate at presents some unique challenges and requires us to push for exceptionally high-quality work by motivating and empowering engineers to make an impact. You’ll foster an environment where this is valued and recognised.
You will work closely with your peers who are technical leaders in Digital, Hardware, Architecture, Delivery, QA and Security to ensure the delivery of secure and scalable software using good practice, through transparent leadership, mentorship and guidance for your team.
Key Responsibilities & Tasks
- Building successful teams – nurture and protect a fun, trusting, rewarding and innovative culture within your team that lives and breathes the bp values. Create and sustain the environment where your team can be successful, even if they are a mix of permanent and contract / consulting staff. Support your team in maintaining and improving a highly collaborative product engineering focus where autonomy, mastery and purpose are at the forefront.
- Software engineering – model the attitude and behaviour of a Tech Lead you want to work with. Focus on clean, readable, maintainable code, ensuring domain knowledge, business rules and persistence needs are all explicit. Help your team use tests to guide everything they do.
- Emergent design – reflect on the team’s designs and help them constantly seek out opportunities to improve them through refactoring, in both pairing and group contexts. Help team members defer decisions which are not crucial now, and coach them to identify when the responsible moment will come. Use software design patterns to aid design conversations and share ideas.
- Delivering and running your systems – search out ways to optimise deployment steps and to use deployment automation tools for the benefit of the whole team. Ensure your team is able to comfortably support their systems running in production. Help them spot errors and failures, diagnose root causes, replicate them in non-prod environments, and deliver the relevant changes to restore a stable service.
- Technical decision making – provide nuanced insight into factors that influence technical decisions and can recognize when extra effort is worthwhile in setting precedent, comparing drastically different alternatives, and locking in further complimentary decisions. Help the team make decisions appropriately within the context of the larger architectural vision and technical strategy.
- Evolutionary architecture – help the team break down the most complex features into smaller incremental and testable pieces. Guide your team toward architectural choices that retain ‘degrees of freedom’ allowing your systems to evolve in the future. Continuously monitor for the ‘last responsible moment’ for architectural decisions, bringing forward any decisions that are risky. Establish architectural fitness functions that provide feedback to your team. Know where your team and their services fit within the bigger, pulse-wide platform and supporting ecosystem.
- Bias to action – redirect activity on plans that aren’t working. Initiate action based on available information and make decisions appropriately without having the total picture or when complete information is unavailable. Take calculated risks when limited information is available and maintain focus in high-change and complex work environments.
- Continuous improvement – constantly keep half an eye on optimise your software, tools, and practices for flow and feedback.
- Cross-discipline collaboration – work closely with your product, digital engineering and platform architecture peers to ensure your systems scale, perform and remain decoupled, complementing the broader technical vision for the company.
- Distributed working – proactively establish a shared understanding about the who, what, when, where and why of work to be done and keep your team accountable and aligned towards goals. Structure and operate your distributed team to achieve a high degree of transparency and accountability.
- Delegation – delegate in a way that builds capability within your team, improving the quality of the outcome by drawing on everyone’s strengths and abilities.
- Giving and receiving feedback – provide regular, goal-specific feedback and are able to identify and overcome barriers to giving and receiving effective feedback.
- Coaching – consistently grow / develop the skills and improve the performance of individuals on your team. Establish strong relationships and trust quickly with individuals across all levels.
- Performance Management – ensure clarity by setting expectations. Communicate with all your team members frequently and openly, adjusting as goals and objectives change.
Knowledge & Experience
- Degree qualified in Software Engineering, Computer Science, or similar relevant field desirable (preferred) plus at least 5 years’ experience in a comparable IT leadership role.
- Self-starter mentality with drive and motivation whilst also being an exceptional communicator who works well within a multidisciplinary senior leadership team, bringing non-technical colleagues with them on a collaborative journey. Positive personality, with an energetic, empowering leadership style. Passionate about continuous improvement, process efficiency and people empowerment.
- Proven track record of performing in high-intensity environments, operating within tight financial resources and meeting challenging deadlines while keeping the health of teams in mind.
- Solid track record of addressing customer needs through innovative use of technology – both hardware and software. Use language and framework features (at least one of Golang / Ruby) appropriately to create robust and extensible code for more complex domains and business rules. Understand framework features and trade-offs as well as the use-cases of different data stores and can choose the appropriate one for a given architecture.
- A lean approach with an emphasis on value, experimentation and continual improvement. Prioritise team problem-solving rather than problem-identification and can tackle problems and conflict head-on and make the best use of the team’s diverse talents and resources to achieve outcomes. Pair with your team’s Product Owner to provide a bridge for your team between technical and business worlds.
- Knowledge and appreciation of cloud services (ideally Amazon Web Services / Kubernetes), web standards, and IoT devices as well as (ideally) electronic vehicle charging and associated open standards (e.g. OCPP, OCPI, etc). Proven experience in delivering and running software systems as well as joint projects with partners and 3rd party suppliers.
Why Join our team?At bp, we provide an excellent working environment and employee benefits such as an open and inclusive culture, a great work-life balance, tremendous learning and development opportunities to craft your career path, life and health insurance, medical care package and many others.We support our people to learn and grow in a diverse and exciting environment. We believe that our team is strengthened by diversity. We are committed to crafting an inclusive environment in which everyone is respected and treated fairly.There are many aspects of our employees’ lives that are significant, so we offer benefits to enable your work to fit with your life. These benefits can include flexible working options, collaboration spaces in a modern office environment, and others benefits.Reinvent your career as you help our business meet the challenges of the future.
Apply now!
Travel Requirement
No travel is expected with this role.
Entity:
Customers & Products
Job Family Group:
IT&S Group
Job Description:
Senior Software Engineer/Technical Lead
#J-18808-Ljbffr…