Bank of China · Software Engineer
Updated · 2026-10-02

Bank of China Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Bank of China is a bank, and candidates describe the Software Engineer role as work on its banking software. That ranges from internal financial management tools to applications customers use directly, with new development sitting alongside existing legacy systems and regulatory requirements. Candidates describe writing, testing and debugging code, and working with project managers, security teams and business analysts to turn financial requirements into technical specifications.

This guide is for candidates applying to Bank of China as a Software Engineer, including students and early-career applicants who will be asked about their studies and projects. It covers each reported round, the reported questions on network security, Angular, system administration, project work and career motivation, and a seven-day plan that mixes technical review with spoken practice. Loops vary by location and team, so treat the structure as a reported pattern and not a fixed script.

Candidates report four rounds over roughly 3-5 weeks: Initial Screening, Technical Assessments, Manager Interviews and Behavioral Scrutiny, with slow feedback between stages.

Network Security / Network Attacks (Banking)ProgrammingProblem Solving (Technical)

33 min read

Browse Software Engineer questions

See the practice prompts

15Practice promptsAcross five skill areas

Candidates describe a loop of four stages that can stretch over several weeks, with gaps between rounds. It starts with a screening that is often a video call, moves to technical assessments, then to interviews with managers or team panels, and ends with behavioral interviews centred on professional presentation and consistency. The process is reported to vary by location and by team, so ask your recruiter in writing what each stage covers and which language it will run in.

The technical topics candidates report are network security (including the kinds of attacks seen against banking systems), programming, data structures, technical problem solving and walkthroughs of past projects. The reported question list is made of knowledge and experience questions: attack types, whether you have used Angular, your system administration and IT security background, how you manage a project, and the hardest problem you have solved. Candidates also mention coding challenges and design scenarios, so keep one session for data structures and code you can write cleanly. The requirements candidates describe also list database management, and the role involves integrating with legacy systems, so be ready to talk about SQL, schema decisions and safe changes to code you did not write.

Communication carries as much weight in the reports as technique. Candidates describe resume-based questioning in which every line of the CV can be examined, impromptu speech tasks on a topic you are handed, and interviews conducted in Mandarin in some regions. That makes the preparation spoken: rehearse a self-introduction, a reason for choosing banking and two project stories out loud, in the language of the interview, and keep the facts identical from round to round because consistency is the stated focus of the final stage.

01

Initial Screening

reported

Candidates report that the process opens with an initial screening, often held over a video call. It is the first time your CV and your motivation for banking are heard, so approach it as a clear, composed account of who you are, what you have built and why you want this role in a bank rather than any software job. Test your camera, audio and connection beforehand, and keep a one-page summary of your CV within reach so every date, employer and technology you state matches the document you submitted.

What to demonstrate

  • Clear, professional self-presentation over video
  • A spoken account of your background that matches your CV line by line
  • A reasoned motive for working in banking and in this role

How to prepare

  • Write and rehearse a spoken self-introduction and a reason for choosing Bank of China, in the language the screening will use.
  • Reread every line of your CV and prepare one sentence of detail for each project, tool and course it lists.
  • Ask the recruiter in writing which stages follow, their format and the interview language, since candidates report variation by location.
Bank of China Software Engineer candidate reports ↗
02

Technical Assessments

reported

Candidates report technical assessments meant to test your skills. The topics they list for the loop are network security and attacks on banking systems, programming, data structures, technical problem solving and the technologies in your past projects, with coding challenges and design scenarios also mentioned. Expect depth on how and why you chose a technique, so prepare explanations with a defence for each point (an attack paired with a countermeasure, a data structure paired with its cost), and treat anything on your CV as something to explain in detail.

What to demonstrate

  • Working knowledge of network security and the attacks seen against banking systems
  • Programming and data-structure fundamentals applied to a problem
  • Hands-on detail about the frameworks and tools in your projects

How to prepare

  • Write a one-page table of attack classes against a bank (phishing, credential stuffing, man-in-the-middle, DDoS, SQL injection, session hijacking) with how each works and one defence.
  • Practise a few data-structure problems in your strongest language, using PracHub's practice set on streams, graphs and ordered data, and explain complexity aloud.
  • For each framework on your CV, such as Angular, prepare what you built, a component or data-flow decision you made and a bug you fixed.
