Amerisave Mortgage · Software Engineer
Updated · 2026-10-02

Amerisave Mortgage Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Amerisave Mortgage works in mortgages, and candidates describe the Software Engineer role as building and maintaining the software behind the mortgage process that loan applicants go through. Reported duties include designing and developing applications, gathering requirements with cross-functional teams, reviewing code and troubleshooting defects. The requirements candidates describe name Java and SQL as the core skills, with Git for version control. Familiarity with AWS or Azure, microservices, JavaScript or Python, and Agile working is listed as a plus.

This guide is for candidates interviewing for the Software Engineer role at Amerisave Mortgage. It covers the five reported rounds (Initial Screening, Technical Assessment, Technical Interviews, Coding Challenges and Experience Discussion), the Java, SQL, debugging and coding questions candidates report, the behavioral prompts, and a seven-day plan. It does not cover other roles or teams, and the exact format can differ by team.

Candidates report five rounds over roughly 4-6 weeks: a recruiter screening, a technical assessment (a take-home or a proctored online exam), technical interviews with team members, coding challenges, and a discussion of past experience and projects.

JavaSQLDatabase querying (joins, SELECTs, predicates)

27 min read

Browse Software Engineer questions

See the practice prompts

14Practice promptsAcross five skill areas

The reported question set is narrow and built on fundamentals. On the Java side it is object-oriented programming, abstract classes versus interfaces, and common performance problems. On the SQL side it is join types, finding duplicate rows and tuning a slow query. Add a debugging walkthrough, a Java linked-list reversal and a medium algorithm problem, and you have most of the technical surface candidates describe. Prioritise depth on these fundamentals over breadth: practise explaining why an abstract class and an interface differ in design terms, or why a query is slow, before you spend time on extra frameworks.

The role description candidates report is application work on mortgage processes: building features, reviewing code, working with cross-functional teams on requirements, and debugging defects. Use that when you prepare answers. Show that you can read a requirement, choose a sensible structure, write correct Java and SQL, and explain a defect from symptom to cause. Loan and borrower records make natural examples, so duplicate rows, joins that fan out and slow queries are good topics to have ready.

The loop also has a stage devoted to past experience and project work, and the behavioral prompts candidates report are about teamwork, feedback and adapting to change. Prepare two projects you can explain end to end, including your own decisions, plus three short stories. Keep Git fluent, since version control is a listed must-have, and if you have touched AWS, Azure, microservices, JavaScript, Python or Agile teams, have a one-sentence concrete example for each.

Reports describe the technical assessment as either a take-home or a proctored online exam, with Examity named as one platform. Practise both modes: untimed careful work with tests and a readme, and timed work in a plain editor without your usual tooling.

01

Initial Screening

reported

Candidates report that the process starts with a screening by a recruiter. Nothing more is reported about its content, so use it as a chance to ask which format the technical assessment takes and which language it allows, and keep a short account of your own background ready.

What to demonstrate

  • No detail is reported on how this screening is assessed, so treat it as a first conversation with the recruiter
  • Java, SQL and Git are the skills candidates describe as core, so be ready to speak plainly about your own experience with them

How to prepare

  • Write a two-minute walk through your career that names where you used Java, SQL and Git, and one outcome from each.
  • Prepare a single honest sentence for each nice-to-have you have really used (AWS or Azure, microservices, JavaScript or Python, Agile), and say nothing about the ones you have not.
  • Ask what the technical assessment looks like and what you need to set up in advance.
Amerisave Mortgage Software Engineer candidate reports ↗
02

Technical Assessment

reported

Reports mention either a take-home or a proctored online exam, with Examity named as one platform. Which one you get may depend on the team. In both formats, aim for correct, readable code. Java and SQL are the skills candidates say the technical stages test.

What to demonstrate

  • Java proficiency, one of the two skills candidates name for the technical stages
  • SQL querying, including joins, SELECTs and predicates, which candidates list among the tested topics

