Commonwealth Bank of Australia · Software Engineer
Updated · 2026-10-02

Commonwealth Bank of Australia Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Commonwealth Bank of Australia is a bank, and candidates describe its Software Engineer role as building the software behind banking products: mobile payments, cloud-hosted financial services, microservices, payment-platform security and data pipelines. Reported team stacks differ. Candidates mention Java with Spring Boot, .NET with React, and AWS-based environments, and the listed requirements add REST API design, SQL with transaction management, and CI/CD. Kubernetes, Docker, Kafka or JMS, and TypeScript appear as extras.

This guide is for engineers interviewing for a Software Engineer role at Commonwealth Bank of Australia. It covers the four reported stages, the nine technical and four behavioral questions candidates report, and a seven-day plan that adds the coding and concurrency scenarios candidates describe. Leadership and mentoring are reported mainly for senior roles, so the behavioral section includes prompts for them.

Candidates report four stages over roughly 3-5 weeks: an Online Assessment, Technical Discussions, Behavioral Discussions and Final Technical Panels. The process varies by business unit and location.

ReactReact Context APITechnical interviews

35 min read

Browse Software Engineer questions

See the practice prompts

18Practice promptsAcross five skill areas

The work candidates describe is backend-heavy and money-adjacent: scalable microservices, secure payment platforms, data pipelines, and for some teams a React front end. Reported stacks vary by team (Java/Spring Boot, .NET/React, AWS-based cloud-native work), so the first preparation decision is to pick the stack on your resume and be ready to go deep in it, including concurrency, performance tuning and the testing story around dependency injection.

The reported questions fall into three groups. Five are engineering fundamentals: the pillars of object-oriented programming, abstract classes versus interfaces, dependency injection and testing, REST versus RESTful with PUT versus POST, and OS deadlocks. Four are architecture questions: a real-time fraud detection system, microservices communication against a monolith, relational versus NoSQL database design, and API security with JWT and OAuth. Four are behavioral. Candidates also describe live coding or code review scenarios, such as fixing a threading problem in a payment processing module and writing an LRU cache with O(1) operations, plus design prompts about a real-time transaction dashboard and handling high-frequency payment requests.

Expect to connect theory to something concrete. Candidates say the technical stages mix concept questions with real-world scenarios or code snippets, so every fundamentals answer should include a short example from your own project or a few lines of code. The advice candidates pass on is to explain why you chose something, not only how it works, and to be able to account for every project, certification or internship on your resume.

The behavioral stage is described as an assessment of cultural fit and interpersonal skills, with integrity, collaboration and secure, reliable customer experiences mentioned in candidate preparation advice. Four reported prompts (a team conflict, convincing stakeholders, staying current with technology, and missing a deadline) are enough to build a story bank. Write them out with specifics before the loop begins.

01

Online Assessment

reported

Candidates report that the loop opens with an automated assessment of initial skills. Its format is not described in detail, so prepare for both fundamentals and code: the reported coding topics are arrays, linked lists, trees and hash maps, and the reported fundamentals are OOP, interfaces, dependency injection, REST and concurrency. Aim for working, readable code with a stated time and space complexity, since candidates report that complexity analysis comes up in coding discussions.

What to demonstrate

  • Initial skills, checked through an automated assessment
  • Core data structures and algorithms on arrays, linked lists, trees and hash maps
  • Working, readable code in your main language

How to prepare

  • Write an LRU cache with O(1) get and put from scratch, using a hash map plus a doubly linked list, then state its complexity
  • Re-solve one array, one linked-list and one tree problem in your main language without an IDE
  • Review the practice set coding problems on overlapping intervals and per-key aggregation for hash-map technique
Commonwealth Bank of Australia Software Engineer candidate reports ↗
02

Technical Discussions

reported

Candidates report multiple deep-dive technical discussions with peer engineers and technical leads. Live coding or code review is described for technical interviews, and the reported question types here are fundamentals (OOP, abstract classes versus interfaces, dependency injection, REST, deadlocks) and design (fraud detection, microservices, database choice, API security). Reported scenarios include fixing a threading issue in a payment processing module. Answer every concept question with a definition, a trade-off and an example from your own project.

What to demonstrate

  • Depth in your primary stack, including performance tuning, concurrency and best practices
  • Clean-code and SOLID knowledge, shown in code or code review
  • Applying concepts to real-world scenarios or code snippets