Bank of China Software Engineer candidate reports ↗
03

Manager Interviews

reported

Candidates report multiple rounds of interviews with managers or team panels. These are described as resume-based, covering project management, the projects you completed in studies or work, and how you collaborate with project managers, security teams and business analysts. Prepare two projects you can narrate end to end, with your own contribution separated from the team's, and a short method for running a project that you can describe with a real example.

What to demonstrate

  • Ownership and detail on the projects listed on your CV
  • Ability to explain technical ideas to non-technical colleagues
  • Handling several streams of work at once while keeping quality

How to prepare

  • Write a project story using situation, your decisions, the result and what you would change, for two projects, and say which parts were yours.
  • Prepare a project-management answer with a concrete sequence: scope, breakdown, tracking, risk handling and how you report progress.
  • Practise explaining one technical concept, such as TLS or database indexing, to a business analyst without jargon.
Bank of China Software Engineer candidate reports ↗
04

Behavioral Scrutiny

reported

Candidates describe the final stage as behavioral interviews focused on professional presentation and consistency, sometimes with an intense, semi-structured feel. Impromptu speech tasks, where you speak on a topic you are given, are also reported in the process. Approach this stage as a test of staying composed and coherent: keep the same facts and the same story you gave earlier, and organise any unprepared answer into an opening, a few supporting points and a closing line.

What to demonstrate

  • Consistency between your answers here, your CV and earlier rounds
  • Professional presentation and a respectful, composed tone
  • Structured thinking when speaking on a topic you did not prepare

How to prepare

  • Keep a one-page fact sheet of your stories (dates, roles, numbers, outcomes) and check every answer against it.
  • Practise impromptu speeches on general topics such as a current industry trend, using an opening, a few points and a closing line.
  • Rehearse the career-goals, hardest-challenge and why-this-bank answers until they agree with each other and with your self-introduction.
Bank of China Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Listing a framework or tool on the CV (Angular, a database, a security tool) that you cannot explain beyond its name

Candidates report line-by-line CV questioning. Remove anything you cannot defend, and for each item you keep, prepare what you built, one design decision and one bug you fixed.

02

Answering the network attacks question with a list of names and no defences

Pair each attack with how it works against a bank and one control that stops it, for example credential stuffing with rate limiting and multi-factor authentication. Practise saying it aloud, not just reading it.

03

Telling project stories entirely in the team's voice, so your own decisions are invisible

For each project say what you owned, what you decided, what went wrong and what the result was. Prepare this for the project walkthrough, the project-management question and the hardest-challenge question.

04

Giving a why-this-bank or career-goals answer that could be given to any employer

Name concrete reasons tied to banking engineering and this role, use the scale and reputation of the institution as only one of them, and link each goal to something the job offers.

05

Contradicting yourself between rounds, or freezing on an impromptu topic

Keep a fact sheet of dates, roles and outcomes and check every story against it. For impromptu speaking, use an opening, two or three supporting points and a closing line, and practise on random topics aloud.

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

11 technical prompts0 include a worked solution

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?

Merge partitioned event streams into one ordered feed with bounded lateness

hard
k-way mergewatermarksout-of-order streams

The read-model service consumes 64 log partitions carrying about 4,000 events per second in total. Each partition is ordered within itself, but partitions drift by up to 30 seconds, and the activity feed must present a tenant's events in occurred_at order. Produce the merge. State its complexity, the buffer it requires in events and in bytes, what happens when one partition is idle, and what you do with an event that arrives after you have already emitted its position. Payloads average 1 KB.