How to prepare

  • For a take-home, practise delivering a small Java project with unit tests, a short readme that states your assumptions and a tidy Git history.
  • For a proctored exam, do two timed practice sessions in a plain editor with no autocomplete, covering the SQL duplicates and join questions and a Java problem.
  • Read the platform instructions as soon as you receive them and test your camera, browser and connection beforehand.
  • Rehearse the abstract class versus interface comparison and the join types so they come out without notes.
Amerisave Mortgage Software Engineer candidate reports ↗
03

Technical Interviews

reported

Candidates report one or more technical interviews with team members. Java and SQL fundamentals are the reported question topics overall: object-oriented principles, abstract classes versus interfaces, common Java performance issues, join types, duplicate records and slow-query tuning. Reports do not say which stage asks which question, so use these topics as preparation for this round. Answer them with structure and a concrete example, not a bare definition.

What to demonstrate

  • Java fundamentals such as object-oriented programming
  • SQL: writing queries and tuning them for given scenarios
  • Clear explanation of technical thinking, a communication area candidates report

How to prepare

  • Give each fundamentals answer a fixed shape: one-line definition, a small code or query example, a trade-off and a case where you would choose the other option.
  • Prepare a Java performance checklist covering object churn, string concatenation in loops, boxing, collection choice, N+1 queries, locking and leaks.
  • Run EXPLAIN on a slow query of your own and narrate the plan out loud.
  • Prepare the technical-problem story so it names a symptom, a hypothesis, the evidence and the fix.
Amerisave Mortgage Software Engineer candidate reports ↗
04

Coding Challenges

reported

Candidates report that coding challenges may come up during the process, and that coding can be live or a take-home. The reported coding questions are a medium-level algorithm problem from LeetCode, to be solved on a whiteboard or in a coding interview, and a Java function that reverses a linked list. If you work one live, say your reasoning aloud.

What to demonstrate

  • Coding skills, which candidates describe as tested through live exercises or take-home work
  • Algorithmic thinking: how you approach a problem and structure a solution
  • Explaining your approach clearly while you code

How to prepare

  • Write the iterative linked-list reversal in Java from memory, then do the recursive version, then trace both on a one-node and an empty list.
  • Practise a few medium problems on arrays, hash maps, two pointers and trees, stating brute force, then the improvement, then complexity before you write code.
  • Do at least one session on paper or a whiteboard without running the code, and finish by hand-tracing a test case.
  • Rehearse the debugging walkthrough so that you can narrate it step by step on a live problem.
Amerisave Mortgage Software Engineer candidate reports ↗
05

Experience Discussion

reported

Candidates report a stage covering past experience and project work. The behavioral prompts (teamwork toward a shared goal, handling feedback, adapting to a significant change) and the technical-problem question are reported for the process as a whole, and they are good material to have ready for this conversation. Know your own decisions on each project well.

What to demonstrate

  • Ability to describe technical work clearly
  • Examples of past teamwork, which candidates are advised to prepare

How to prepare

  • Pick two projects and write for each the goal, your exact role, the stack, one hard decision and the result.
  • Write three short stories, one each for teamwork, feedback and adapting to change, in situation, action, result form with first-person verbs.
  • Prepare an answer on code review, since reviewing code is a reported duty of the role.
  • Practise cutting each story to the essentials and know the longer version for follow-ups.
Amerisave Mortgage Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Defining abstract class and interface by textbook sentence only

Give the design reasoning: an abstract class shares state and partial implementation within a family of types, while an interface defines a contract that unrelated classes can implement, and a class can implement several. Mention default methods and a case where you would pick each, with a short code example.

02

Writing the duplicates query without saying what counts as a duplicate

Ask which columns define a duplicate first. Then show GROUP BY on those columns with HAVING COUNT(*) > 1, and a ROW_NUMBER() OVER (PARTITION BY ...) version for when the rows themselves are needed, for example to delete all but one. Remember NULLs group together in GROUP BY.

03

Saying add an index when asked how to optimise a slow query

