# Software Engineer
**Role:** Software Engineer · **Level:** I
**Company:** [BP](https://scaleengineer.com/companies/bp)
**Difficulty:** Medium
**Salary:** US$85000 - US$110000
**Experience:** 1 - 3
**Timeline:** ~14 days
This interview process is for a Software Engineer (Level I) position at BP. It is designed to assess a candidate's technical skills, problem-solving abilities, and cultural fit within the company.
Canonical: https://scaleengineer.com/interviews/bp/i-software-engineer
---
## Overall evaluation

- Technical Skills
- Behavioral and Cultural Fit
- Problem Solving Approach

## Questions asked

- Write a function to reverse a linked list.
- Given an array of integers, find the two numbers that add up to a specific target.
- Explain the difference between a process and a thread.
- Describe a situation where you had to work under a tight deadline.
- How would you design a URL shortening service?
- What are your strengths and weaknesses?
- Tell me about a time you disagreed with a team member.

## Preparation tips

### lists

- Review fundamental computer science concepts: data structures, algorithms, operating systems, databases.
- Practice coding problems on platforms like LeetCode, HackerRank, or similar.
- Understand BP's business and its role in the energy sector.
- Prepare to discuss your past projects and experiences in detail, focusing on your contributions and learnings.
- Research common behavioral interview questions and prepare STAR method (Situation, Task, Action, Result) answers.
- Familiarize yourself with the technologies commonly used at BP (e.g., Java, Python, C++, cloud platforms like Azure/AWS).

### studyPlan

- {"title":"Data Structures and Algorithms","longDescription":"Weeks 1-2: Focus on core data structures (arrays, linked lists, trees, graphs, hash tables) and algorithms (sorting, searching, dynamic programming, graph traversal). Practice implementing these in your preferred language. Understand time and space complexity (Big O notation).","shortDescription":"Weeks 1-2: Data Structures & Algorithms fundamentals. Practice implementation and complexity analysis."}
- {"title":"Core Computer Science Concepts","longDescription":"Week 3: Deep dive into object-oriented programming (OOP) principles, design patterns, and system design concepts. Consider scalability, reliability, and maintainability. Review database concepts (SQL/NoSQL) and operating system basics.","shortDescription":"Week 3: OOP, Design Patterns, System Design basics, Databases, OS fundamentals."}
- {"title":"Behavioral and Company Research","longDescription":"Week 4: Prepare for behavioral questions. Reflect on your past experiences using the STAR method. Research BP's values, mission, and recent projects. Practice articulating your career goals and why you are interested in BP.","shortDescription":"Week 4: Behavioral questions (STAR method), BP research, career goals."}

## Location differences

- {"location":"London","differences":{"tips":["Highlight experiences where you successfully navigated ambiguity.","Provide specific examples of effective communication with diverse teams.","Emphasize your ability to deliver under pressure."],"interviewFocus":["Adaptability and resilience in project execution.","Stakeholder management and communication.","Time management and prioritization skills."],"commonQuestions":["Tell me about a time you had to deal with a difficult stakeholder.","Describe a project where you had to adapt to changing requirements.","How do you prioritize your work when faced with multiple deadlines?"]}}
- {"location":"Houston","differences":{"tips":["Be prepared to discuss your technical projects in detail, including the technologies used and challenges faced.","Showcase your passion for technology and continuous learning.","Articulate your understanding of cloud technologies and their benefits."],"interviewFocus":["Depth of technical knowledge and problem-solving.","Proactiveness in learning and skill development.","Understanding of modern software development paradigms."],"commonQuestions":["Describe a challenging technical problem you solved and your approach.","How do you stay updated with the latest technologies?","What are your thoughts on cloud computing and its impact on software development?"]}}

## Round 1: Technical Coding Round
**Type:** Technical Screening (Coding) · **Difficulty:** Medium · **Duration:** 45 min
Assess fundamental coding skills and problem-solving with data structures and algorithms.
This is typically the first technical screening round. It focuses on fundamental data structures and algorithms. You will be asked to solve one or two coding problems, usually on a shared online editor. The interviewer will assess your ability to understand the problem, devise an efficient solution, write clean code, and explain your approach.
**Interviewers look for:** Strong grasp of data structures and algorithms.; Logical thinking and systematic problem-solving.; Ability to translate a problem into code.; Clear communication of technical concepts.
**Evaluation criteria:** Correctness of the solution.; Efficiency of the algorithm (time and space complexity).; Code quality and readability.; Ability to explain the solution and trade-offs.
**Common rejection reasons:** Inability to articulate thought process clearly.; Lack of fundamental programming knowledge.; Poor problem-solving approach.; Inability to write clean, working code.
## Questions

- Implement a function to find the kth smallest element in an unsorted array.
- Given a binary tree, determine if it is a valid Binary Search Tree.

## Preparation tips

- Practice coding problems extensively.
- Be prepared to explain your thought process step-by-step.
- Test your code with edge cases.
- Ask clarifying questions if the problem statement is unclear.

## Round 2: System Design Round
**Type:** System Design · **Difficulty:** Hard · **Duration:** 60 min
Assess ability to design scalable and robust software systems.
This round evaluates your ability to design software systems. You'll be given a broad problem (e.g., design a social media feed, a URL shortener, a distributed cache) and expected to discuss various aspects like data modeling, API design, scalability, fault tolerance, and performance. This is more about your approach and understanding of trade-offs than a single correct answer.
**Interviewers look for:** Ability to think about high-level system architecture.; Understanding of scalability, availability, and performance.; Knowledge of common system design patterns and technologies.; Ability to justify design decisions.
**Evaluation criteria:** Understanding of distributed systems concepts.; Ability to design scalable and reliable systems.; Knowledge of trade-offs between different design choices.; Clarity and structure in presenting the design.
**Common rejection reasons:** Lack of understanding of system design principles.; Inability to handle scale and performance considerations.; Poor trade-off analysis.; Difficulty in communicating complex system designs.
## Questions

- Design a system like Twitter's news feed.
- How would you design a rate limiter?

## Preparation tips

- Study common system design patterns (e.g., load balancing, caching, database sharding).
- Read about scalable architectures and distributed systems.
- Practice designing systems and articulating your choices.
- Consider different components like databases, caches, message queues, and load balancers.

## Round 3: Behavioral and Managerial Round
**Type:** Behavioral Interview · **Difficulty:** Medium · **Duration:** 45 min
Assess behavioral competencies, teamwork, and cultural fit.
This round focuses on your behavioral competencies and cultural fit. You'll be asked questions about your past experiences, how you handle specific situations (teamwork, conflict, challenges), and your motivations. The interviewer wants to understand how you work, learn, and contribute to a team environment.
**Interviewers look for:** Evidence of collaboration and teamwork.; Examples of leadership and initiative.; Resilience and ability to handle challenges.; Cultural fit and alignment with BP's values.; Passion for software engineering and BP's mission.
**Evaluation criteria:** Communication clarity and conciseness.; Examples demonstrating teamwork and collaboration.; Problem-solving and decision-making in past situations.; Alignment with BP's core values (e.g., safety, integrity, respect).; Motivation and enthusiasm for the role and company.
**Common rejection reasons:** Poor communication skills.; Lack of self-awareness.; Inability to provide specific examples.; Not aligning with BP's values or culture.
## Questions

- Tell me about a time you failed and what you learned from it.
- Describe a situation where you had to influence a decision.
- How do you handle constructive criticism?

## Preparation tips

- Prepare specific examples using the STAR method.
- Understand BP's company culture and values.
- Be ready to discuss your career aspirations and why you're interested in BP.
- Show enthusiasm and genuine interest in the role.
