Our client is the central organization for all software and platform development. It builds all the technology that powers the client’s businesses, from upstream energy production to downstream energy delivery to our customers. It has a variety of teams depending on your areas of interest, including infrastructure and backend services through to customer-facing web and native applications. The client encourages the teams to adapt quickly by using native AWS and Azure services, including serverless, and enable them to pick the best technology for a given problem. This is meant to empower our software and platform engineers while allowing them to learn and develop.
Responsibilities
Part of a cross-disciplinary team, working closely with other data engineers, software engineers, data scientists, data managers and business partners.
Architects, design, implement, and maintain a reliable and scalable data infrastructure to move, process, and serve data.
Writes, deploys and maintains software to build, integrate, manage, maintain, and quality-assure data at bp.
Adheres to and advocates for software engineering standard methodologies (e.g. technical design, technical design review, unit testing, monitoring & alerting, checking in code, code review, documentation)
Responsible for deploying secure and well-tested software that meets privacy and compliance requirements; develops, maintains, and improves CI / CD pipeline.
Responsible for service reliability and following site-reliability engineering best practices: on-call rotations for services they maintain, responsible for defining and maintaining SLAs. Design, build, deploy and maintain infrastructure as code.
Containerizes server deployments. Actively contributes to improve developer velocity. Mentors others.
Qualifications:
BS degree or equivalent experience in computer science or related field
Deep and hands-on experience designing, planning, building, productionizing, maintaining and documenting reliable and scalable data infrastructure and data products in complex environments
Development experience in one or more object-oriented programming languages (e.g. Python, Scala, Java, C#)
Sophisticated database and SQL knowledge
Experience designing and implementing large-scale distributed data systems Deep knowledge and hands-on experience in technologies across all data lifecycle stages
Strong stakeholder management and ability to lead initiatives through technical influence