Interview guides · Arab Bank
Arab Bank Software Engineer Interview Guide
Arab Bank Software Engineer interview prep: timed Math and English exams, OOP, SQL and REST vs SOAP questions, and a 7-day plan.
The 60-second brief
Arab Bank is a financial institution in the MENA region. Candidates describe the Software Engineer role as building and maintaining the bank's software: internal tools, customer-facing applications and integrations with core banking systems. The reported work also includes deploying applications with the IT Infrastructure team, bringing in solutions from external vendors and subsidiaries such as ACAPS, and turning business requirements into technical specifications. Engineers also take part in design discussions, code reviews and troubleshooting. The systems handle financial transactions, so security, data integrity and financial compliance run through the job. That is why the database and API questions in this loop are best answered with money and transactions in mind.
This guide is for candidates applying to Software Engineer roles at Arab Bank, including recent graduates. Candidates report that the degree, coursework and capstone project carry real weight, especially at junior and mid levels. The guide covers the four reported stages and the aptitude exam items: algebra, percentages, business-email grammar, reading comprehension and shape sequences. It also covers the technical questions on OOP, SQL tuning, REST versus SOAP and your own project stack, plus the behavioral and banking-domain questions. The requirements candidates describe are a computer science or related degree, OOP, SQL databases, basic IT infrastructure, and English and Arabic proficiency. Fintech experience, secure coding, web frameworks and core banking knowledge are listed as extras.
Candidates report four stages over roughly three to five weeks. First comes an HR phone screen, then timed standardized exams that act as a qualifying gate, then an in-person technical interview with technical leads, and finally a managerial interview with a unit or general manager.
Focus areas
- Technical Interview Preparation
- Software Engineering Knowledge
- English Language Skills
Overview
The unusual part of this loop comes before any technical conversation. Candidates report being invited onsite for timed multiple-choice exams in Mathematics and English, sometimes with an IQ or Arabic test added. Only those who pass go on to the interviews. The reported items are school-level: solving an equation, a percentage change between two years, compound interest, choosing the correct grammar for a business email, finding the main argument of a passage on market economies, and completing a shape sequence. The hard part is the pace. Preparing for this stage means timed practice sets and mental arithmetic, not new theory.
Candidates describe the technical interview as a conversation more than a coding exercise. It covers your university major, core computer science, how applications use networks, databases and servers, and the projects on your CV. The reported questions are fundamentals you should be able to explain cleanly and then defend: inheritance and polymorphism, speeding up a slow SQL query, REST versus SOAP, which language you would pick for a banking application and why, and a walkthrough of your latest project's stack. Less often, candidates mention cloud deployment, core banking architecture and enterprise security.
Give technical answers a banking angle where it fits naturally. Examples: decimal types instead of floating point for money, transactions and constraints for data integrity, idempotent retries for payment calls, and message-level security for older SOAP integrations. The managerial stage mixes more technical questions with behavioral and domain ones: why this bank, how technology helps a bank compete, and how you explain a technical issue to a non-technical manager. Prepare concrete stories. Also do your own research on the bank's public digital channels and on subsidiaries such as ACAPS.
The Arab Bank interview process
Candidates report the four stages below in this order. The exams are taken onsite first, and candidates who pass report coming back on a different day for the technical and managerial interviews.
HR Screening
Candidates report that the process starts with a phone call from HR. For some graduates, the first contact comes through a university outreach program instead. The call checks your background, gauges fit and explains what the role involves, and it is also where you find out which exams come next. Treat it as a factual conversation. Have your degree, graduation date, projects and availability ready, introduce yourself in English, and ask which assessments you will sit (Mathematics, English, IQ, Arabic) and where.
What to demonstrate
- Whether your degree, experience and availability match the opening
- How clearly you present your background, including in English
- Basic motivation for a software role at a bank
How to prepare
- Write a short English introduction covering your major, your strongest course or capstone, and one project with its stack. Say it aloud until it is fluent.
- Prepare a one-line answer to why Arab Bank, based on your own research into the bank and subsidiaries such as ACAPS. The same question comes up again later in the loop.
- Ask which exams you will take and whether they are onsite, so your aptitude practice can start the same day.
Standardized Assessments
Candidates describe this as a mandatory qualifying stage: timed multiple-choice exams in Mathematics and English, with a general IQ or Arabic test in some loops. The reported maths paper has about 25 questions in 45 minutes, covering algebra, arithmetic, percentages and logical reasoning. The reported English paper has about 50 questions in an hour, covering grammar, reading comprehension and vocabulary. Some candidates also report a pattern-recognition IQ test. The reported aptitude items, from solving for X to completing a shape sequence, come from this exam phase. Candidates rate the content as average and the clock as the real obstacle. Skip items that resist a first attempt and return to them at the end.
What to demonstrate
- Speed and accuracy on algebra, percentages and arithmetic without a calculator
- English grammar, vocabulary and reading comprehension on business-style text
- Pattern recognition in number and shape sequences, where an IQ test is given
How to prepare
- Do full timed sets at the reported pace (about 25 maths items in 45 minutes, about 50 English items in an hour) and log which item types cost you the most time.
- Drill mental arithmetic: converting fractions to percentages, percentage change, and compound interest at simple rates such as 10% over two years.
- Practise business-email grammar items and short passages where you must state the main argument. Eliminate options that are too narrow or not stated in the passage.
- If your HR call mentions an Arabic or IQ paper, add one timed set of each.
Technical Interview
Candidates report meeting technical leads in person, for example the prospective supervisor or the Head of IT Infrastructure. They say the reported technical questions come from the IT manager or a technical lead. Reports describe less competitive whiteboard coding than many software loops have. Instead there is more discussion of your university major, core computer science, IT infrastructure (how applications use networks, databases and servers) and past projects. The reported questions cover OOP concepts, SQL query tuning, REST versus SOAP, language choice for a banking application and the stack of your latest project. Candidates also mention data integrity and security for a transactions database, and the software development life cycle. Answer each question with a definition, a small example and the trade-off.
What to demonstrate
- Command of the fundamentals from your major: OOP, databases and SQL, networking and server basics
- Ability to explain the architecture and technology choices of the projects on your CV
- Applying general engineering knowledge to banking concerns such as security and data integrity
How to prepare
- Prepare a banking example for OOP and say it aloud: an Account base class with savings and current subclasses that override an interest method.
- Rehearse the SQL tuning sequence on a real database: run EXPLAIN on a slow query, add a composite index, then compare the two plans.
- Write one page on REST versus SOAP and one page on keeping a transactions table consistent (ACID transactions, constraints, decimal amounts, an audit trail).
- Sketch the architecture of every project on your CV and be ready to justify each component.
Managerial Interview
Candidates report a discussion with a unit or general manager that mixes more technical questions with behavioral ones. Some describe the final meetings as centred on academic background, past experience and general IT knowledge. The reported behavioral and domain questions fit this format: why this bank, how technology helps a bank in a market economy, a difficult technical challenge, competing deadlines, and explaining a technical issue to a non-technical manager. Bring concrete stories that show your own actions and measurable results. Connect technology to customer service and operations in specific terms, not slogans.
What to demonstrate
- Motivation for the bank and understanding of how software supports a bank's business
- Communication with non-technical stakeholders, often in English
- Prioritization and problem solving under pressure, shown through past examples
How to prepare
- Write four STAR stories: a hard technical problem, competing deadlines, explaining a technical issue to a non-specialist, and learning a technology quickly.
- Research the bank's public digital channels and subsidiaries such as ACAPS. Prepare two or three specific ways technology could improve its service or operations.
- Rehearse your answers in English and keep the technical terms precise, even if the conversation switches to Arabic.
Where candidates lose points
Working every maths exam item from scratch and running out of time.
Candidates report that the clock is the obstacle, not the content. Backsolve from the answer choices on algebra items, compute percentages by ratio, and mark and skip any item that resists a first attempt. Before the onsite day, practise full sets at the reported pace without a calculator.
Dividing a percentage change by the new figure, or mixing up percent and percentage points.
Always divide by the earlier value. Check yourself with a known pair: 80 to 100 is a 25% rise, and 100 to 80 is a 20% fall. Treat successive changes and compound interest as multiplication, never addition.
Answering the slow SQL query question with 'add an index' and nothing else.
Start from the execution plan and name the slow step. Then fix it: a composite or covering index, a rewritten predicate so the index can be used, fewer selected columns, or keyset pagination. Finish with what the index costs on a write-heavy transactions table.
Being unable to explain the architecture of a project on your CV, or the core courses of your degree.
Candidates report that the technical stage centres on the major and past projects, and that anything on the CV can come up. For each project, prepare the stack, a diagram, your part, one hard problem and what you would change. For the degree, review the core courses: data structures, databases, networks, OOP and software engineering.
Generic answers to the motivation and banking-domain questions, or an English introduction you have never said aloud.
Prepare specific reasons for choosing this bank from your own research, including subsidiaries such as ACAPS, and concrete examples of technology improving service, operations and risk. Rehearse your introduction and project walkthrough in English, since candidates report that the interviews mix Arabic and English.
Questions & practice
[English] Read the following paragraph about market economies and identify the main argument.
Medium · Aptitude and Logic (Standardized Tests)
Approach
- Read the first and last sentences first. The main argument usually sits in one of them, and the middle supplies evidence or examples.
- Separate claim from support. In a passage on market economies, a sentence such as 'prices coordinate supply and demand without central planning' is a claim. A statistic or an example from one industry is support.
- Follow signal words. 'However', 'yet' and 'but' often introduce the author's actual position after a view the author rejects. 'Therefore' and 'thus' mark the conclusion.
- Eliminate options that are too narrow (one supporting detail), too broad (all economies everywhere), true in general but not stated in the passage, or contradicted by it.
- Keep the economics vocabulary ready (supply and demand, competition, price mechanism, regulation, inflation) so unfamiliar terms do not slow your reading.
Follow-up
- What is the author's attitude toward government intervention, and which words show it?
- Which statement, if true, would most weaken the argument?
- Which statement is an inference the passage supports but does not state?
Find overlapping job attempts and peak concurrency from lease records
Medium · sweep line · intervals · leases
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
- 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.
- 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.
- 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.
- 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?
Diff a projection against the primary without per-row point reads
Hard · reconciliation · range hashing · throttling
The listing projection has drifted and some rows show a stale version. The primary holds 40,000,000 resource rows across 12,000 tenants while serving 1,200 writes and 14,000 reads per second. The obvious repair, reading each resource row and comparing its version against the projection, is correct and would eventually finish. Explain precisely why it is unacceptable here, then give a diff that finds the differing rows, state its complexity, and make it safe to run against a live primary. Replication lag is usually under 100 ms and is not bounded.
Approach
- Quantify the naive cost rather than calling it slow: 40,000,000 point reads at even 0.5 ms each is over five hours serialised, and the only lever is concurrency, which is exactly what you cannot spend. The primary's pool is sized for the write path, and 40,000,000 random reads evict the buffer cache that sustains the 85 percent cache hit rate, so the audit degrades the system it is auditing.
- Replace random access with one ordered pass per side. Both sides can be read in (tenant_id, resource_id) order, which is a sequential scan on each and a merge join in O(n) time and O(1) memory. For a dense diff that is the whole answer, and it reads the primary once instead of 40,000,000 times.
- For the expected sparse case, compare range hashes instead of rows: partition the key space, compute per range an order-independent aggregate over hash(resource_id, version), compare aggregates, and descend only into ranges that differ. With d differing rows and branching factor B, at most d ranges mismatch per level, so the drill-down examines O(d log_B(n/d)) ranges and reads full rows only in mismatching leaves.
- Aggregate with a sum modulo 2^64 or a multiset hash, never XOR. XOR is order-independent but self-cancelling, so two rows wrong in the same way, or a row duplicated on one side, leave the range aggregate matching and the range is declared clean.
Follow-up
- The diff reports 900 stale rows. How do you decide between patching those rows and rebuilding the projection from resource_revision?
- Same job, but the projection lives in a search index that cannot be scanned in key order. What changes?
How do you optimize a slow-performing SQL query?
Medium · Technical and IT Infrastructure
Approach
- Measure before you change anything. Get the actual execution plan (EXPLAIN ANALYZE in PostgreSQL, the actual execution plan in SQL Server, EXPLAIN PLAN in Oracle) and find the step that reads the most rows or takes the most time.
- Fix the access path. Index the columns used in WHERE and JOIN conditions. In a composite index, put equality columns before range columns: (account_id, txn_date) for 'this account's transactions this month'. Use a covering index to avoid extra table lookups.
- Remove whatever stops the index from being used: a function on the column (rewrite WHERE YEAR(txn_date) = 2024 as a date range), a LIKE with a leading wildcard, implicit type conversion, or OR across different columns.
- Cut the work. Select only the columns you need, filter before joining or aggregating, and replace correlated subqueries with joins or window functions. Replace deep OFFSET pagination with keyset pagination, and check for N+1 queries coming from an ORM.
- State the trade-off. Every index slows inserts and updates and takes space, which matters on a write-heavy transactions table. Also confirm that table statistics are current before blaming the query itself.
Follow-up
- The column has an index but the query still does a full scan. What could cause that?
- How would you speed up a monthly report over hundreds of millions of transactions without slowing the live system?
- When would you denormalize or use a materialized view?
Replace offset paging on the resource feed with keyset
Easy · keyset pagination · composite index · sort order
resource holds resource_id, tenant_id, owner_user_id, title, body_ref, version, status ('draft','active','archived','deleted'), created_at, updated_at, deleted_at, with an index on (tenant_id, status, updated_at DESC, resource_id DESC). The listing endpoint returns active resources for one tenant, newest update first, 50 per page, today with LIMIT 50 OFFSET n. Tenants reach page 400 and rows are created while they read. Write the keyset query, define what the cursor carries and how it is encoded, and say which part of the index each predicate uses. Assume PostgreSQL 16.
Approach
- Name the two failures separately. OFFSET 20000 makes the server produce and discard 20,000 rows, so page cost grows with depth rather than with page size. Independently, any write that changes how many rows sort above the offset moves the window between two fetches, and the direction decides which anomaly you get: an insert lands at the head of updated_at DESC and pushes already-returned rows down past the boundary, so they are returned a second time; a delete above the offset, or a row whose updated_at is bumped above the cursor, pulls rows up and one is never returned at all. Nothing in the response reveals either.
- Write the seek: WHERE tenant_id = $1 AND status = 'active' AND (updated_at, resource_id) < ($2, $3) ORDER BY updated_at DESC, resource_id DESC LIMIT 50. The row-value comparison is one index range rather than a disjunction, and both columns are NOT NULL, which is what makes that comparison well defined.
- Map each predicate onto the index: tenant_id and status are equality on the leading columns, (updated_at, resource_id) is the range, and the ORDER BY matches the index order so no Sort node appears and the scan stops after 50 rows. The DESC in the definition only matters for mixed directions — a plain ascending btree on the same columns is read backwards for this query.
- Put both sort columns in the cursor and nothing the client can tamper with into another tenant: base64 of (updated_at, resource_id), validated server-side, with tenant_id taken from the principal.
Follow-up
- The client asks for 'jump to page 400'. What do you offer instead, and what does the honest version cost?
- Sort order becomes user-selectable across four columns. How many indexes is that, and which would you refuse to add?
[Math] Solve for X in this algebraic equation within 60 seconds.
Medium · Aptitude and Logic (Standardized Tests)
Approach
- Isolate X with inverse operations in a fixed order: clear fractions by multiplying both sides by the least common denominator, expand brackets, collect the X terms on one side, then divide by the coefficient. Example: (2x - 3)/5 = 3 gives 2x - 3 = 15, so x = 9.
- With answer choices, backsolve. Substitute the middle option first. If the left side comes out too large, the answer is among the smaller options, which halves the work.
- For a quadratic, try factoring first. For x^2 - 5x + 6 = 0, look for roots that sum to 5 and multiply to 6: x = 2 or x = 3. Use the quadratic formula only when factoring fails.
- Watch the classic traps: losing a negative sign when moving a term across, multiplying only some terms by the denominator, and forgetting to flip an inequality sign when dividing by a negative number.
- If an item resists a first attempt, mark it and move on, then come back once the rest of the paper is done.
Follow-up
- Solve the system 2x + y = 11 and x - y = 1. (Add the equations: 3x = 12, so x = 4 and y = 3.)
- If 3(x - 2) = 2x + 5, what is x, and how do you check it in a few seconds? (x = 11; both sides equal 27.)
[Math] Calculate the percentage increase in revenue given two annual figures.
Medium · Aptitude and Logic (Standardized Tests)
Approach
- Percentage change = (new - old) / old x 100, and the base is always the earlier year. Revenue going from 80 to 100 is a 25% increase. Dividing by 100 instead gives 20%, which is a typical distractor.
- Do it mentally by ratio: 100/80 = 1.25, so +25%. For awkward figures, simplify first: 1,260 against 1,200 is a difference of 60, and 60/1,200 = 5%.
- Know the reverse case. After a 20% rise the value is 1.2 times the original, so a current figure of 360 means the original was 300. It is not 360 x 0.8 = 288.
- Successive changes multiply: +10% then -10% gives 1.1 x 0.9 = 0.99, a net 1% fall. Compound interest, which candidates also report, follows the same rule: A = P(1 + r)^n, so 1,000 at 10% for two years is 1,210.
- Keep percent and percentage points apart: a margin going from 10% to 12% is a 2-point rise but a 20% relative increase.
Follow-up
- Revenue fell 25% one year and rose 25% the next. Is it back where it started? (No: 0.75 x 1.25 = 0.9375, a 6.25% net fall.)
- What is the average annual growth rate if revenue doubles in three years? (2^(1/3) - 1, about 26%.)
- How does the compound interest formula change if interest is compounded monthly instead of yearly?
[English] Select the correct grammatical structure to complete the business email.
Medium · Aptitude and Logic (Standardized Tests)
Approach
- Read the whole sentence before looking at the options. The blank usually tests one rule: subject-verb agreement, tense consistency, the right preposition, an article, or parallel structure.
- Know the fixed forms of business email: 'I look forward to hearing from you' (to + -ing, because 'to' is a preposition here), 'Please find attached', 'Further to the meeting', 'As discussed'.
- Check agreement across phrases that sit between subject and verb. In 'The list of approved vendors is attached', the subject is 'list', not 'vendors'. With 'neither ... nor', the verb agrees with the nearer subject: 'Neither the manager nor the analysts were informed'.
- Eliminate options in the wrong register (contractions, slang) and options that are grammatical but change the meaning. If two are left, put each into the sentence and read it once.
- Common traps: 'since' versus 'for' with periods of time, 'affect' versus 'effect', 'its' versus 'it's', and 'who' versus 'whom' ('whom' after a preposition, as in 'to whom it may concern').
Follow-up
- Which is correct: 'The report, along with the invoices, was sent' or 'were sent'? Why?
- Rewrite an informal sentence in a formal email register.
- When do you use the present perfect instead of the simple past in a status update?
[Logic] Which of the following shapes logically completes the sequence?
Medium · Aptitude and Logic (Standardized Tests)
Approach
- Test one attribute at a time across the sequence: rotation (often 45 or 90 degrees, clockwise or anticlockwise), number of sides or elements, shading or colour, position of a small element, and size.
- Expect two rules running at once with different periods. For example, a shape might rotate 90 degrees each step while its shading changes every other step. Write each rule down separately.
- Predict the missing figure before you look at the options, then eliminate any option that breaks one of the rules. The one left is the answer.
- For number sequences in the same paper, check the differences, then the second differences, then ratios, then alternating or Fibonacci-style rules. For example, 2, 6, 12, 20, 30 has differences of 4, 6, 8, 10.
Follow-up
- In a 3x3 matrix puzzle, how do you check whether the rule runs along rows, columns or diagonals?
- What comes next in 3, 5, 9, 17, 33? (The differences double, so 65.)
- What do you do when two options both seem to fit the pattern?
What programming languages are you most comfortable with, and why would you choose them for a banking applicat
Medium · Technical and IT Infrastructure
What programming languages are you most comfortable with, and why would you choose them for a banking application?
Approach
- Name a language you can actually defend from your projects, then argue from its properties. For a banking application those are static typing, a mature ecosystem for transactions and security, long-term maintainability and strong tooling. Java and C# are common answers for back-end services, with Python for scripting and data work. Do not claim to know which language the bank itself uses.
- Make the point about money. Never store currency in float or double, because 0.1 + 0.2 is not exactly 0.3 in binary floating point. Use BigDecimal in Java, decimal in C# or Python, or integer minor units (cents), with an explicit rounding mode such as HALF_EVEN.
- Cover concurrency and transactions: thread-safe handling of shared state, database transactions for transfers, and framework support you have used, such as Spring's transaction management in Java.
- Close with a trade-off. Java is verbose and starts slowly, but gives type safety and a large library ecosystem. Python is fast to develop in, but runtime type errors become a risk in a large codebase.
Follow-up
- Why exactly is double unsafe for a balance, and which rounding mode would you pick?
- How would you stop two concurrent withdrawals from overdrawing an account?
- Which language would you avoid for a core transaction service, and why?
Explain the concepts of inheritance and polymorphism in object-oriented programming.
Medium · Technical and IT Infrastructure
Approach
- Define inheritance as an is-a relationship in which a subclass reuses and extends a base class. Example: an Account base class holds the balance and the deposit logic, and SavingsAccount and CurrentAccount extend it.
- Define polymorphism as one interface with many behaviours. Runtime polymorphism comes from overriding: calculateInterest() is declared on Account, each subclass overrides it, and a loop over a List<Account> calls the right version through dynamic dispatch. Compile-time polymorphism is method overloading: the same name with different parameter lists.
- Contrast abstract classes with interfaces. An abstract class carries shared state and partial implementation, and Java and C# allow only one base class. An interface is a contract, and a class can implement many. Explain that Java disallows multiple class inheritance because of the diamond problem.
- Show judgement. Prefer composition over deep hierarchies, and respect the Liskov substitution principle. A subclass that throws on a method the base class supports, such as a FixedDepositAccount that rejects withdraw(), is a sign the hierarchy is wrong.
Follow-up
- What is the difference between overloading and overriding, and which one is resolved at compile time?
- When would you use an interface instead of an abstract class?
- How does encapsulation protect the balance field in your Account example?
Describe the difference between a REST API and SOAP, and when you would use each.
Medium · Technical and IT Infrastructure
Approach
- SOAP is a protocol. It sends XML messages in an envelope, defines a formal contract in WSDL, and has built-in standards such as WS-Security for message-level signing and encryption, plus support for reliable messaging. It usually runs over HTTP but is not tied to it.
- REST is an architectural style. Resources are addressed by URLs and manipulated with standard HTTP methods (GET, POST, PUT, PATCH, DELETE). Requests are stateless, payloads are usually JSON, and HTTP caching applies. It is lighter and is the default choice for web and mobile clients.
- When to use each: SOAP for existing enterprise and legacy integrations that already publish WSDL contracts or need message-level security across intermediaries. REST for new web, mobile and partner APIs where simplicity and performance matter, secured with TLS, OAuth 2.0 tokens and sometimes mutual TLS.
- Add the banking detail. GET, PUT and DELETE are idempotent, but POST is not. A transfer endpoint therefore needs an idempotency key, so that a client retrying after a timeout cannot move the money twice.
Follow-up
- How would you version a REST API without breaking existing clients?
- A client times out on a payment POST. How does your API stop the retry from charging twice?
- How would you expose a legacy SOAP service to a mobile app?
Walk me through the technical stack of your most recent project.
Medium · Technical and IT Infrastructure
Approach
- Use a fixed order: what the system does and for whom; then the layers (client, API, business logic, database, hosting and deployment); then one request traced from end to end.
- Justify each choice with a reason you can defend: why that framework, why a relational database rather than a document store, how authentication works, and how the system was deployed and monitored.
- Say exactly which part you built, and describe one hard problem in it with the diagnosis and the result. That is where the follow-up questions will go.
- End with what you would change now, such as a missing index, no automated tests, or secrets kept in config files. This shows you can critique your own work. Be ready to sketch the architecture on paper.
Follow-up
- How did you secure user data and credentials in this project?
- What would break first if the number of users grew a hundredfold?
- How did you test and deploy changes?
Every query on one table stalls for forty seconds mid-deploy
Medium · lock contention · ddl · migrations
During a release on PostgreSQL, every query touching resource times out for about 40 seconds and then recovers with no intervention. The release ran one migration, ALTER TABLE resource ADD COLUMN archived_reason TEXT, and the migration log shows it completing in 6 ms. Unrelated tables showed no change in error rate. Explain how a 6 ms statement caused a 40-second stall, give the ordered checks you would run on a live system to confirm it, and give the migration procedure that prevents a repeat.
Approach
- Separate the statement's duration from the lock's duration. ADD COLUMN with no default is a catalogue-only change and genuinely runs in milliseconds, but it requires ACCESS EXCLUSIVE, and it cannot acquire that until every transaction already touching the table has finished.
- Account for the queueing, which is the part that surprises people. A lock request that is waiting blocks later requests for conflicting modes behind it rather than letting them overtake, so one long-open transaction holds the DDL and the DDL holds all the traffic. The stall length is set by the longest open transaction, not by the size of the change.
- Confirm on a live system in this order: pg_stat_activity for that table ordered by xact_start, looking for the oldest transaction and specifically for state = idle in transaction; then pg_locks where granted = false to find the waiter; then join them on pid to name blocker and blocked. pg_blocking_pids() does that join for you and is the fastest single call.
- Prevent rather than merely time it better. Set lock_timeout to a second or two on the migration session so the DDL abandons the queue after a bounded wait and is retried, instead of holding it for as long as the oldest transaction lives. Be exact about what that buys: queries arriving during the wait still queue behind the pending ACCESS EXCLUSIVE request, so each attempt costs them up to one lock_timeout of added latency. The outage goes from 40 seconds to about one second per attempt, not to zero. Also run migrations away from deploy-time peaks, and put a statement timeout and an idle-in-transaction timeout on the analytics role that opens the long transactions.
Follow-up
- The same release also wants NOT NULL on that column. What is the sequence that gets there without a long lock?
- Your lock_timeout retry fails ten times in a row because the analytics transaction is always open. What do you change?
Suggested practice checklist
The plan follows the reported order. The aptitude exams come first because they gate the rest, then the technical fundamentals and project questions, then the behavioral and domain answers. It ends with a timed mock exam and a spoken mock interview.
Day 1 — Maths aptitude: algebra and percentages
- Solve a timed set of 25 algebra and arithmetic items at the reported pace, backsolving from the answer choices where you can.
- Work 15 percentage items: change between two years, reverse percentages, successive changes and compound interest.
- Do a mental arithmetic drill on fraction-to-percent conversions and multiplication, without a calculator.
Deliverable: A scored timed set, a percentages sheet with every error corrected, and a list of the item types that cost you the most time.
Day 2 — English and logic papers
- Complete a timed set of business-email grammar items and note the rule behind each mistake (agreement, tense, preposition, article).
- Read five short passages on economics or business and write each main argument in one sentence before checking the options.
- Solve a set of shape and number sequences, writing down each rule (rotation, count, shading, differences) before you choose an answer.
Deliverable: A grammar error log sorted by rule, five one-sentence main arguments, and a list of the sequence rules you met.
Day 3 — OOP and language choice
- Write an Account base class with SavingsAccount and CurrentAccount subclasses that override calculateInterest(), and call it through a list of Account references.
- Using the same example, explain overloading versus overriding and abstract class versus interface aloud.
- Write out your answer on which language you would choose for a banking application, including why currency needs a decimal type and which rounding mode you would use.
Deliverable: A working class hierarchy, a recorded spoken explanation of polymorphism, and a written answer on language choice.
Day 4 — SQL tuning and APIs
- Load a transactions table with a few hundred thousand rows, write a slow filtered query, read its plan with EXPLAIN, add a composite index and compare the plans.
- Rewrite a date filter that blocks index use and an OFFSET-paginated query, then work the keyset pagination practice question.
- Write a one-page comparison of REST and SOAP that ends with how an idempotency key protects a payment POST from a retry.
Deliverable: Before-and-after query plans with timings, a rewritten keyset query, and the REST versus SOAP page.
Day 5 — Projects, infrastructure and data integrity
- For each CV project, draw the architecture and write down the stack, your part, one hard problem and one thing you would change.
- Write out how you would keep a financial transactions database consistent and secure: ACID transactions, constraints, decimal amounts, access control, encryption and audit logs.
- Work the practice question on queries stalling mid-deploy to rehearse how locks and schema migrations affect a live database.
Deliverable: One architecture sheet per project, a data-integrity outline, and notes on your diagnosis of the deploy stall.
Day 6 — Behavioral stories
- Write STAR stories for a difficult technical challenge, competing deadlines, and explaining a technical issue to a non-technical manager, each with a measurable result.
- Add a fourth story about learning a new technology quickly to finish a project.
- Tell each story aloud in English and cut anything that is not your own action or its outcome.
Deliverable: Four written STAR stories and a recording of each one told aloud.
Day 7 — Domain answers and full mock
- Research the bank's public digital services and subsidiaries such as ACAPS, and write your answer to why Arab Bank with two specific reasons.
- Write your answer on how technology helps a bank compete, with one example each for customer channels, operations and risk.
- Run a mock: one timed maths set and one timed English set, then answer three technical and three behavioral questions aloud in English.
Deliverable: A research sheet, two written domain answers, and scores and notes from the mock.
Behavioural preparation
Candidates report that the managerial stage combines technical questions with behavioral ones, and that the final conversations focus on academic background, past experience and motivation for working at a bank. Prepare stories that show your own decisions and results, and domain answers that connect software to service, operations and security at a bank. Practise delivering them comfortably in English.
- Tell me about a time you had to learn a new technology quickly to complete a project.
Why do you want to work for Arab Bank?
Medium · Behavioral and Domain Knowledge
Approach
- Build the answer from three parts: what draws you to banking technology; what you know about Arab Bank from your own research (its presence across the MENA region, subsidiaries such as ACAPS, its public digital channels); and how your degree and projects fit the role.
- Name a specific kind of work you want to do, such as secure transaction systems, core banking integrations or internal tools, and link it to a project you have built.
- Avoid reasons that would fit any employer (stability, reputation, salary), and do not state facts about the bank that you cannot back up. One accurate specific is better than three vague ones.
- Keep it short, and finish with what you would contribute in your first months.
Follow-up
- What do you know about the bank's digital services?
- Why a bank rather than a software company?
- Where do you see yourself in a few years?
How do you think our technology helps us succeed in today's market economy?
Medium · Behavioral and Domain Knowledge
Approach
- Organize the answer around three areas. Customer channels: mobile and online banking, faster onboarding. Operations: automating manual processes, straight-through processing of transactions, fewer errors. Risk: fraud detection, security, regulatory reporting.
- Give one concrete example per area with its effect on the business. Automated account opening reduces branch workload. Real-time fraud rules reduce losses. Reliable APIs let a bank integrate partners and fintech services.
- Tie it to competition. Customers compare banks with digital-first competitors, so the availability, speed and security of digital services affect whether they stay.
- Base any claim about the bank's own systems on public information you have actually read. Otherwise, speak in general terms and say what you would want to learn once you join.
Follow-up
- Which of these improvements would you build first, and why?
- How do you balance security against convenience in a mobile banking login?
- How would you measure whether a new digital service is succeeding?
Tell me about a time you faced a difficult technical challenge and how you overcame it.
Medium · Behavioral and Domain Knowledge
Approach
- Use STAR, but spend most of the time on the actions. Give the problem in a sentence or two and what was at stake, then your diagnosis step by step: your hypotheses, what you measured or logged, and what you ruled out.
- Pick a technical problem with a clear root cause, such as a slow query, a memory leak, a failing integration or a concurrency bug, so the follow-up questions stay in territory you know.
- Quantify the result (response time cut from 8 seconds to under 1, error rate reduced, deadline met) and say what you changed afterwards to stop it recurring.
- The story fails if your own contribution is unclear. Say 'I' for your own actions and credit teammates explicitly for theirs.
Follow-up
- What did you try first that did not work?
- How did you confirm that the fix addressed the root cause?
- What would you do differently now?
How do you prioritize your tasks when dealing with multiple urgent deadlines?
Medium · Behavioral and Domain Knowledge
Approach
- Describe a real method. List the tasks, rank them by business impact and hard deadline, note dependencies (who is blocked waiting on you), and estimate effort. Do the urgent and important work first, then whatever unblocks others.
- Show communication. When everything cannot be done, tell your manager early, suggest an order and say what will slip, and get agreement instead of silently missing a deadline.
- Back it with a specific example: two deadlines that collided, the decision you made, and the outcome.
- Avoid answers that rest only on working longer hours or multitasking, because they show effort, not prioritization. In a banking context, mention that a production or security issue usually overrides feature work.
Follow-up
- Two managers each say their task is the top priority. What do you do?
- Tell me about a time you missed a deadline.
- How do you track your tasks day to day?
Describe a time when you had to explain a complex technical issue to a non-technical manager.
Medium · Behavioral and Domain Knowledge
Approach
- Choose a story where the manager had to make a decision based on your explanation, such as approving a delay, a budget, a vendor change or a security fix.
- Show the technique. Lead with the impact and the decision needed, use an analogy (a database index works like the index of a book), drop the jargon, give the one number that matters, and check understanding by asking how they would summarise it to their own manager.
- Close with the outcome: the decision that was made, what happened next, and the written summary you sent afterwards.
- The story fails if it shows impatience with the listener, or if your explanation never led to any action.
Follow-up
- How did you know the manager understood?
- What would you have done if they still disagreed?
- How do you explain a security risk without causing alarm?