Approach
  1. Merge with a min-heap over the 64 partition heads keyed on (occurred_at, event_id): O(log P) per event and O(n log P) overall. The tie-break on event_id is what makes the output deterministic when two partitions carry the same millisecond, which matters because the feed is paginated and a non-deterministic order reorders pages under the reader.
  2. Emitting the heap head is only correct once every partition has produced everything up to that timestamp, so the emit condition is a watermark: the minimum across partitions of the highest occurred_at seen, less the allowed lateness. Events are held until the watermark passes them, which is what turns individually ordered streams into a jointly ordered one.
  3. Size the buffer from the lateness rather than guessing: 4,000 events per second times 30 seconds is 120,000 buffered events, and at 1 KB each about 120 MB of heap. That number is the real price of the ordering guarantee and belongs in front of whoever asked for it.
  4. Handle the idle partition explicitly, because it fails the feed rather than corrupting it: a partition with no traffic never advances its own maximum, so the watermark freezes and output stops entirely. Either every partition emits a periodic idle marker carrying the broker's current time, or the watermark falls back to wall clock for a partition silent beyond a threshold.
Follow-up
  • The lateness budget is raised to five minutes. What is the new buffer, and what besides memory changes?
  • The consumer restarts. Where does it resume from, and what does the feed look like for the first 30 seconds?

Archive a resource graph without breaking live references or recursing

medium
graph traversaltopological ordertenant isolation

Resources reference other resources within a tenant; for the largest tenant the reference table holds up to 2,000,000 nodes and 8,000,000 edges. Archiving a resource must archive everything reachable from it that nothing outside the set still references, refuse when a live external referrer exists, and terminate when references form cycles, which they legitimately do. Produce the archive order and the refusal list, targeting O(V+E). Say what stops the traversal crossing a tenant boundary, and why recursion is the wrong control structure at this size.

Approach
  1. Load the subgraph with the tenant predicate on both endpoints of the edge, not only on the side you started from. Scoping the left table alone is the classic cross-tenant leak: one mis-entered edge then pulls another tenant's resources into the traversal and, worse, into the archive.
  2. Traverse iteratively with an explicit stack. A 2,000,000-node graph can hold a chain deep enough to exhaust a native stack in the low tens of thousands of frames, and that failure is a process crash rather than an error you can return.
  3. Treat cycles as data rather than corruption: compute strongly connected components with Tarjan in O(V+E) using its own explicit stack, then condense. The condensation is a DAG, so a topological order over it gives the archive order, and every member of a component archives in one transaction because no order within a cycle is valid.
  4. Decide refusals with reverse edges. A candidate is archivable only if every in-edge originates inside the candidate set, so build the transpose or count in-degrees restricted to the visited set, and emit each blocked resource with the id of the external referrer, which is the only part of the answer an operator can act on.
Follow-up
  • The graph is read in one query and the archive writes a minute later. What can change in between, and how do you make the write safe?
  • The candidate set is 400,000 resources. Is that one transaction, and if not, what does a half-finished archive look like to a reader?

The plan follows the four reported rounds and their reported topics: security and networking, programming and data structures, databases and debugging, project narratives, and the spoken answers on motivation and career goals. Practice questions marked as PracHub practice are general preparation, not Bank of China material.

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 inventory your CV
  • Write the four reported rounds (Initial Screening, Technical Assessments, Manager Interviews, Behavioral Scrutiny) on one page with what each is reported to cover and the language it will run in.
  • List every project, tool, framework and course on your CV, and mark each one you could not explain in detail for several minutes.

Deliverable: A one-page loop map and a CV inventory that marks every item you can and cannot defend.

02Network security and attacks on banking systems
  • Build a table of attack classes against a bank (phishing, credential stuffing, man-in-the-middle, DDoS, SQL injection, session hijacking) with how each works and one control.
  • Write your system administration and IT security experience as a short account with one real episode, and say it aloud twice.

Deliverable: An attack-and-defence table plus one rehearsed security-experience answer.

Practice prompt ↗Practice prompt ↗
03Programming and data structures
  • Solve the PracHub practice problems on the heaviest tenants under memory pressure, merging partitioned event streams and archiving a resource graph without recursion, writing working code in your strongest language.
  • State time and space complexity for each solution aloud and list the edge cases you tested.

Deliverable: Three working solutions with complexity statements and a list of edge cases for each.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Databases and debugging
  • Work the PracHub practice problems on stopping join fan-out and writing an update that detects a concurrent edit, then explain why each query shape is correct.
  • Work the PracHub practice problem on a latency spike on one filter, and write the debugging sequence you followed.