How to prepare

  • Write a small service with constructor injection, then test it with a fake in place of the real dependency
  • Write a deadlock in Java or C# with two locks, fix it with consistent lock ordering, and explain the four conditions it needed
  • Review a short pull request out loud, naming one SOLID violation and the refactor that fixes it
Commonwealth Bank of Australia Software Engineer candidate reports ↗
03

Behavioral Discussions

reported

Candidates report behavioral discussions aimed at cultural fit and interpersonal skills, and describe collaboration with architecture, operations and product teams as a constant part of the role. Four reported prompts cover a team conflict, convincing stakeholders of a technical vision, staying current with technology and a missed deadline. Prepare these as STAR stories with your own decisions and a concrete result for each.

What to demonstrate

  • Cultural fit and interpersonal skills, as candidates describe the stage
  • Collaboration across engineering, architecture, operations and product
  • Ownership of your own decisions and their results

How to prepare

  • Write one STAR story for each of the four reported prompts, with a named decision and a measurable or observable result
  • Prepare the conflict and missed-deadline stories so that your own action takes up most of the time, not the background
  • For a senior role, add one story about mentoring someone and one about balancing technical debt against feature delivery
Commonwealth Bank of Australia Software Engineer candidate reports ↗
04

Final Technical Panels

reported

Candidates describe final technical panels, with assessment centers possible, to close the process. The reported design material includes real-time fraud detection, microservices versus a monolith, relational versus NoSQL storage, API security, a real-time transaction dashboard and handling high-frequency payment requests. Candidates also report being asked to defend resume items in detail, so bring a design you can walk through end to end.

What to demonstrate

  • System design for high-volume, low-latency, secure services
  • Microservice concerns candidates list: service discovery, circuit breakers and distributed tracing
  • Security thinking around authentication, authorization and sensitive data in APIs

How to prepare

  • Design a real-time fraud scoring service on paper: ingestion, a stream such as Kafka, a low-latency decision path, a fallback if scoring is down
  • Prepare a microservices-versus-monolith comparison with one concrete case where you would keep the monolith
  • Draw an OAuth 2.0 authorization flow with a JWT access token, and list what you validate on each request
Commonwealth Bank of Australia Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Reciting the four OOP pillars like a textbook with no example from your own project

For each pillar, prepare one sentence of definition and one concrete use, such as encapsulation hiding a payment state machine or polymorphism swapping a payment provider. Tie dependency injection to a test that replaces a real client with a fake.

02

Answering abstract classes versus interfaces without naming your language's actual rules

State the rules for your language: Java default and static interface methods, C# default interface members, single inheritance of classes against many interfaces, and when shared state or a constructor makes an abstract class the right choice.

03

Designing the fraud detection or payment system as a happy path with no failure handling

Add the failure story to every design: idempotency keys on payments, a timeout and circuit breaker on the scoring call, a fallback decision when scoring is unavailable, a dead-letter queue for failed events, and tracing across services.

04

Treating API security as 'use JWT' without explaining authentication versus authorization

Separate who the caller is (OAuth 2.0 or OpenID Connect login) from what they may do (scopes, roles, per-resource checks). Cover token expiry, signature and audience validation, refresh handling, and never putting sensitive data in a token.

05

Naming a resume item you cannot explain, or telling behavioral stories in 'we' with no personal action

Before the loop, write the architecture, one hard problem and the result for each resume line, and rewrite each story so your own decisions are the middle of it.

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

14 technical prompts0 include a worked solution

Find overlapping job attempts and peak concurrency from lease records

medium
sweep lineintervalsleases

A day of job_run history yields about 50,000,000 attempt records: (job_run_id, job_type, attempt, started_at, finished_at which is NULL when the worker died, lease_expires_at). Leases expire on a clock, so a job that outran its lease ran twice. Produce (a) every job_run_id whose attempts overlapped in wall-clock time and (b) the peak number of simultaneously running attempts per job_type with the minute it occurred. Target O(n log n). State how you treat a NULL finished_at and what clock skew does to your answer.

