Repsol · Software Engineer
Updated · 2026-10-02

Repsol Software Engineer
Interview Guide

THE 60-SECOND BRIEF

As a Software Engineer at Repsol, you are at the intersection of traditional energy operations and cutting-edge digital transformation. You are not just writing code; you are building the systems that optimize energy production, enhance safety protocols, and drive the company’s transition toward a more sustainable and efficient future. Your work directly impacts the scalability and reliability of critical infrastructure, including SCADA systems and complex data processing pipelines that manage global energy assets. The role demands a unique balance of technical rigor and industrial awareness. You will be expected to design and implement solutions that are robust enough to withstand the demanding environments of the energy sector while remaining agile enough to support a rapidly evolving digital ecosystem.

This guide is scoped to a Software Engineer candidate at Repsol.

Repsol candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.

English language proficiencyQuality Assurance (QA)Quality Control (QC)

23 min read

Browse Software Engineer questions

See the practice prompts

20Practice promptsAcross five skill areas

As a Software Engineer at Repsol, you are at the intersection of traditional energy operations and cutting-edge digital transformation. You are not just writing code; you are building the systems that optimize energy production, enhance safety protocols, and drive the company’s transition toward a more sustainable and efficient future. Your work directly impacts the scalability and reliability of critical infrastructure, including SCADA systems and complex data processing pipelines that manage global energy assets. The role demands a unique balance of technical rigor and industrial awareness. You will be expected to design and implement solutions that are robust enough to withstand the demanding environments of the energy sector while remaining agile enough to support a rapidly evolving digital ecosystem. Whether you are working on cost control screens, technical equipment manuals, or large-scale data integrations, your contributions are vital to maintaining Repsol’s competitive edge in a global market. ##### Tip The energy sector is highly regulated and safety-conscious. Your engineering solutions must prioritize reliability, documentation, and compliance with company policies as much as they do speed or innovation.

01

Recruiter Call

reported

Initial call with a recruiter to discuss the candidate's background and role fit.

What to demonstrate

  • Initial call with a recruiter to discuss the candidate's background and role fit
  • Depth in English language proficiency

How to prepare

  • Be able to walk your CV end to end in two minutes, and say why this company specifically.
  • Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.
Repsol Software Engineer candidate reports ↗
02

Standardized Testing

reported

Candidates undergo testing that may include logical reasoning, personality assessments, and English language proficiency.

What to demonstrate

  • Candidates undergo testing that may include logical reasoning, personality assessments, and English language proficiency
  • Depth in English language proficiency

How to prepare

  • Answer aloud and timed: How do you ensure your code meets the quality assurance and safety standards required in a high-stakes environment?
  • Answer aloud and timed: Can you describe your process for handling cost control and data management in a large-scale project?
Repsol Software Engineer candidate reports ↗
03

Group Dynamics/Case Study

reported

Participation in group dynamics or case-study simulations to evaluate teamwork and problem-solving skills.

What to demonstrate

  • Participation in group dynamics or case-study simulations to evaluate teamwork and problem-solving skills
  • Depth in English language proficiency

How to prepare

  • Answer aloud and timed: How do you balance the need for rapid deployment with the necessity of rigorous documentation?
  • Answer aloud and timed: Why are you interested in a career specifically within the energy and gas sector?
Repsol Software Engineer candidate reports ↗
04

Technical Interviews

reported

Interviews with hiring managers and department leads focusing on technical skills and knowledge.

What to demonstrate

  • Interviews with hiring managers and department leads focusing on technical skills and knowledge
  • Depth in English language proficiency

How to prepare

  • Answer aloud and timed: Describe a time you had to explain a complex technical issue to a non-technical stakeholder.
  • Answer aloud and timed: How do you handle disagreements within a team regarding technical architecture or design choices?
Repsol Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Prioritize Language Skills

Since we are a global company, your English proficiency—both written and spoken—is critical. Practice explaining technical concepts in English.

02

Understand the Group Dynamics

If you participate in a group interview, remember that we are looking for collaboration, not just individual brilliance. Listen to others and build on their ideas.

03

Prepare for Behavioral Questions

Use the STAR method (Situation, Task, Action, Result) to structure your answers for all behavioral and situational questions.

04

Be Ready for Follow-ups

Our interviewers often use a "rapid-fire" approach where they ask follow-up questions to test the depth of your knowledge. Don't be discouraged; this is a sign they are interested in your process.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

13 technical prompts0 include a worked solution

Diff a projection against the primary without per-row point reads

hard
reconciliationrange hashingthrottling

The listing projection has drifted and some rows show a stale version. The primary holds 40,000,000 resource rows across 12,000 tenants while serving 1,200 writes and 14,000 reads per second. The obvious repair, reading each resource row and comparing its version against the projection, is correct and would eventually finish. Explain precisely why it is unacceptable here, then give a diff that finds the differing rows, state its complexity, and make it safe to run against a live primary. Replication lag is usually under 100 ms and is not bounded.