Deliverable: Two corrected queries with explanations and a written debugging sequence for the latency problem.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Project narratives and the frameworks on your CV
  • Write two project stories covering the problem, your decisions, the result and what you would change, and mark which parts were yours alone.
  • Prepare your answer to the Angular question, the project-management question and the hardest-challenge question from those stories, then say each aloud.

Deliverable: Two project stories and spoken answers to the Angular, project-management, hardest-challenge and project walkthrough questions.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Self-introduction, motivation and impromptu speaking
  • Write and time a three-minute self-introduction, then record yourself and trim anything you could not discuss in depth.
  • Write your answers to why you chose Bank of China and how your career goals fit the role, in the interview language, and check that they agree with the introduction.
  • Give three impromptu talks on random topics using an opening, a few points and a closing line.

Deliverable: A timed self-introduction, two written motivation answers and three recorded impromptu talks.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full mock loop and consistency check
  • Run a mock of all four rounds in order, answering the security, project and behavioral questions aloud without notes.
  • Check every story against your CV fact sheet and fix any date, role or number that changes between answers.

Deliverable: A recorded mock loop and a corrected fact sheet with a short list of weak answers to redo.

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 and manager stages as built around professional presentation, consistency and resume-based detail. The reported prompts below cover your self-introduction, why you chose the bank, your career goals and your project record, so prepare each as a short story you can check against your CV and your other answers.

Can you explain your experience with system administration and IT security protocols?

medium
Technical and Domain Knowledge

Can you explain your experience with system administration and IT security protocols?

Approach
  1. State your real scope first: which systems you administered (Linux or Windows servers, a lab network, a cloud account, a database) and which you only used. CV scrutiny is reported, and an overstated claim fails on the first detailed question.
  2. Group the protocols and controls you actually touched by purpose: authentication and access (passwords, multi-factor authentication, SSH keys, role-based access, least privilege), data protection (TLS, VPN, disk and database encryption) and hygiene (patching, backups, logging and audit trails, firewall rules).
  3. Anchor the answer in one episode told in situation, action, result form: a mis-set permission, an expired certificate, a suspicious login or a patch rollout. Say what you changed, how you confirmed the fix, and what you put in place so it would not recur.
  4. Link it to software work: parameterised queries, secrets kept out of source control, least-privilege database accounts and audit logging, so the answer shows the habit carried into code.
  5. If your experience is academic, say so plainly and describe the lab you built, such as a server with key-only SSH and a certificate on a local site, then what you would learn next.
Follow-up
  • A customer account shows logins from two countries within an hour. What do you do first?
  • What is the difference between authentication and authorization, and where does each usually fail in a web application?
  • How would you rotate a leaked credential without taking the service down?

Introduce yourself in 3 minutes.

medium
Behavioral and Career Motivation

Introduce yourself in 3 minutes.

Approach
  1. Use a present, past, future shape: what you do or study now, two or three milestones that support a Software Engineer role in a bank (a project, security or database coursework, a measurable result), then what you want next and why this role.
  2. Write it as a script for three minutes, say it aloud against a timer and end on your own concluding sentence so the close is not cut off.
  3. Only mention what is on your CV and what you can discuss in depth. Each project or tool you name is something you may be asked to expand, and candidates report line-by-line CV questioning.
  4. Include one concrete result with your own part in it, using what I did and the outcome, rather than a list of duties or team achievements.
  5. Rehearse it in the language of the interview. Candidates report Mandarin interviews in some regions, so prepare the technical terms in both languages if that applies to you.
Follow-up
  • Which project from that introduction would you like to go into in more depth?
  • Why did you move from your last role or course to this one?
  • Which skill you mentioned is your strongest, and what is the evidence?

Why did you choose to pursue a career at Bank of China?

medium
Behavioral and Career Motivation

Why did you choose to pursue a career at Bank of China?

