Anz · Software Engineer
Updated · 2026-10-02

Anz Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Anz is a bank. Candidates describe Software Engineers there as people who build, maintain and scale the systems behind its financial services, with work reported across the core banking infrastructure and the ANZx (ANZ Plus) platform. Day to day, that means taking part in the full development lifecycle: gathering requirements, designing, testing and deploying to production. Candidates also describe working with product managers on feature scope, with designers and other engineers, and with operations and security teams so that code meets the bank's compliance and security requirements. Code reviews and team discussions are part of the job, and the reported requirements stress documentation and process alongside engineering skill.

This guide is for candidates applying for a Software Engineer role at Anz. It covers the three reported stages, the reported technical and behavioral questions, and a one-week plan built around them. The languages candidates list for the role are Java, C# and Python (JavaScript is also mentioned, depending on the team), together with SQL and Git; AWS or Azure, CI/CD and banking or fintech experience are listed as nice to have. The guide does not cover other positions at Anz.

Candidates report three stages over roughly 3-5 weeks: a recruiter screening, a set of technical assessments (online coding tests and live coding sessions), and a software design interview.

DSA (Data Structures & Algorithms)Coding Interviews / Problem SolvingSystem Design

35 min read

Browse Software Engineer questions

See the practice prompts

18Practice promptsAcross five skill areas

The reported questions fall into three groups. The first is applied computer science with a banking flavour: designing for high-concurrency transactions, comparing microservices with a monolith, securing a public-facing web API, keeping data consistent in a distributed system, and managing infrastructure as code for a cloud deployment. The second is hands-on coding: finding duplicate accounts in a large customer dataset, writing a script that processes and validates batches of financial records, a medium array or hash map problem, optimising search over a large database, and structuring classes and interfaces for maintainable code. The third is behavioral: team conflict, ambiguous or shifting requirements, technical debt against delivery speed, quality and security standards, and explaining technical ideas to non-technical people.

Money is the common thread, and it shapes how to answer. A banking answer should say what happens when a request is retried, when two writers touch the same account, when a record in a batch is malformed, and when a downstream service is unavailable. Practise saying the failure case before the happy path: idempotency keys, version checks or row locks, transactions that keep a ledger balanced, rejected records that are reported rather than dropped, and amounts held as integers or decimals rather than floats.

Candidates report that the reasoning matters more than a perfect final answer, and that coding questions reward narrating assumptions and trade-offs. Treat that as a preparation rule: restate the problem, ask what counts as a duplicate or an invalid record, give the simple solution and its cost, then improve it. Design prompts are reported as deliberately vague, so rehearse scoping questions you would ask before drawing any boxes.

Because the reported requirements stress version control, SQL and one major language, pick one language from Java, C# or Python and do all your coding practice in it, so the live sessions are not also a fight with syntax. Add enough SQL to reason about indexes, transactions and constraints, since several design questions (consistency, search optimisation, duplicate detection) come down to what the database can enforce.

01

Recruiter Screening

reported

Candidates report a conversation with a recruiter about your experience, your salary expectations and your interest in the role. Nothing technical is described for this stage, but it is where you learn which team you are interviewing for, which language and stack that team uses, and what the technical assessments will look like. Go in with a clear account of your recent work, a reason for choosing a bank and, if relevant, the ANZx platform, and a salary figure you can state calmly.

What to demonstrate

  • How your experience maps to the role and its Java, C# or Python, SQL and Git requirements
  • Your stated interest in the role and the team
  • Whether your salary expectations fit

How to prepare

  • Write a short walkthrough of your last two projects: what you built, your part in it, the language and database, and one outcome you can state plainly.
  • Prepare a specific reason for applying to a bank, and a view on whether the traditional banking systems or the ANZx platform interests you more.
  • Decide your salary range and availability before the call, and ask which online test platform is used and whether the live sessions are in a language you choose.
Anz Software Engineer candidate reports ↗
02

Technical Assessments

reported

Candidates report a series of technical assessments: online coding tests (HackerRank and Pymetrics are the names mentioned) and back-to-back live coding sessions. A coding stage is where the reported coding questions are practised: a medium array or hash map problem, finding duplicate accounts, validating batches of financial records, and searching a large dataset efficiently. Candidates say the interviewer cares about how you think, so talk through your approach before typing.

What to demonstrate

  • Working code in your chosen language on data structure problems
  • Choosing a data structure from the access pattern and stating its complexity
  • Explaining your reasoning and trade-offs while you code