Start with the execution plan, then check predicates for sargability, join order and row estimates, and select only needed columns. If you propose an index, state the trade-off: it speeds reads (and the row lookup for UPDATE and DELETE) that match its first columns, but adds cost to every INSERT and to updates of indexed columns. Confirm the read gain by re-running the plan and comparing timings, then check the write path.

04

Reversing the linked list with pointer errors or missing empty and single-node cases

Keep three references (previous, current, next), save next before rewiring, return previous at the end, and hand-trace an empty list, one node and two nodes. State O(n) time and O(1) extra space for the iterative form and the stack cost of the recursive form.

05

Giving behavioral answers where the group does the work and you are absent

For the teamwork, feedback and change stories, write them in first person and name your decision, the cost or friction and the result. Rehearse each aloud until it runs briefly, and keep detail ready for follow-ups.

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

Solve a medium-level algorithm problem from LeetCode on a whiteboard or during a coding interview.

medium
Coding / Algorithms

Solve a medium-level algorithm problem from LeetCode on a whiteboard or during a coding interview.

Approach
  1. Clarify the input size and constraints before coding. They set the target complexity: around 10^5 elements rules out O(n^2) and points to O(n log n) or O(n).
  2. Say the brute-force approach and its complexity, then match the problem to a pattern: a hash map for lookups and counts, two pointers or a sliding window for contiguous ranges, sorting for intervals, BFS/DFS for grids and graphs, a heap for top-k, binary search on a monotonic condition, dynamic programming for overlapping subproblems.
  3. In Java, pick the right library types: HashMap/HashSet, ArrayDeque as both stack and queue (not the legacy Stack class), and PriorityQueue, which is a min-heap by default (pass a comparator for a max-heap).
  4. Before calling it done, test edge cases aloud: empty input, a single element, duplicates, negative numbers and int overflow (use long). Dry-run one small example, then state the final time and space complexity.
Follow-up
  • Can you reduce the space complexity of your solution?
  • How would your solution change if the input arrived as a stream?
  • What is the worst-case input for your approach, and how does it perform there?

Write a function in Java to reverse a linked list.

medium
Coding / Algorithms

Write a function in Java to reverse a linked list.

Approach
  1. Define the node class (int val; ListNode next) and confirm it is singly linked and should be reversed in place, returning the new head.
  2. Iterative version with three pointers: prev = null, curr = head; in the loop save next = curr.next, set curr.next = prev, then advance prev = curr and curr = next. Return prev. This is O(n) time and O(1) extra space.
  3. Cover the edge cases: a null head and a single node both come back unchanged from the same loop with no special-case code. Trace a three-node list on the whiteboard to show no node is lost.
  4. The recursive version (reverse the rest, then set head.next.next = head and head.next = null) is also O(n) time but uses O(n) call stack. On a very long list in Java that can throw StackOverflowError, which is why I default to the iterative one.
Follow-up
  • Reverse only the nodes between positions m and n.
  • Reverse the list in groups of k nodes.
  • How would you check first whether the list contains a cycle?

Find overlapping job attempts and peak concurrency from lease records

medium
sweep lineintervalsleases

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

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

The plan follows the reported rounds: fundamentals in Java and SQL first, then performance and debugging, live coding, and finally the project and behavioral discussion, with a full run-through on the last day.

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 refresh Java OOP
  • Write the five reported rounds on one page and note the format questions to ask the recruiter, especially take-home versus proctored exam.
  • Write a one-page explanation of the four object-oriented principles, each with a small Java example.
  • Write the abstract class versus interface comparison, including default methods and multiple inheritance of type, and one case for each choice.

Deliverable: A one-page loop map, a one-page OOP summary with four Java examples, and a written abstract class versus interface comparison.

Practice prompt ↗Practice prompt ↗
02SQL joins and duplicate records
  • Create two small tables and write INNER, LEFT, RIGHT, FULL and CROSS joins on them, noting which rows each keeps or drops.
  • Write the duplicate-finder with GROUP BY and HAVING, then a ROW_NUMBER version that keeps one row per group.
  • Test a one-to-many join before an aggregate to see how counts inflate, and fix it.