Approach
  1. Define the interval before sorting anything: an attempt occupies [started_at, COALESCE(finished_at, lease_expires_at)). finished_at is observed and lease_expires_at is only a promise, so every attempt without a finish contributes an estimate and the whole result is a lower bound on overlap rather than an exact count.
  2. For peak concurrency, sweep: emit 2n endpoints, sort by (timestamp, kind) with ends ordered before starts at equal timestamps, then walk the sequence maintaining a counter per job_type and record each type's maximum with its timestamp. O(n log n) dominated by the sort, O(n) space, or O(1) extra if the sort is external and the walk streams.
  3. For overlap detection, do not compare attempts pairwise. A single global sort by (job_run_id, started_at) gives both the grouping and the order; within a group, keep the maximum end seen so far and report an overlap exactly when the next start is less than that running maximum, which is one linear pass after the sort.
  4. Half-open intervals matter and are easy to get wrong: with closed intervals an attempt ending at the same millisecond another begins reads as concurrency two, and across 50,000,000 records that artefact swamps the real signal.
Follow-up
  • A handler is not idempotent and you have found 400 overlapping jobs. Which of them actually caused damage, and what would you query to find out?
  • Peak concurrency for one job_type is 4 against a configured cap of 4. Is the cap working, or is the data hiding attempts that never started?

Collapse a redelivered event batch into per-aggregate high-water marks

easy
hashingat-least-onceaggregation

You drain a batch of up to 5,000,000 events, each (aggregate_id BIGINT, aggregate_version INT, event_type, payload). The log guarantees order within one aggregate only; the batch merges 64 partitions, and a relay failover has redelivered a range, so an older version for an aggregate can appear after a newer one. Given a map of last_applied_version per aggregate, produce the events worth applying, at most one per (aggregate_id, version), plus the count discarded. Target O(n) time. State the memory for 2,000,000 distinct aggregates and what you do when it does not fit.

Approach
  1. One pass, one hash map from aggregate_id to the highest version kept, and a discard counter. An event whose version is at or below last_applied_version for its aggregate is dropped without further work, which is the whole reason the event carries its version rather than a delta. O(n) expected time, O(d) space in distinct aggregates.
  2. Keep the maximum, never the last occurrence. The redelivered range means the final appearance of an aggregate in the batch can be an older version than one seen earlier in the same batch, so last-wins applies stale state over newer state and the projection regresses with no error anywhere.
  3. Cost the memory instead of calling it large: an 8-byte key plus a 4-byte version is 12 bytes of payload, and an open-addressed table held at a 0.7 load factor costs roughly 17 bytes per entry before per-slot metadata, so 2,000,000 aggregates is tens of megabytes in a native layout and several times that in a runtime that boxes both key and value.
  4. If the distinct set exceeds memory, partition on hash(aggregate_id) mod P and reduce each partition independently. Every event for one aggregate hashes to the same partition, so the per-partition result is exact and the merge is concatenation rather than a second reduction.
Follow-up
  • The payload is a patch rather than a snapshot, so applying only the highest version loses the intermediate changes. What changes in your reduction?
  • How do you detect that version 7 arrived while version 6 was never delivered, and what should the consumer do about the gap?

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?

The plan follows the reported stages: a resume audit first, then fundamentals, coding, design, and finally the four behavioral stories and a full mock. Practice-set coding and SQL problems are used where the reported scenarios call for them.

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 loop and audit your resume
  • Write out the four reported stages, Online Assessment, Technical Discussions, Behavioral Discussions and Final Technical Panels, and mark the one you are least ready for.
  • For every project, certification or internship on your resume, write the architecture, one hard problem and the result.
  • Decide which stack you will go deep in (Java/Spring Boot, .NET, React or another) and list five topics in it you could be pressed on.

Deliverable: A one-page loop map, a resume audit sheet with architecture, problem and result for each line, and your chosen stack with five topics.

02OOP, interfaces and dependency injection
  • Write spoken answers for the four OOP pillars, each with an example from your own project.
  • Write a short comparison of abstract classes and interfaces with the actual rules in your language.
  • Build a small service with constructor injection and a unit test that swaps in a fake; if React is on your resume, replace prop drilling with the Context API in one component.

Deliverable: Two spoken answers plus a working injected service with its test, and a Context example if React applies.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03REST, API security and deadlocks
  • Write a PUT versus POST answer covering idempotency and the status codes you would return.
  • Draw an OAuth 2.0 flow with a JWT access token and list the checks the API makes on each request.
  • Create a two-lock deadlock in code, fix it with lock ordering, and recite the four conditions.

Deliverable: A PUT versus POST answer, an OAuth and JWT diagram with validation checklist, and a deadlock demo with its fix.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Coding: structures and concurrency scenarios
  • Implement an LRU cache with O(1) operations and state its complexity.
  • Do two practice-set coding problems, the overlapping lease attempts one and the redelivered event batch one, writing the complexity for each.
  • Write a short payment counter that is wrong under concurrency, then repair it with a lock or atomic operation and explain why.

