Technology and software specialists providing innovative, custom built or customized software and technical platforms to BP colleagues and external users. Primary activities will be in the development, customization, testing and support of IT applications and platforms, as well as contribution to technical designs. You will develop and test software with a focus on software defined infrastructure, creating automated processes for the software manufacturing lifecycle which may be full CI/CD pipelines or sub-components for build and deployment depending on the platform technology in use.
You will be part of bp’s Data & Analytics Platform organisation, the group responsible for the platforms and services that underpin bp’s data supply chain. The portfolio covers technologies that support the life cycle of critical data products in bp, bringing together data producers and consumers through enablement and industrial scale operations of data ingestion, processing, storage and publishing, including data visualisation, advanced analytics, data science and data discovery platforms.
For this role specifically, you will be a part of the Knowledge & Data Stores team, focused on knowledge discovery and search. This is an exciting opportunity to innovate and reimagine how we share knowledge with our employees and enable greater levels of productivity. This will involve designing and delivering the necessary knowledge platform to collect and process unstructured data in order to provide visibility and insights to our end users. The ultimate objective is to create a knowledge sharing system which would allow easy federation of multiple existing knowledge sources, without having to rebuild them.
- Design and implement elegant, robust, and scalable solutions for bp.
- Proactively collaborate with product owner and other teams in the organization to prototype and research technologies for enterprise e-commerce software
- Mentor and provide guidance and direction to developers about potential solutions, technologies, and best practices
- Be technically proactive, influencing the team with innovative and creative ideas
- Be an active member of self-empowered Scrum teams producing software using Agile principles and engineering-driven decisions
- Have the flexibility to adapt to technologies and change directions quickly
- Write clean, tested, efficient code that fits well with high standards and quality requirements that will be reviewed regularly by teammates
- Perform and participate in peer code reviews
- Operate as the technical leader of their immediate squad. They influence and shape the squad’s direction and take direct leadership over larger projects, including division of work across multiple software engineers.
- Focus on complex and ambiguous problems across their squad’s entire architecture and take a long-term view on how to evolve their system(s).
- Make the right trade-offs while making the system simpler and easier to operate over time.
- Understand the business implications of their squad’s work and use that to make better technical decisions.
- Set the standard in their squad by being exemplary in quality, inventiveness, maintainability, scalability, and extensibility.
- Resolve disagreements by finding the best path forward.
- Bachelor's (or higher) degree, preferably in Computer Science, MIS/IT, Mathematics or a hard science.
REQUIRED EXPERIENCE AND COMPETENCIES
- 8-12 years, with a minimum of 5-7 years of relevant experience.
- Full-stack experience - AngularJS and NodeJS
- Willingness and ability to learn at least one more programming language on top of your existing skillset
- Growing understanding of the software development lifecycle, including design, security, design patterns for extensible and reliable code, automated unit and functional testing, CI/CD and telemetry
- Understanding of modern technologies like Cloud native, containers, serverless
- Deep understanding of Knowledge Management lifecycle.
- Hands-on experience designing, planning, implementing, maintaining and documenting reliable and scalable data infrastructure and data products in complex environments.
- Extensive experience in handling/extracting information from unstructured content.
- Expertise on Microsoft’s Azure platform – working experience on the advanced cognitive services.
- Development experience in one or more object-oriented programming languages (e.g. Python, Go, Java, C++, .NET)
- Experience designing and implementing large-scale distributed systems
- Exposure to adjacent domains such as platforms, storage, databases, etc.
- Good knowledge and understanding of modern development methodologies (Agile using Scrum and/or Kanban)
- Strong stakeholder management and ability to lead difficult conversations.
- Continuous learning and improvement mindset
- Monitoring and telemetry tools