Deliverable: A SQL file with one example per join type, both duplicate queries and a fan-out demonstration with the corrected query.

Practice prompt ↗Practice prompt ↗
03Query tuning and Java performance
  • Take a slow query on a table with a few hundred thousand rows, read its EXPLAIN plan and write what you would change.
  • Add or remove an index, rewrite a non-sargable predicate, and compare plans before and after.
  • List Java performance problems (object churn, string building in loops, boxing, poor collection choice, N+1 queries, contention, leaks) with a fix for each.

Deliverable: A before-and-after plan comparison for one query and a Java performance checklist with a mitigation for each item.

Practice prompt ↗Practice prompt ↗
04Coding: linked list and a medium algorithm
  • Write iterative and recursive linked-list reversal in Java and hand-trace empty, one-node and long lists.
  • Solve two medium problems on a hash map and two-pointer pattern, stating brute force, improvement and complexity before coding.
  • Attempt the practice problem on overlapping job attempts and peak concurrency from lease records under timed conditions, without running the code until the end.

Deliverable: Two reversal implementations with traced test cases, two solved medium problems with complexity notes, and a timed attempt at the concurrency problem.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Debugging and the technical-problem story
  • Write a debugging sequence you can say aloud: reproduce, narrow the scope, form a hypothesis, check logs and recent changes, fix, add a test.
  • Apply it to a real bug from your past or a deliberately broken Java method and narrate it out loud.
  • Write the challenging technical problem story: symptom, evidence, decision and result.

Deliverable: A spoken-ready debugging checklist, a recorded narration of one bug and a written technical-problem story.

Practice prompt ↗Practice prompt ↗
06Behavioral stories
  • Write the teamwork story, stating your own contribution, one friction point and the outcome.
  • Write the feedback story with a concrete review comment, your response and the lasting change.
  • Write the adapting-to-change story, including what you dropped and how you updated others, then say all three aloud.

Deliverable: Three first-person stories, each cut to a short spoken version with a longer back-up version.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full run-through
  • Do a mock take-home: build a small Java feature with tests and a readme, committed in small steps in Git.
  • Do a timed mock of the exam format: one SQL problem, one Java problem and one explain-aloud question.
  • Present two projects aloud, with role, stack, a hard decision and the result, and list what to fix.

Deliverable: A committed mock repository, a timed mock transcript and a short fix list for the weakest area.

Practice prompt ↗Practice prompt ↗Practice prompt ↗

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

Candidates report a stage devoted to past experiences and project work, and the reported behavioral prompts are about teamwork, feedback and adapting to change. For a Software Engineer, answer them with engineering detail: code review, shared ownership of a release, and a change in requirements or tooling. Keep each story in first person so your own contribution is clear.

Describe a time when you worked as part of a team to achieve a common goal.

medium
Behavioral / Leadership

Describe a time when you worked as part of a team to achieve a common goal.

Approach
  1. Choose a goal that needed several people, such as a feature release, a migration or an incident response, and state it in one sentence together with who was on the team and what each role did.
  2. Spend the middle of the story on your own contribution: the specific decision, piece of work or unblocking step that was yours, said with I rather than a collective pronoun.
  3. Include one point of friction, such as a disagreement over design, a dependency on another team or a missed handoff, and what you did to resolve it.
  4. Close with the outcome and what the team did differently afterward, and mention how you kept others informed, for example through code review, shared tickets or short syncs.
  5. The mistake that sinks it is a story in which you cannot be told apart from the group or where the teamwork was only attending meetings.
Follow-up
  • What exactly did you do that nobody else on the team did?
  • Tell me about a disagreement in that team and how it ended.
  • What would you change about how that team worked together?

How do you handle feedback and criticism of your work?

medium
Behavioral / Leadership

How do you handle feedback and criticism of your work?