Deliverable: A tested LRU cache, two solved practice problems with complexity notes, and a before-and-after concurrency fix.

Practice prompt ↗Practice prompt ↗
05System design and data
  • Design a real-time fraud detection system on paper: ingestion, a stream, a scoring path, storage, and what happens when scoring is down.
  • Write a microservices-versus-monolith comparison covering communication styles (synchronous calls against events), failure handling and one case for staying monolithic.
  • Write the relational-versus-NoSQL answer with transactions and SQL in mind, then do the practice-set SQL problem on detecting a concurrent edit.

Deliverable: A fraud detection design diagram with failure modes, a one-page architecture comparison, a database-choice answer, and one solved concurrent-edit query.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Write the four behavioral stories
  • Write STAR outlines for the conflict, stakeholder-buy-in, staying-current and missed-deadline prompts.
  • Rewrite each so your own actions take most of the story and each ends with a concrete result.
  • Say each aloud and cut anything the listener does not need.

Deliverable: Four STAR stories, each with a named decision and a result, written out and spoken once.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full mock panel
  • Run a mixed mock: one fundamentals answer, one design question, one live coding task and two behavioral questions, back to back.
  • Have a friend ask follow-ups on your resume items and design choices.
  • List every answer where you hesitated and rewrite it before the loop.

Deliverable: A recorded or written mock with a list of weak answers and their rewrites.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗

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

Candidates describe the behavioral stage as a discussion about cultural fit and interpersonal skills, in a role that works closely with architecture, operations and product teams. The reported prompts below cover conflict, influence, learning and a missed deadline. Prepare each as a STAR story in your own voice, with a decision you made and a result you can describe.

Tell me about a time you had to handle a conflict within your team; how did you reach a resolution?

medium
Behavioral & Leadership

Tell me about a time you had to handle a conflict within your team; how did you reach a resolution?

Approach
  1. Choose a conflict about a real technical or ownership issue, such as an API design, a review disagreement or priority clashes over who owned a failing component, not a personality clash. Set the scene briefly: who disagreed, about what, and what was at stake for the project.
  2. State the other person's position in terms they would accept as fair. This shows you understood it before you tried to settle it.
  3. Describe the specific steps you took: a one-to-one conversation, a small spike or benchmark to replace opinion with evidence, a written decision record, or bringing in the tech lead when it could not be settled. Use I for your actions.
  4. End with the outcome and the relationship afterward: what was decided, how the delivery went, and whether you worked well together after. Add one thing you would change.
  5. The mistake that sinks it is a story where the other person is the villain, or where the result is only 'we compromised' with no detail about how.
Follow-up
  • What was the strongest part of the other person's argument?
  • What would you do if there had been no data to settle it?
  • Did the relationship change afterward, and how do you know?

Describe a situation where you had to convince stakeholders to buy into your technical vision.

medium
Behavioral & Leadership

Describe a situation where you had to convince stakeholders to buy into your technical vision.

Approach
  1. Pick a technical proposal you drove, such as splitting a service, adopting a message queue, or tightening authentication, and name every stakeholder: product, operations, security, architecture, your lead. Say what each cared about, whether risk, cost, delivery date or on-call load.
  2. Show how you translated the technical case into those concerns. For example, tie a refactor to fewer production incidents, or tie a security change to a concrete exposure it removes.
  3. Describe your evidence and your ask: a prototype, a cost estimate, an incident count from your own system, or a phased rollout with a rollback step. A small reversible first step is easier to approve than a large rewrite.
  4. Report the result honestly, including what stakeholders changed in your plan. Show you adapted the vision instead of only winning.
  5. The mistake that sinks it is a story where you were right and others were slow to see it; stakeholder concerns should be treated as legitimate.
Follow-up
  • What was the hardest objection you heard, and how did you answer it?
  • What would you have done if they had said no?
  • How did you measure whether the change delivered what you promised?

How do you stay updated with industry trends, and how have you applied a new technology to a recent project?

medium
Behavioral & Leadership

How do you stay updated with industry trends, and how have you applied a new technology to a recent project?