How to prepare

  • Solve medium array and hash map problems in one language until frequency maps, seen-sets, two pointers and prefix sums are automatic, and say the brute-force complexity aloud each time.
  • Write the duplicate-accounts function and the batch validator end to end, including the edge cases: empty input, one record, all records invalid, and input too large for memory.
  • Practise in a plain online editor without autocomplete, since online tests do not offer your IDE.
Anz Software Engineer candidate reports ↗
03

Software Design Interview

reported

The last reported stage is a software design interview. The reported design-style questions include high-concurrency banking transactions, microservices against a monolith, securing a public-facing web API, data consistency across a distributed system, infrastructure as code for a cloud deployment, and a feature that must handle 10,000 requests per second. Candidates also say requirements can be vague on purpose, so start by asking questions to scope the problem.

What to demonstrate

  • Designing systems that are scalable, reliable and secure
  • Stating trade-offs between consistency, availability and complexity
  • Scoping an ambiguous problem with clarifying questions before designing

How to prepare

  • Build one reusable design skeleton: clarify requirements and load, sketch the API and data model, then cover the write path, the read path, failure handling, security and deployment.
  • Rehearse the money-specific parts: idempotency keys on retries, per-account locking or versioning, an outbox for events, and reconciliation between systems.
  • Prepare a clear answer on microservices against a monolith for a bank, and a walk through one request across gateway, authentication, services, database and events.
  • Know how you would manage infrastructure as code on AWS or Azure: version-controlled definitions, review, environments, state, and a CI/CD pipeline that applies them.
Anz Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Writing the duplicate-accounts function before defining what a duplicate is

Ask whether duplicates are exact matches or near matches, and which fields identify a customer. Then normalise fields into a key (case, whitespace, punctuation), group with a hash map, and say how you would add a fuzzy-matching pass for near misses. Report the groups instead of deleting anything.

02

A batch validator that handles only the clean file, stops at the first bad record, or holds amounts as floating-point numbers

Collect every error with its record number, write valid and rejected records to separate outputs, store money as integer minor units or decimals, stream the file instead of loading it, and make a rerun safe so a retried batch cannot post twice.

03

A high-concurrency or consistency design with no answer for retries, two writers on one account, or a downstream outage

Put an idempotency key on every write, choose row locking or a version check for hot accounts, publish events through an outbox, and say what the caller sees in each failure. Name which data must be strongly consistent and which may lag.

04

Answering the API security question as a list of buzzwords such as HTTPS and OAuth

Order the answer by threat: authenticate the caller, authorise each object access, validate input, rate-limit and log, protect secrets, encrypt in transit and at rest. Give one concrete attack for each layer so the list shows reasoning.

05

Coding silently, or behavioral answers told as 'we' with no personal decision or result

Narrate assumptions and trade-offs while you code, as candidates are advised to do. For stories, use Situation, Task, Action and Result, say 'I' when describing your actions, and finish with a result you can describe.

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

Write a script to process and validate incoming financial record batches.

medium
Coding and Algorithms

Write a script to process and validate incoming financial record batches.