Approach
  1. Quantify the naive cost rather than calling it slow: 40,000,000 point reads at even 0.5 ms each is over five hours serialised, and the only lever is concurrency, which is exactly what you cannot spend. The primary's pool is sized for the write path, and 40,000,000 random reads evict the buffer cache that sustains the 85 percent cache hit rate, so the audit degrades the system it is auditing.
  2. Replace random access with one ordered pass per side. Both sides can be read in (tenant_id, resource_id) order, which is a sequential scan on each and a merge join in O(n) time and O(1) memory. For a dense diff that is the whole answer, and it reads the primary once instead of 40,000,000 times.
  3. For the expected sparse case, compare range hashes instead of rows: partition the key space, compute per range an order-independent aggregate over hash(resource_id, version), compare aggregates, and descend only into ranges that differ. With d differing rows and branching factor B, at most d ranges mismatch per level, so the drill-down examines O(d log_B(n/d)) ranges and reads full rows only in mismatching leaves.
  4. Aggregate with a sum modulo 2^64 or a multiset hash, never XOR. XOR is order-independent but self-cancelling, so two rows wrong in the same way, or a row duplicated on one side, leave the range aggregate matching and the range is declared clean.
Follow-up
  • The diff reports 900 stale rows. How do you decide between patching those rows and rebuilding the projection from resource_revision?
  • Same job, but the projection lives in a search index that cannot be scanned in key order. What changes?

Canonicalise a request body into a stable idempotency fingerprint

medium
parsingcanonicalisationhashing

idempotency_key.request_fingerprint is a SHA-256 over the method, path and canonicalised body, and a retry whose fingerprint differs must be rejected with 422 rather than served the stored response. Write the canonicaliser. Bodies are JSON up to 256 KB nested at most 32 levels; clients vary key order, whitespace and unicode escaping, and some send 64-bit ids as JSON numbers. Produce a deterministic byte string such that semantically identical bodies match and any semantic difference does not. State your complexity and name two normalisations you refuse to perform.

Approach
  1. Parse once into a tree, then re-serialise under fixed rules: object keys sorted, array order preserved, one escaping convention, no insignificant whitespace. Parsing is O(n) and sorting keys is O(k log k) per object, so O(n log n) overall with O(depth) stack, and the 32-level cap is enforced during parsing because hostile nesting is how a canonicaliser becomes a stack overflow.
  2. Sort keys by their UTF-8 bytes and say why the obvious implementation is wrong in some runtimes: a default string comparison that orders by UTF-16 code units places surrogate pairs, meaning code points from U+10000 up, below U+E000 to U+FFFF, which is not UTF-8 byte order, so two services written in different languages disagree on the same document.
  3. Do not re-encode numbers through a double. IEEE-754 binary64 represents integers exactly only up to 2^53, so normalising a 19-digit id through a float changes it, and 1 against 1.0 cannot be reconciled without deciding whether they are the same value. Preserve the literal token, and require ids as strings at the API boundary if you want them comparable.
  4. Reject duplicate keys rather than picking one. JSON permits them and parsers disagree, most keeping the last, so any choice you make ties the fingerprint to a parser detail that the code handling the request does not necessarily share.
Follow-up
  • A client sends the same logical request with an extra field your API ignores. Same key, different fingerprint, so you return 422. Is that the right answer?
  • Where does the fingerprint get computed relative to request decompression and the body-size limit?

Identify the heaviest tenants in a five-minute window under memory pressure

medium
top-kheavy hittersstreaming

The edge service handles about 3,000 requests per second across roughly 50,000 tenants, peaking near 9,000. Expose the 50 heaviest tenants by request count over the trailing five minutes so limits can be tightened before one tenant's backfill starves the fleet. You may not retain five minutes of raw records. Give the exact solution and its memory, then the bounded-memory approximation with its error stated as a formula, and say which you would ship and at what tenant cardinality that choice changes.

Approach
  1. Do the exact version first, because it is affordable at this cardinality: a ring of 300 one-second counters per tenant, advanced lazily, is 1,200 bytes of counters per tenant and roughly 60 to 90 MB for 50,000 tenants with overhead. Carry a running total and subtract the bucket you overwrite so a window read is O(1) rather than 300 adds.
  2. Extract the top 50 with a size-k min-heap over the tenant sums: O(d log k) for d tenants, against O(d log d) to sort them all. Maintaining the heap continuously instead of on query requires a tenant-to-heap-index map, because incrementing a count already inside the heap means sifting from a known position, and without that map you rebuild the heap on every request.
  3. State the approximation precisely rather than gesturing at sketches. Misra-Gries with m counters retains every item whose true count exceeds N/(m+1), and each retained count underestimates the truth by at most N/(m+1). With m = 1,000 and N = 900,000 requests in the window the error is roughly 900 requests, which is fine for spotting a tenant sending 50,000 and useless for ranking two tenants 200 apart.
  4. Say what breaks when the window slides: Misra-Gries and Space-Saving are insert-only and cannot be decremented as records age out. The workable construction is one summary per sub-window, say ten seconds, with 30 summaries merged at query time, and the merged error is the sum of the per-summary errors, so the bound degrades linearly in the number of sub-windows.