Approach
  1. Give two or three reasons specific enough to check: something you learned from public information about the bank's services or products, the engineering you expect (security-sensitive systems, regulated environments, new digital services alongside legacy platforms) and how your own background fits.
  2. Separate banking from software in general. Candidates are advised to show interest in the banking industry specifically, so say what draws you to money-moving software: correctness, security, reliability and accountability.
  3. Treat scale and reputation as one reason, as candidates are told to, and back it with substance. A reputation-only answer fits any large employer and is easy to challenge.
  4. Research before you answer and name one real thing precisely, such as a service you have used or read about. Do not state facts about the bank you cannot source.
  5. Keep pay and convenience out of the answer, and prepare a version in Mandarin if the interview may run in it.
Follow-up
  • Why banking rather than a technology company?
  • Why Bank of China rather than another bank?
  • What do you know about the bank's digital services, and what would you improve in one of them?

What are your personal career goals and how do they align with this role?

medium
Behavioral and Career Motivation

What are your personal career goals and how do they align with this role?

Approach
  1. Answer on two horizons: the first couple of years, naming skills this role gives you (writing, testing and debugging production code, working with security teams and analysts, integrating with legacy systems), and a longer-term direction such as deeper security expertise, architecture or technical leadership.
  2. Make the alignment explicit. For each goal, say what in this job moves you toward it, such as exposure to regulated systems for a security-minded goal or large codebases for an architecture goal.
  3. Show a trail of action: a certification, a course, a side project or a skill you picked up in the last year. Goals with no evidence sound rehearsed.
  4. Avoid goals that leave the role (starting a company, switching field) or that assume promotion paths you cannot know about, and do not claim to know the bank's career ladder.
  5. Keep the answer consistent with your self-introduction and your reasons for choosing this bank, since consistency across answers is the reported focus of the behavioral stage.
Follow-up
  • If you spent your first year maintaining legacy code, how would that fit your goals?
  • Which skill do you most want to build in your first year, and how will you do it?
  • Does the technical path or the management path appeal more, and why?
  • 01

    Can you explain your experience with system administration and IT security protocols?

  • 02

    Introduce yourself in 3 minutes.

  • 03

    Why did you choose to pursue a career at Bank of China?

  • 04

    What are your personal career goals and how do they align with this role?

  • 05

    What was the most difficult challenge you have faced, and how did you solve it?

  • 06

    How do you manage a project?

PracHub preparation framework ↗
How many rounds are there and how long does the process take?

Candidates report four rounds: Initial Screening, Technical Assessments, Manager Interviews and Behavioral Scrutiny, over roughly 3-5 weeks. Feedback between rounds can be slow, and the process varies by location and team, so use the gaps to review your CV and keep practising out loud.

PracHub Software Engineer practice ↗
Will the interviews be in English or Mandarin?

Candidates report that, depending on the region, many interviews are held in Mandarin. Ask the recruiter in advance which language each stage will use, and rehearse your self-introduction, project stories and technical terms in that language.

PracHub Software Engineer practice ↗
How do I prepare for the impromptu speech?

Candidates report impromptu speech tasks where you speak on a topic you are given. Practise with random topics aloud and use the same shape each time: an opening sentence, two or three supporting points with an example and a closing line. Aim for a calm, professional tone even when the topic is unfamiliar.

PracHub Software Engineer practice ↗
What technical topics should I review?

The reported topics are network security and attacks on banking systems, programming, data structures, technical problem solving and project experience. The requirements candidates describe also mention IT security and database management. Review attack types with defences, core data structures and SQL, and be ready to explain any framework on your CV, such as Angular.

PracHub Software Engineer practice ↗
How much will my CV and education be examined?

Candidates describe an interrogation-style review of the CV, with questions about your educational history, previous work and final-year or research projects. Know every line you have written, including dates, your role, the technologies used and the outcomes, and remove anything you cannot defend.

PracHub Software Engineer practice ↗
Do I need banking experience?

Candidates describe financial-services experience and knowledge of banking compliance as a plus, not a requirement. What they are asked for is an explanation of why you want to work in banking specifically, so prepare a reason grounded in public information about the bank and in the kind of secure, regulated software you want to build.

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.