cswork / libraryOpen practice workspace

Interview guides · Wise. Energy

Wise. Energy Software Engineer Interview Guide

Wise. Energy Software Engineer interview guide: reported rounds, questions and how candidates describe the process.

The 60-second brief

Wise. Energy hires Software Engineers; this guide collects what candidates report about the process.

This guide is scoped to a Software Engineer candidate at Wise. Energy.

Focus areas

  • Algorithms
  • SQL
  • Data Structures

The Wise. Energy interview process

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

Application Screening

Initial review of applications to assess candidate qualifications.

What to demonstrate

  • Initial review of applications to assess candidate qualifications
  • Depth in Algorithms

How to prepare

  • Answer aloud and timed: Implement a sliding window algorithm to find the maximum sum of a contiguous subarray of size K.
  • Answer aloud and timed: Write a program to parse a large file containing transaction logs and aggregate the total volume processed per currency.

Automated Assessment

Includes a timed technical test on HackerRank and a cognitive/cultural assessment on Maki.

What to demonstrate

  • Includes a timed technical test on HackerRank and a cognitive/cultural assessment on Maki
  • Depth in Algorithms

How to prepare

  • Answer aloud and timed: Design and implement a basic Tic-Tac-Toe game engine, ensuring clean object-oriented design and validation of win conditions.
  • Answer aloud and timed: Write a function that calls a paginated REST API endpoint, filters the results based on specific criteria, and returns the aggregated data.

Live Virtual Interviews

Interviews with the engineering team focusing on collaborative coding, system design, and product engineering fit.

What to demonstrate

  • Interviews with the engineering team focusing on collaborative coding, system design, and product engineering fit
  • Depth in Algorithms

How to prepare

  • Answer aloud and timed: Implement an algorithm to find the shortest path in a currency conversion graph using a Breadth-First Search (BFS) approach.
  • Answer aloud and timed: Design a highly scalable rate limiter that can handle millions of requests per minute across multiple regions.

Final Offer Stage

Discussion of the final offer after successful completion of previous steps.

What to demonstrate

  • Discussion of the final offer after successful completion of previous steps
  • Depth in Algorithms

How to prepare

  • Answer aloud and timed: How would you design a real-time client support chat widget and distribute it efficiently to millions of client applications?
  • Answer aloud and timed: Describe how you would implement a resilient Circuit Breaker pattern for an HTTP client calling an unreliable third-party payment service.

Where candidates lose points

Do Not Use AI Tools During Live Coding

During the live pair programming session, you may be asked to share your screen. Even if you are not sharing your full screen, do not use AI code assistants. Interviewers expect you to write the code yourself and explain your logic step-by-step.

Prepare for Behavioral Questions in Technical Rounds

Be aware that some technical rounds, including the live pair programming session, may begin with 10 to 15 minutes of behavioral questions about your background, motivations, and experience. Do not let this catch you off guard.

Clarify Requirements Before Coding

In both the coding and system design rounds, avoid jumping straight into implementation. Take a few minutes to ask clarifying questions, define the scope of the problem, and align with your interviewer on the expected outcomes.

Follow Up Proactively

Because the recruitment team can sometimes experience high volumes, do not hesitate to reach out to your recruiter if you do not receive feedback within a week of completing an interview stage. Polite, proactive communication is always appreciated.

Questions & practice

Implement a sliding window algorithm to find the maximum sum of a contiguous subarray of size K.

Medium · Coding & Algorithm Questions

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. State the target complexity and say which constraint rules the naive version out.

Follow-up

  • How does this change if the input no longer fits in memory?
  • What is the worst case, and how likely is it on real data?

Write a program to parse a large file containing transaction logs and aggregate the total volume processed per

Medium · Coding & Algorithm Questions

Write a program to parse a large file containing transaction logs and aggregate the total volume processed per currency.

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. State the target complexity and say which constraint rules the naive version out.

Follow-up

  • How does this change if the input no longer fits in memory?
  • What is the worst case, and how likely is it on real data?