Follow-up
  • The heaviest tenant is heavy because of one export job rather than user traffic. Should the limiter treat those as the same tenant?
  • Two tenants sit tied at the boundary of the top 50. Does your answer flap, and does the flapping matter?

Built from the rounds and topics Repsol candidates report.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Map the Repsol loop
  • Write out the reported sequence: Recruiter Call, Standardized Testing, Group Dynamics/Case Study, Technical Interviews.
  • For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.

Deliverable: A one-page map of the 4 reported rounds, with the weakest marked.

02Work English language proficiency
  • Spend the session on English language proficiency, which Repsol candidates report being tested on.
  • Write one worked example in English language proficiency and time yourself on it.

Deliverable: One timed worked example in English language proficiency.

03Work Quality Assurance (QA)
  • Spend the session on Quality Assurance (QA), which Repsol candidates report being tested on.
  • Write one worked example in Quality Assurance (QA) and time yourself on it.

Deliverable: One timed worked example in Quality Assurance (QA).

04Work Quality Control (QC)
  • Spend the session on Quality Control (QC), which Repsol candidates report being tested on.
  • Write one worked example in Quality Control (QC) and time yourself on it.

Deliverable: One timed worked example in Quality Control (QC).

05Answer out loud: Technical and Domain Proficiency
  • Answer aloud, timed: How would you approach a situation where you need to integrate new software with legacy technical equipment?
  • Answer aloud, timed: Explain your experience with SCADA systems or similar industrial automation technologies.

Deliverable: Spoken answers to 2 reported Technical and Domain Proficiency question(s), under time.

06Answer out loud: Behavioral and Leadership
  • Answer aloud, timed: Why are you interested in a career specifically within the energy and gas sector?
  • Answer aloud, timed: Describe a time you had to explain a complex technical issue to a non-technical stakeholder.

Deliverable: Spoken answers to 2 reported Behavioral and Leadership question(s), under time.

07Answer out loud: Problem-Solving and Logic
  • Answer aloud, timed: Walk us through your problem-solving methodology when you encounter a critical system failure.
  • Answer aloud, timed: How do you prioritize tasks when faced with conflicting deadlines?

Deliverable: Spoken answers to 2 reported Problem-Solving and Logic question(s), under time.

Expand any day for tasks and deliverables. Your progress is saved on this device.

Behavioural rounds judge the decision you made and what it cost.

Explain your experience with SCADA systems or similar industrial automation technologies.

medium
Technical and Domain Proficiency

Explain your experience with SCADA systems or similar industrial automation technologies.

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Why are you interested in a career specifically within the energy and gas sector?

medium
Behavioral and Leadership

Why are you interested in a career specifically within the energy and gas sector?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Describe a time you had to explain a complex technical issue to a non-technical stakeholder.

medium
Behavioral and Leadership

Describe a time you had to explain a complex technical issue to a non-technical stakeholder.

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

How do you handle disagreements within a team regarding technical architecture or design choices?

medium
Behavioral and Leadership

How do you handle disagreements within a team regarding technical architecture or design choices?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Tell us about a time you had to adapt to a major change in project requirements.

medium
Behavioral and Leadership

Tell us about a time you had to adapt to a major change in project requirements.

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

How do you contribute to a culture of safety and collaboration within your engineering team?

medium
Behavioral and Leadership

How do you contribute to a culture of safety and collaboration within your engineering team?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

How do you prioritize tasks when faced with conflicting deadlines?

medium
Problem-Solving and Logic

How do you prioritize tasks when faced with conflicting deadlines?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.
Follow-up
  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?
  • 01

    Explain your experience with SCADA systems or similar industrial automation technologies.

  • 02

    Why are you interested in a career specifically within the energy and gas sector?

  • 03

    Describe a time you had to explain a complex technical issue to a non-technical stakeholder.

  • 04

    How do you handle disagreements within a team regarding technical architecture or design choices?

PracHub preparation framework ↗
How long does the hiring process typically take?

The process can vary significantly depending on the department and location, ranging from a few weeks to several months. We value thoroughness, so please be patient and maintain open lines of communication with your recruiter.

Repsol Software Engineer candidate reports ↗
What is the most important thing to prepare for?

Be ready to explain your technical decisions clearly. We are less interested in memorized answers and more interested in how you think, how you handle ambiguity, and how you prioritize safety and quality.

Repsol Software Engineer candidate reports ↗
How can I stand out as a candidate?

Demonstrate a genuine interest in the energy industry and an understanding of the challenges we face. Candidates who show they have researched our recent projects and are aligned with our sustainability goals tend to perform very well.

Repsol Software Engineer candidate reports ↗
Is the interview process mostly technical?

It is a mix. While technical proficiency is a prerequisite, our hiring managers place a high value on your ability to work within a team, communicate effectively, and align with our corporate values.

Repsol Software Engineer candidate reports ↗
What topics does Repsol test in interviews?

Repsol interviews most often cover Problem Solving, Stakeholder Communication, Data Analysis, Communication Skills, and Business Analysis. The exact emphasis depends on the specific role you apply for.

Repsol Software Engineer candidate reports ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.