Approach
  1. Open with a specific piece of feedback you received, ideally from a code review or a design discussion, and say what it was in concrete terms.
  2. Describe your first reaction honestly, then the steps you took: asking a clarifying question, checking the claim against the code or data, and making the change.
  3. Show a lasting change, for instance a checklist item, more tests, smaller pull requests or earlier design reviews, so it is clear you adjusted your habits and not just one patch.
  4. If you disagreed, show how you handled it: you explained your reasoning with evidence, listened, and either changed your mind or agreed on a path with the reviewer.
  5. The mistake that sinks it is claiming you never receive criticism, naming a weakness that is really a strength, or telling a story where the reviewer was simply wrong.
Follow-up
  • Tell me about feedback you disagreed with and what you did.
  • How do you give critical feedback to a teammate in a code review?
  • What changed in your work after that feedback?

Tell me about a time you had to adapt to a significant change at work.

medium
Behavioral / Leadership

Tell me about a time you had to adapt to a significant change at work.

Approach
  1. Pick a change with real stakes, such as shifting requirements mid-project, a reorganisation, a new framework or database, or a move to Agile practices, and describe it in two sentences.
  2. Show your first actions: what you did to understand the change, what you reprioritised or dropped, and how you updated the people depending on you.
  3. Name what the change cost you, for example work thrown away or new skills to learn quickly, and how you handled that without stalling delivery.
  4. Give the result and what you took from it, for example a habit of building in smaller increments or checking assumptions earlier.
  5. The mistake that sinks it is a story where you only endured or complained about the change, or one with no concrete action.
Follow-up
  • What did you have to give up or stop doing?
  • How did you keep stakeholders informed while things were uncertain?
  • How would you handle it if the change were reversed halfway through?
  • 01

    Describe a time when you worked as part of a team to achieve a common goal.

  • 02

    How do you handle feedback and criticism of your work?

  • 03

    Tell me about a time you had to adapt to a significant change at work.

  • 04

    Describe a challenging technical problem you faced and how you resolved it.

PracHub preparation framework ↗
What rounds do candidates report for the Software Engineer role?

Candidates report five stages: Initial Screening with a recruiter, a Technical Assessment, Technical Interviews, Coding Challenges, and an Experience Discussion about past projects. The whole process is reported as taking roughly 4-6 weeks and can vary by team.

Amerisave Mortgage Software Engineer candidate reports ↗
Is the technical assessment a take-home or a live exam?

Reports mention either a take-home or a proctored online exam, with Examity named as one platform. Ask the recruiter which one applies. Prepare for the take-home with tests and a readme, and for the exam with timed practice in a plain editor.

Amerisave Mortgage Software Engineer candidate reports ↗
Which technologies should I prepare most?

Java and SQL are the core skills candidates describe, together with Git. Prepare Java object-oriented design and performance, SQL joins, duplicate detection and query tuning, plus data-structure coding such as reversing a linked list. Cloud, microservices, JavaScript, Python and Agile are listed as extras, so cover them briefly if they are on your CV.

Amerisave Mortgage Software Engineer candidate reports ↗
How should I handle the SQL questions?

State the grain of each table and what defines a duplicate, then write the query. Know all join types and what happens to unmatched rows, how to find duplicates with GROUP BY and HAVING and with ROW_NUMBER, and how to read an execution plan for a slow query.

Amerisave Mortgage Software Engineer candidate reports ↗
Do I need to know the mortgage domain?

Read the public pages about what Amerisave Mortgage offers, and be able to say in your own words what the software helps a loan applicant do. The reported technical questions themselves are general Java, SQL and algorithm topics, not mortgage specifics.

PracHub Software Engineer practice ↗
How do I prepare for the Experience Discussion?

Prepare two projects you can explain end to end, with your role, the stack, one hard decision and the result. Then rehearse three stories on teamwork, feedback and adapting to change, and a technical-problem story, always in first person.

Amerisave Mortgage Software Engineer candidate reports ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.