Implement an algorithm to find the shortest path in a currency conversion graph using a Breadth-First Search (

Medium · Coding & Algorithm Questions

Implement an algorithm to find the shortest path in a currency conversion graph using a Breadth-First Search (BFS) approach.

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. State the target complexity and say which constraint rules the naive version out.

Follow-up

  • How does this change if the input no longer fits in memory?
  • What is the worst case, and how likely is it on real data?

Write a SQL query using complex joins and window functions to identify users who made more than three transact

Medium · SQL & Database Questions

Write a SQL query using complex joins and window functions to identify users who made more than three transactions within a five-minute window.

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Write a query to find the top-performing corridors (sending to receiving currency pairs) based on weekly volum

Medium · SQL & Database Questions

Write a query to find the top-performing corridors (sending to receiving currency pairs) based on weekly volume, filtering out system test accounts.

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Explain the trade-offs between using a SQL database versus a NoSQL database for storing user profile data and

Medium · SQL & Database Questions

Explain the trade-offs between using a SQL database versus a NoSQL database for storing user profile data and transaction ledgers.

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

What do you anticipate will be your biggest challenge if you join Wise. Energy, and how do you plan to address

Medium · Behavioral & Product Mindset Questions

What do you anticipate will be your biggest challenge if you join Wise. Energy, and how do you plan to address it?

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Design and implement a basic Tic-Tac-Toe game engine, ensuring clean object-oriented design and validation of

Medium · Coding & Algorithm Questions

Design and implement a basic Tic-Tac-Toe game engine, ensuring clean object-oriented design and validation of win conditions.

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

Write a function that calls a paginated REST API endpoint, filters the results based on specific criteria, and

Medium · Coding & Algorithm Questions

Write a function that calls a paginated REST API endpoint, filters the results based on specific criteria, and returns the aggregated data.

Approach

  1. Say who the caller is and what they do when the call fails halfway.
  2. Define the identity of a request so a retry cannot double-apply it.
  3. Separate accepted, pending, failed and confirmed; they are different facts.
  4. Design the error taxonomy before the success shape; callers branch on it.

Follow-up

  • What happens if the caller retries after a timeout?
  • How does a client discover it is on an old version of this contract?

Design a highly scalable rate limiter that can handle millions of requests per minute across multiple regions.

Medium · System Design & Architecture Questions

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

How would you design a real-time client support chat widget and distribute it efficiently to millions of clien

Medium · System Design & Architecture Questions

How would you design a real-time client support chat widget and distribute it efficiently to millions of client applications?

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

Describe how you would implement a resilient Circuit Breaker pattern for an HTTP client calling an unreliable

Medium · System Design & Architecture Questions

Describe how you would implement a resilient Circuit Breaker pattern for an HTTP client calling an unreliable third-party payment service.

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

Design a data migration strategy to transition a high-traffic transactional database from a legacy monolithic

Medium · System Design & Architecture Questions

Design a data migration strategy to transition a high-traffic transactional database from a legacy monolithic system to a microservices architecture with minimal downtime.

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

How would you handle distributed transactions and ensure eventual consistency across multiple microservices wh

Medium · System Design & Architecture Questions

How would you handle distributed transactions and ensure eventual consistency across multiple microservices when a transfer fails midway?

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. State the consistency you need, and where you are willing to be stale.

Follow-up

  • What breaks first when traffic grows ten times?
  • How does this behave when that dependency is down for an hour?

How do database locks (optimistic vs. pessimistic locking) work, and how would you prevent deadlocks in a high

Medium · SQL & Database Questions

How do database locks (optimistic vs. pessimistic locking) work, and how would you prevent deadlocks in a high-concurrency transaction processing system?

Approach

  1. Establish what changed and when, before forming any theory.
  2. Pick a bisection that eliminates candidates whichever way it turns out.
  3. Check the instrumentation before believing the symptom.
  4. Separate the trigger from the cause; the deploy is rarely the bug.

Follow-up

  • What would you look at first, and what would it rule out?
  • How would you tell a cause from a coincidence here?

Suggested practice checklist

Built from the rounds and topics Wise. Energy candidates report.

Day 1 — Map the Wise. Energy loop

  • Write out the reported sequence: Application Screening, Automated Assessment, Live Virtual Interviews, Final Offer Stage.
  • 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.

Day 2 — Work Algorithms

  • Spend the session on Algorithms, which Wise. Energy candidates report being tested on.
  • Write one worked example in Algorithms and time yourself on it.

Deliverable: One timed worked example in Algorithms.

Day 3 — Work SQL

  • Spend the session on SQL, which Wise. Energy candidates report being tested on.
  • Write one worked example in SQL and time yourself on it.

Deliverable: One timed worked example in SQL.

Day 4 — Work Data Structures

  • Spend the session on Data Structures, which Wise. Energy candidates report being tested on.
  • Write one worked example in Data Structures and time yourself on it.

Deliverable: One timed worked example in Data Structures.

Day 5 — Answer out loud: Coding & Algorithm Questions

  • Answer aloud, timed: Implement a sliding window algorithm to find the maximum sum of a contiguous subarray of size K.
  • Answer aloud, timed: Write a program to parse a large file containing transaction logs and aggregate the total volume processed per currency.

Deliverable: Spoken answers to 2 reported Coding & Algorithm Questions question(s), under time.

Day 6 — Answer out loud: System Design & Architecture Questions

  • Answer aloud, timed: Design a highly scalable rate limiter that can handle millions of requests per minute across multiple regions.
  • Answer aloud, timed: How would you design a real-time client support chat widget and distribute it efficiently to millions of client applications?

Deliverable: Spoken answers to 2 reported System Design & Architecture Questions question(s), under time.

Day 7 — Answer out loud: SQL & Database Questions

  • Answer aloud, timed: Write a SQL query using complex joins and window functions to identify users who made more than three transactions within a five-minute window.
  • Answer aloud, timed: How do database locks (optimistic vs. pessimistic locking) work, and how would you prevent deadlocks in a high-concurrency transaction processing system?

Deliverable: Spoken answers to 2 reported SQL & Database Questions question(s), under time.

Behavioural preparation

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

Describe a time when you made a significant technical mistake or failed at a project. How did you identify the

Medium · Behavioral & Product Mindset Questions

Describe a time when you made a significant technical mistake or failed at a project. How did you identify the issue, rectify it, and what did you learn?

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 a situation where a product manager proposes a feature that you believe is technically unfea

Medium · Behavioral & Product Mindset Questions

How do you handle a situation where a product manager proposes a feature that you believe is technically unfeasible or detrimental to system performance?

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?

Give an example of how you have demonstrated extreme ownership over a service or feature, from conception to p

Medium · Behavioral & Product Mindset Questions

Give an example of how you have demonstrated extreme ownership over a service or feature, from conception to post-launch monitoring.

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 approach giving and receiving tough constructive feedback within a highly collaborative engineering

Medium · Behavioral & Product Mindset Questions

How do you approach giving and receiving tough constructive feedback within a highly collaborative 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?