Approach
  1. Ask for the format and the contract: file type (CSV, fixed-width, XML), whether a header and trailer carry a record count and control total, and whether one bad record rejects the whole batch or is quarantined while the rest proceed.
  2. Stream the file record by record instead of loading it into memory, parse each line against a schema, and keep amounts as exact decimals (BigDecimal, C# decimal, Python decimal.Decimal), never binary floats.
  3. Validate each record: required fields present, types and lengths, currency as a valid ISO 4217 code, dates real and in range, amount sign and precision, account number format; collect every error with its line number instead of stopping at the first.
  4. Validate the batch: record count and summed amounts must match the trailer, transaction ids must be unique within the batch (a set) and against previously processed ids, and the batch id itself is recorded so a re-delivered file is not processed twice.
  5. Write accepted records in one transaction or in idempotent chunks, emit a report of accepted and rejected rows, and state the cost: O(n) time and memory proportional to the distinct ids tracked.
Follow-up
  • The file is 50 GB and duplicate checks must span the last 30 days of batches. How does your design change?
  • The process crashes after writing half the records. What happens when it restarts?
  • Which test cases would you write first for this script?

Solve a medium-level LeetCode problem focusing on data structures like arrays or hash maps.

medium
Coding and Algorithms

Solve a medium-level LeetCode problem focusing on data structures like arrays or hash maps.

Approach
  1. Restate the constraints aloud (input size, negatives, duplicates, sorted or not), then name the brute force and its complexity before improving it, as the reported question is a generic medium array or hash-map problem.
  2. Know the core hash-map patterns: value-to-index map for pair sums in one pass, O(n) time and O(n) space; frequency counts for anagram and majority problems; grouping by a canonical key (sorted string or a 26-count tuple) for group-anagrams.
  3. Know prefix sum plus hash map: to count subarrays summing to k, store counts of prefix sums seen and add count[prefix - k] at each step, seeding count[0] = 1. It is O(n) and, unlike a sliding window, works with negative numbers.
  4. Know sliding window plus map or set for substring problems such as longest substring without repeating characters, moving the left pointer past the last seen index, O(n).
  5. Test edge cases explicitly: empty input, one element, all duplicates, negatives and zero, integer overflow in Java or C#; note hash operations are O(1) on average but can degrade with heavy collisions.
Follow-up
  • The array is sorted. Can you solve the pair-sum version in O(1) extra space?
  • Return every unique pair rather than one pair: how do you avoid duplicate pairs?
  • The numbers arrive as a stream too large to store. What can you still compute exactly?

Describe how you would optimize a search algorithm for a large-scale database.

medium
Coding and Algorithms

Describe how you would optimize a search algorithm for a large-scale database.

Approach
  1. Measure before changing anything: capture the slow query and its parameters, run EXPLAIN ANALYZE, and find whether the time goes to a sequential scan, a sort, a large join or fetching many rows.
  2. Fix access paths with indexes: a B-tree for equality, range and ORDER BY; in a composite index put equality columns before the range column; use a covering index so the query is answered from the index alone. Each index slows writes and costs storage, so add only what the queries use.
  3. Match the index type to the search: a pattern that starts with a wildcard (LIKE '%smith') cannot use a B-tree, so use a trigram GIN index (pg_trgm in PostgreSQL), full-text search with a tsvector GIN index, or a dedicated engine such as OpenSearch or Elasticsearch for ranking and typo tolerance.
  4. Fix the query shape: select only needed columns, avoid wrapping indexed columns in functions, replace OFFSET pagination with keyset pagination (WHERE (created_at, id) < (last values) ORDER BY ... LIMIT n), and partition very large tables by date so queries prune partitions.
  5. Then scale reads: cache frequent lookups with explicit invalidation, and send read traffic to replicas while noting replication lag means a customer may not see a write they just made.
Follow-up
  • An index exists on the column but the planner still does a sequential scan. What are the likely reasons?
  • Customers misspell names when searching. How do you support approximate matching?
  • Search now spans several shards. How do you merge and paginate the results?

Given a specific scenario, how would you structure classes and interfaces to ensure maintainable code?

medium
Coding and Algorithms

Given a specific scenario, how would you structure classes and interfaces to ensure maintainable code?

Approach
  1. Read the scenario for nouns and verbs: nouns become candidate classes or value objects, verbs become methods, and anything with several interchangeable variants (fee rules, payment methods, notification channels) becomes an interface.
  2. Apply the principles concretely: single responsibility per class, a strategy interface so a new variant is a new class rather than an edited if/else chain (open/closed), and dependencies passed through constructors so tests can substitute fakes (dependency inversion).
  3. Prefer composition over inheritance unless there is a true is-a relationship with shared behaviour, and make domain values immutable, for example a Money type holding amount and currency that refuses to add different currencies.
  4. Keep domain logic separate from I/O: the service depends on a repository interface, not on the database client, which keeps the core unit-testable.
  5. Avoid speculative abstraction: introduce an interface where a second implementation or a test double is actually needed, and say out loud where you chose not to abstract.
Follow-up
  • A new account type needs a different fee rule. Show what changes and what does not.
  • How would you unit test the service class without a database?
  • Where would inheritance be the better choice in this scenario, and why?

How do you approach a situation where requirements are ambiguous or constantly changing?

medium
Behavioral and Leadership

How do you approach a situation where requirements are ambiguous or constantly changing?

Approach
  1. Turn ambiguity into checkable statements: ask who the user is, what problem it solves and what 'done' looks like, then write acceptance criteria with concrete examples, including the failure and edge cases.
  2. Write down every assumption you make and get it confirmed in writing, so a later change is visible as a change rather than a misunderstanding.
  3. Separate the stable core from the volatile parts and design for the volatile ones: put them behind an interface, configuration or a feature flag, and version any external API contract so a change does not break callers.
  4. Ship a thin end-to-end slice early and collect feedback on working software rather than on a long specification, then iterate in small increments.
  5. Back it with one real example: the unclear requirement, the questions you asked, what you built first, what changed and how the design absorbed it. Avoid the two answers that fail: building everything speculatively, or refusing to start until the spec is perfect.
Follow-up
  • A stakeholder changes a requirement after release. How do you decide whether to absorb it now or push back?
  • How do you decide you have asked enough questions and should start building?
  • How do you handle scope creep when the deadline does not move?

Each day targets a group of reported questions and a stack topic from this loop, moving from coding fundamentals to design, then behavioral stories. Every day ends with something you can inspect: code, a sketch or a written outline.

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 fix your language
  • Write the three reported stages (recruiter screening, technical assessments, software design interview) and note what each asks of you.
  • Choose one of Java, C# or Python for every coding session this week, and set up a plain editor with no autocomplete to mimic an online test.
  • Sort the reported questions into coding, design and behavioral piles and mark your two weakest.

Deliverable: A one-page loop map, the chosen language, and the question list sorted into three piles with the two weakest marked.

02Arrays and hash maps, out loud
  • Solve three medium array or hash map problems, each time stating the brute-force approach and its complexity before the improved one.
  • Name the pattern used in each (frequency map, seen-set, two pointers, prefix sums) and the edge cases: empty input, duplicates, negative values, one element.

Deliverable: Three solved problems, each with a note giving brute-force cost, final cost and the pattern used.

Practice prompt ↗
03Duplicate accounts and record batches
  • Write the duplicate-accounts function: define a duplicate, build a normalised key (for example lower-cased name plus date of birth), group in a hash map and return the groups of two or more.
  • Write the batch validator: parse each record, collect all errors with record numbers, write valid and rejected records separately, and keep amounts as integers or decimals.
  • Test both with empty input, a single record, an all-invalid batch and a stream too large for memory.

Deliverable: Two working functions in your chosen language and a small test file covering the four edge cases.

Practice prompt ↗Practice prompt ↗
04Search at scale and class design
  • Write a one-page answer on speeding up search over a large database: read the query plan first, then choose indexes (B-tree for equality and range, composite column order), keyset pagination, caching, and when an inverted index is warranted.
  • Take one scenario, for example payment methods with several variants, and write the interfaces and classes so a new variant needs no edits to existing code.
  • Mark where dependencies are injected so each class can be unit-tested.

Deliverable: A one-page search optimisation answer and a class and interface sketch with the test seams marked.

Practice prompt ↗Practice prompt ↗
05Concurrency and consistency
  • Sketch the design for high-concurrency banking transactions: idempotency key, per-account locking or versioning, outbox, queue to downstream services, and the questions you would ask about load first.
  • Work through the PracHub practice question on detecting a concurrent edit, and write how its version check applies to an account balance.
  • Say your answer to the distributed-system data consistency question aloud, using the terms saga, outbox and idempotent consumer.

Deliverable: A one-page transaction design diagram with failure cases, plus a spoken answer on distributed consistency you have recorded and replayed.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Architecture, API security and infrastructure as code
  • Write a table comparing microservices and a monolith for a bank: deployment, data ownership, transactions, failure isolation, team size and audit trail, and end it with your recommendation.
  • Write an ordered security checklist for a public-facing API with one attack for each item.
  • Outline how infrastructure as code would work for a cloud deployment: version control, review, separate environments, state handling and a CI/CD pipeline.
  • Walk a single request across gateway, authentication, services, database and events, and say where 10,000 requests per second would first strain.

Deliverable: A comparison table, an ordered API security checklist, an infrastructure as code outline and a request-flow diagram.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral stories and ambiguity
  • Write four Situation, Task, Action, Result outlines for the conflict, technical debt, code quality and security, and non-technical explanation questions, using 'I' for your actions.
  • Outline how you handle ambiguous or changing requirements: questions you ask, what you write down, how you confirm scope, how you deliver in slices.
  • Rehearse every story aloud, then list three questions to ask at the end of an interview about the team's challenges and stack.

Deliverable: Four STAR outlines, one written approach to ambiguous requirements and a list of three closing questions.

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

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

Candidates report that behavioral questions cover conflict resolution, adaptability to changing requirements and deadlines, and communication with non-technical partners. Candidates are advised to use the Situation, Task, Action, Result structure. Prepare four or five stories from real engineering work in which you made the decision, and attach a result to each.

How do you handle data consistency and integrity in a distributed system?

medium
Technical and Domain Knowledge

How do you handle data consistency and integrity in a distributed system?

Approach
  1. Start by sorting the data by how much staleness it tolerates. A ledger entry or account balance needs strong consistency inside one service's database, using a single ACID transaction. A notification, a search index or a reporting view can lag and catch up. Saying which is which is the core of the answer.
  2. Across services, explain why you avoid distributed two-phase commit on the hot path (blocking, coordinator failure) and prefer a saga with compensating steps, or a transactional outbox: write the state change and an event row in the same local transaction, and let a relay publish it.
  3. Make every consumer idempotent. Carry an idempotency key or event id and record processed ids under a unique constraint, so at-least-once delivery and retries cannot apply a debit twice. Use a version column (compare-and-set) or SELECT ... FOR UPDATE so two writers cannot overwrite each other.
  4. Protect integrity with rules the database enforces (foreign keys, unique and check constraints, double-entry rows that sum to zero) and add a reconciliation job that compares systems and raises mismatches for a person to resolve rather than silently repairing them.
  5. Anchor it in your own work: name one system where you chose the guarantee, what failed or nearly failed, and how you detected it. A purely theoretical answer misses what the question asks.
Follow-up
  • What happens if the same event is delivered twice, or two events arrive out of order?
  • Why not use two-phase commit here, and when would you accept it?
  • How would you find out that two services disagree about an account balance?

Tell me about a time you had to resolve a conflict within your engineering team.

medium
Behavioral and Leadership

Tell me about a time you had to resolve a conflict within your engineering team.

Approach
  1. Pick a real technical disagreement, such as two designs, a review dispute or a release decision, in which you were a participant and made a choice. A story about two other people you watched argue shows nothing about you.
  2. Describe the situation in two or three sentences, then spend the time on your actions: you asked for the other person's reasoning and restated it, agreed the criteria for deciding (latency, risk, delivery date, operational cost), and gathered evidence such as a benchmark, a prototype or an incident record.
  3. Show how it ended: a decision, who made it, how you handled being right or wrong, and the effect on the working relationship afterwards. Include escalation only if you tried to resolve it directly first.
  4. Avoid the stories that sink this answer: casting the other person as the problem, a conflict with no outcome, or one that was only about personality. Keep the other engineer's position fairly stated.
Follow-up
  • What if the other person had been more senior than you and kept their view?
  • Was there a point where you disagreed with the decision but went ahead with it? How did you handle that?
  • What would you do differently if the same conflict started again?

Describe a project where you had to balance technical debt with the need to deliver features quickly.

medium
Behavioral and Leadership

Describe a project where you had to balance technical debt with the need to deliver features quickly.

Approach
  1. Choose a project where the trade-off was concrete: a particular shortcut (a duplicated module, a missing test layer, a hard-coded integration) and a particular feature deadline. State what the debt was costing, using something measured such as slower changes, repeat incidents or manual work.
  2. Explain how you decided what to ship and what to defer. Strong choices include shipping the feature behind a flag, limiting scope, taking the shortcut at the edge of the system rather than in the core, and recording the debt as an owned ticket with a trigger.
  3. Show how you brought product managers into the decision by putting the cost in their terms (delay risk, incident risk, effort), instead of presenting it as an engineering preference. In a bank, mention the review, documentation and test evidence you kept so the shortcut was visible and could be audited.
  4. Finish with the result and the repayment: when and how the debt was paid, in small steps alongside feature work, and what you would do differently. Avoid the two weak versions: always paying everything down, or never going back to it.
Follow-up
  • How did you decide this debt was worth taking rather than postponing the feature?
  • What happened to the debt afterwards, and who owned it?
  • How would your decision change if the code touched payments or customer data?

How do you ensure your code meets high quality and security standards?

medium
Behavioral and Leadership

How do you ensure your code meets high quality and security standards?

Approach
  1. Describe your habits as a sequence you can name: a design check before coding, small pull requests with reviewers, unit and integration tests, static analysis and linting in CI, dependency and secret scanning, and a pipeline that blocks a merge on failure.
  2. Cover security in concrete practice: parameterised queries, input validation, authentication and object-level authorisation checks, least-privilege credentials, secrets kept out of code, and logs that omit personal and card data.
  3. Tell one story that proves the habit works: a review comment, a test or a scan that caught a real problem such as an injection risk, a missing permission check or an unsafe dependency, and what you changed afterwards. Without one, the answer reads as a list of tools.
  4. Say how you handle pressure: when a deadline collides with a failing check, you fix it, reduce scope or get a recorded exception with an owner, and you do not silently skip the check. Connect it to the documentation and audit-ready emphasis candidates describe at a bank.
Follow-up
  • What would you do if a security scan failed the night before a release?
  • How do you decide how much test coverage is enough for a payment flow?
  • Tell me about a vulnerability or serious bug that reached production and how you handled it.

Give an example of a time you had to explain a complex technical concept to a non-technical stakeholder.

medium
Behavioral and Leadership

Give an example of a time you had to explain a complex technical concept to a non-technical stakeholder.

Approach
  1. Pick a concept that really mattered to a decision, such as why a retry created a duplicate charge, why a migration needed a freeze, or what eventual consistency means for a balance display. Name the stakeholder and what they needed to decide.
  2. Lead with the decision and its consequence before the mechanism, then use one analogy that maps accurately and say where it stops being true. Skip jargon, or define each term in a sentence when you use it.
  3. Check understanding by asking them to say it back or to tell you what they would do next, and follow up in writing with a short summary and options. Show that you adjusted when your first explanation did not land.
  4. End with the result: the stakeholder made a decision, accepted a trade-off or changed a plan. Avoid the weak stories: talking down to the person, or one where only you spoke and nothing changed afterwards.
Follow-up
  • How did you know they understood, and what did you change when they did not?
  • What did you do when the stakeholder pushed back on a deadline or a technical constraint?
  • Which analogy have you used that turned out to be misleading?
  • 01

    Tell me about a time you had to resolve a conflict within your engineering team.

  • 02

    How do you approach a situation where requirements are ambiguous or constantly changing?

  • 03

    Describe a project where you had to balance technical debt with the need to deliver features quickly.

  • 04

    How do you ensure your code meets high quality and security standards?

  • 05

    Give an example of a time you had to explain a complex technical concept to a non-technical stakeholder.

  • 06

    Tell me about a time you had to pivot your technical strategy based on feedback.

PracHub preparation framework ↗
What stages do candidates report for the Anz Software Engineer loop?

Candidates describe three stages over roughly 3-5 weeks: a recruiter screening, a series of technical assessments that include online coding tests and live coding sessions, and a software design interview. Teams can differ, so ask your recruiter to confirm the order, the test platform and the language you may use.

PracHub Software Engineer practice ↗
Which languages and tools should I prepare?

Candidates list Java, C# and Python as the main languages, with JavaScript mentioned for some teams, plus SQL and Git. AWS or Azure, CI/CD and banking or fintech experience are listed as nice to have. Pick one language for coding practice and learn enough SQL to explain indexes, transactions and constraints.

PracHub Software Engineer practice ↗
What do the online coding tests look like?

Candidates name HackerRank and Pymetrics among the online assessments. The reported coding questions point to medium difficulty problems on arrays and hash maps, along with practical tasks such as finding duplicate accounts or validating a batch of records. Practise in a plain editor, state complexity, and handle empty and malformed input.

PracHub Software Engineer practice ↗
How should I handle a vague design question?

Candidates say design requirements can be left vague. Start with clarifying questions: who calls the system, expected load, which operations must never be duplicated or lost, and what a caller should see on failure. Then give the API, data model, write path, read path, failure handling and security, with trade-offs stated as you go.

PracHub Software Engineer practice ↗
Is the ANZx platform different from the rest of the bank?

Candidates describe the newer ANZx (ANZ Plus) units as having a more startup-like feel than the traditional banking divisions, with the technical bar still high. Ask your recruiter which area the role sits in, and prepare for both fast delivery and the compliance and documentation habits a bank expects.

PracHub Software Engineer practice ↗
What should I ask at the end of an interview?

Ask about the team's current engineering challenges, its stack and its roadmap, as candidates advise. Good specific questions include how the team reviews and tests changes, how it handles security and audit evidence in delivery, and how a release reaches production.

PracHub Software Engineer practice ↗
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.