Approach
  1. Answer in two parts, as the question does. First, give your real habits: the release notes, conference talks, internal tech sessions, newsletters or open-source projects you actually follow in your stack (Java/Spring, .NET, AWS, React or similar). Name specific ones, because a vague list of buzzwords is easy to spot.
  2. For the second part, choose one technology you introduced or evaluated on a recent project and walk through STAR: the problem it addressed, how you tested it in a small spike, how you compared it with the current approach, and what risks you checked (compatibility, security, operations, team skill).
  3. Give the decision and outcome with something concrete: build time, error rate, lines removed, or developer feedback. Include rollout and rollback if it went into production.
  4. Strengthen the answer with a case where you evaluated something and chose not to adopt it, and say why. This shows judgment rather than novelty-seeking.
  5. The mistake that sinks it is adopting a technology because it was fashionable; tie the choice to a problem you had.
Follow-up
  • Tell me about a technology you evaluated and rejected.
  • How did you bring the rest of the team along with the new tool?
  • What would have gone wrong if this had failed in production?

Tell me about a time you failed to meet a deadline or a project requirement; how did you communicate this to y

medium
Behavioral & Leadership

Tell me about a time you failed to meet a deadline or a project requirement; how did you communicate this to your lead?

Approach
  1. Choose a real miss where your own estimate, planning or communication played a part, such as underestimated integration work or a late-discovered dependency. Avoid a fake failure like 'I care too much'; a candid story reads better than a polished one.
  2. Give the timeline in order: when you first saw the risk, when you told your lead, and what you brought with you. Telling your lead early, with options, is the part of the story that matters most.
  3. Lay out the options you presented, for example cut scope, move the date, add a person, or ship in phases, and which one was chosen and why. Say what you delivered and when.
  4. Close with what you changed afterward: smaller milestones, explicit buffer for integration and testing, earlier demos, or a standing risk check in stand-ups. Show that the change stuck.
  5. The mistake that sinks it is blaming others or hiding the delay until the last day; both suggest the problem would repeat.
Follow-up
  • When did you first know the date was at risk, and what did you do that day?
  • How did your lead react, and what would you do differently in that conversation?
  • How do you estimate work now, compared with then?
  • 01

    Tell me about a time you had to handle a conflict within your team; how did you reach a resolution?

  • 02

    Describe a situation where you had to convince stakeholders to buy into your technical vision.

  • 03

    How do you stay updated with industry trends, and how have you applied a new technology to a recent project?

  • 04

    Tell me about a time you failed to meet a deadline or a project requirement; how did you communicate this to your lead?

  • 05

    Tell me about a time you had to balance technical debt against delivering a feature quickly.

  • 06

    Tell me about a time you mentored a teammate or set a technical standard for your team.

PracHub preparation framework ↗
How long does the Commonwealth Bank of Australia Software Engineer process take?

Candidates report four stages over roughly 3-5 weeks, and some describe anything from a few weeks to two months depending on level and team. Background verification can add time after the interviews, so plan around that.

Commonwealth Bank of Australia Software Engineer candidate reports ↗
Are the technical interviews purely theoretical?

Candidates say no. Concept questions on OOP, dependency injection, REST or deadlocks are reported, but so are real-world scenarios and code snippets, including live coding or code review. Prepare every concept with a short code example or a project story.

Commonwealth Bank of Australia Software Engineer candidate reports ↗
Which language or stack should I prepare?

Reported stacks vary by team: Java with Spring Boot, .NET with React, and AWS-based environments. Prepare the stack on your resume in depth, covering concurrency, performance tuning and dependency injection, and learn the basics of REST, SQL transactions, Docker and Kubernetes. Kafka or JMS experience is listed as a plus.

Commonwealth Bank of Australia Software Engineer candidate reports ↗
What coding topics should I practice?

Candidates list arrays, linked lists, trees and hash maps, with time and space complexity stated aloud. Reported scenarios include an LRU cache with O(1) operations and fixing a threading issue in a payment processing module, so practise both a data-structure build and a concurrency fix.

Commonwealth Bank of Australia Software Engineer candidate reports ↗
How should I prepare the behavioral stage?

Write STAR stories for the four reported prompts: a team conflict, convincing stakeholders, staying current with technology and a missed deadline. Keep your own decisions at the centre, end each with a result, and be ready to defend every line of your resume in detail.

PracHub Software Engineer practice ↗
What if I do not know an answer?

Candidates are advised not to bluff. Say what you do not know, state the related concepts you do understand, and describe how you would find the answer, for example by testing in a small spike or reading the framework's documentation.

Commonwealth Bank of Australia 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.