Barrett Business Services · Software Engineer
Updated · 2026-10-02

Barrett Business Services Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Barrett Business Services (BBSI) delivers business management services to client companies. Candidates describe the Software Engineer role as the engineering work behind that operation: building and maintaining the internal tools staff use every day, and keeping them reliable as demand grows. Reported responsibilities run from gathering requirements through to deployment, with a large share of the time going to database management and query tuning. Engineers also join team meetings where upcoming projects are estimated, so explaining technical effort to colleagues outside engineering is part of the job. The only technology candidates name is SQL.

This guide is for engineers interviewing for a Software Engineer position at Barrett Business Services. It covers the three reported rounds (Recruiter Screen, Hiring Manager Interview, Panel Interview), the SQL, debugging and estimation questions candidates report, and the behavioral prompts about pivoting and team disagreement. It does not cover compensation negotiation, and it makes no claim about team structure or specific systems, because candidates describe none. Where a topic is untested in reports, such as system design, the guide leaves it out and points at PracHub practice questions only as optional extra drills.

Candidates report three rounds over roughly 3-5 weeks: a Recruiter Screen, a Hiring Manager Interview centred on behavioral traits, and a Panel Interview with the development team that serves as the technical evaluation.

SQL queryingQuery filtering (WHERE/conditions)Behavioral interviewing

29 min read

Browse Software Engineer questions

See the practice prompts

11Practice promptsAcross five skill areas

The reported question list is short and unusually practical. On the technical side it is SQL (filtering rows, finding the second highest salary in an employee table) plus a general question about how you debug a complex issue. On the project side it is estimation, changing course after feedback, and resolving disagreements. There is no reported algorithm-heavy coding screen and no reported system design round, so spreading your time across large-scale design or dynamic programming buys little for this loop.

The SQL questions are small, which makes the explanation the real work. Candidates report that the loop focuses on how you communicate your reasoning, so for each query you write, say why you chose that shape. For the second-highest-salary question, know several routes (a subquery on the maximum, an offset query, a ranking window function such as DENSE_RANK) and be able to say how each treats duplicate salaries, NULLs and a table with fewer than two distinct salaries. For filtering, be fluent in WHERE versus HAVING, operator precedence between AND and OR, NULL comparisons and indexed versus unindexed predicates. Reports also list optimization for large datasets as a less common topic.

Because the role description pairs database work with estimation and stakeholder communication, treat the behavioral material as equal in weight to the SQL. Build three stories, one each for estimating and tracking a project, changing approach after feedback, and resolving a team disagreement, and rehearse them in STAR order with your own decision at the centre. Candidates also report that the panel can switch quickly between technical and cultural questions, so practise moving from writing a query to a story without a long reset.

Finally, choose examples from recent work. Candidates report that deeper technical questions follow your own examples, so pick projects where you can still describe the schema, the queries and the trade-offs in detail. Prepare questions about the team's current challenges for the panel, since reports list that as a good use of your time with them.

01

Recruiter Screen

reported

Candidates describe the Recruiter Screen as an opening conversation about your background and whether your qualifications fit the Software Engineer role. No technical content is reported for this stage. Treat it as the first chance to show the communication style the later rounds focus on: a clear summary of your experience, a reason for wanting a business-services employer, and concrete detail when asked about your work. Have your logistics ready so the call stays on substance.

What to demonstrate

  • How clearly you summarise your experience and qualifications
  • Fit with a role built around SQL, databases and the development lifecycle
  • Practical details such as availability, location and compensation expectations

How to prepare

  • Write a short career summary that ends on database and SQL work, since those are the reported must-have skills
  • Prepare a specific reason for choosing Barrett Business Services, built on the business management services it offers clients rather than generic enthusiasm
  • List one recent project where you handled requirements through to deployment, with the part you owned
  • Decide your salary expectations, notice period and location constraints in advance, and ask what the remaining rounds involve
Barrett Business Services Software Engineer candidate reports ↗
02

Hiring Manager Interview

reported

Candidates report that the Hiring Manager Interview is a deeper conversation focused on behavioral traits. The reported behavioral prompts cover estimating projects, changing approach after feedback and handling team disagreements, so that is the type of material to rehearse. Use STAR structure, keep the situation short, and spend most of your time on your reasoning and the result. Reports also say the role bridges technical work and the operational needs of the business, so link each story to a business outcome.

What to demonstrate

  • Behavioral traits as shown in specific past situations
  • How you plan, estimate and communicate project progress
  • How you work with teammates and handle disagreement

How to prepare

  • Write one STAR story for each of three themes: estimating and tracking a project, pivoting after feedback, and resolving a team disagreement
  • State in each story the decision you owned, what it cost and the measurable result
  • Prepare an example of explaining technical effort or a slipping schedule to a non-technical stakeholder
  • Prepare questions for the hiring manager about how projects are estimated and how the team handles changes in scope
Barrett Business Services Software Engineer candidate reports ↗
03

Panel Interview

reported

The Panel Interview is reported as an on-site or virtual session with the development team, and it is the stage candidates describe as the technical evaluation. Candidates also report that technical and cultural questions can alternate quickly. The reported technical themes are SQL (joins, filtering, aggregate functions, window functions such as RANK and DENSE_RANK), breaking a large problem into smaller steps, and debugging a complex issue. Talk through your reasoning aloud as you write, because reports stress explaining logic rather than only producing the answer.

What to demonstrate

  • SQL querying with joins, filtering, aggregates and ranking
  • Problem decomposition and the ability to narrate your reasoning
  • Debugging method on a complex technical issue
  • Collaboration and communication with the people you would work with

How to prepare

  • Write the second-highest-salary query three ways and be ready to compare how each handles ties, NULLs and tables with fewer than two distinct salaries
  • Practise filter questions that combine WHERE, AND/OR precedence, NULL checks, IN and BETWEEN, then explain which predicates can use an index
  • Prepare a debugging walkthrough from a real incident: reproduce, narrow, form a hypothesis, test it, fix, then prevent recurrence
  • Rehearse switching from a technical answer to a behavioral story in consecutive answers, and prepare questions about the team's current challenges
Barrett Business Services Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Reciting a second-highest-salary query from memory without saying how it behaves on duplicates, NULLs or a short table

Write the query, then say what happens when two employees share the top salary, when a salary is NULL and when only one distinct salary exists. Show a second approach, such as DENSE_RANK versus a subquery on the maximum, and say which you would ship and why. Candidates report that the loop focuses on explaining logic.

02

Answering the filtering question with only WHERE syntax

Cover AND/OR precedence and parentheses, NULL comparisons, IN and BETWEEN, WHERE versus HAVING, and how a predicate wrapped in a function can stop an index from being used. Reports list optimization on large datasets as a less common topic, so be ready for the scale follow-up.

03

Answering the debugging question with a list of tools instead of a method

Narrate a sequence from a real incident: reproduce the problem, find what changed, narrow the search by bisection or logging, test one hypothesis at a time, fix, then add a test or alert. Say how you separated the trigger from the cause.

04

Giving a single estimate with no ranges, assumptions or tracking plan

Break the work into tasks, give ranges, list assumptions and known risks, and describe how you re-estimate and report changes to stakeholders. Add a story from real work where you caught a slip early and offered options.

05

Telling behavioral stories in the plural, where the decision you made cannot be found

For the pivot and disagreement stories, say what you decided, what it cost and what happened. Keep the situation to a couple of sentences, then spend the time on reasoning, as STAR is meant to work.

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

8 technical prompts0 include a worked solution

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?

Diff a projection against the primary without per-row point reads

hard
reconciliationrange hashingthrottling

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
  1. 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.
  2. 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.
  3. 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.
  4. 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?

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?

Seven days built around the three reported rounds: SQL and debugging for the panel, STAR stories for the hiring manager, with a mixed mock at the end. Days that name questions list them in the plan so you can open them.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Map the loop and inventory your material
  • Write the three reported rounds (Recruiter Screen, Hiring Manager Interview, Panel Interview) and note whether each is conversational, behavioral or technical.
  • List four recent projects where you handled requirements through deployment, with the schema or queries you wrote on each.
  • Write a short career summary and your reason for applying to Barrett Business Services.

Deliverable: A one-page loop map, a four-project inventory and a written career summary with a reason for applying.

02SQL filtering fundamentals
  • Work through filter exercises that combine WHERE, AND/OR with parentheses, NULL checks, IN and BETWEEN, and then repeat with HAVING after GROUP BY.
  • Write the answer to the filtering question aloud, explaining each predicate and which would use an index.
  • Attempt the practice question on why an owner filter ignores the listing index, then summarise the cause in two sentences.

Deliverable: A sheet of ten filter queries with notes on index use, plus a spoken answer to the filtering question and a written summary of the owner-filter problem.

Practice prompt ↗Practice prompt ↗
03Second highest salary and window functions
  • Write the second-highest-salary query three ways: a subquery on the maximum, an offset query and DENSE_RANK in a window function.
  • Run each against a table with tied top salaries, NULL salaries and only one distinct salary, and record which versions return the right result.
  • Extend one version to second highest salary per department, then add a join and an aggregate to practise reading results.

Deliverable: Three working versions of the second-highest query, a table of their behavior on ties, NULLs and short tables, and the per-department version.

Practice prompt ↗
04Debugging walkthrough and large-data tuning
  • Pick one real incident from your work and write the debugging sequence: reproduction, what changed, narrowing, hypothesis, fix, prevention.
  • Deliver it aloud as an answer to the debugging question, without naming tools until the method is clear.
  • Work the practice question on converting offset pagination to stable cursors, to rehearse optimization on large datasets.

Deliverable: A written debugging sequence from a real incident, a recorded spoken answer and a short note on why cursors scale better than offsets.

Practice prompt ↗Practice prompt ↗
05Estimation method and story
  • Take a past project and break it into tasks, give each a best, likely and worst case, and list the assumptions behind the totals.
  • Compare your original estimate to what happened, and write down the adjustment you would now apply.
  • Write a STAR story where you reported a slipping schedule to a non-technical stakeholder, and say it aloud.

Deliverable: A task-level estimate with ranges and assumptions, an estimate-versus-actual note and a STAR story on communicating a schedule change.

Practice prompt ↗
06Pivot and disagreement stories
  • Write the STAR story for changing approach after feedback, covering who gave the feedback, how you checked it, what it cost and the result.
  • Write the STAR story for a technical disagreement with a teammate, with the evidence you used and how the decision was made.
  • Say both stories aloud, then cut each until the situation takes two sentences and your decision is clear.

Deliverable: Two edited STAR stories, each with the decision, cost and result stated.

Practice prompt ↗Practice prompt ↗
07Mixed panel mock
  • Run a mock that alternates a SQL question, a behavioral prompt, the debugging question and an estimation question, speaking your reasoning throughout.
  • Review the recording for places where you gave an answer without explaining why, and redo those.
  • Write three questions for the team about its current challenges, one for the hiring manager about project estimation.

Deliverable: A recorded mixed mock with a list of answers to redo, and four written questions for the interviewers.

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

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

Candidates report that the Hiring Manager Interview centres on behavioral traits, and that project-management questions sit alongside the technical ones. For this role the three reported themes are estimation, changing approach after feedback and resolving disagreements. Prepare each as a short STAR story in which you made the decision, and expect to link it to the business need behind the work.

How do you estimate projects to ensure deadlines are met?

medium
Project Management & Behavioral

How do you estimate projects to ensure deadlines are met?

Approach
  1. Open with a method, not a number: split the work into tasks small enough to estimate (requirements, schema or query changes, implementation, review, testing, deployment), then estimate each as a range, such as best case, likely and worst case, rather than a single value.
  2. Add explicit allowances for known risks (dependencies on other teams, unclear requirements, review and release overhead) and state your assumptions so a stakeholder can see what would change the date. For unfamiliar work, run a short spike first and re-estimate from what it shows.
  3. Calibrate with history: compare earlier estimates with actual effort on similar work and adjust your future numbers by that gap instead of relying on optimism.
  4. Describe tracking and communication: check progress against milestones, re-estimate when the facts change, and tell non-technical stakeholders early, offering options (cut scope, move the date, add support) instead of only reporting slippage.
  5. Close with a short STAR example from real work that gives the original estimate, what shifted, what you did and the outcome. Do not claim you never miss deadlines; show how you caught the miss early.
Follow-up
  • Halfway through, you discover the work will take longer than estimated. What do you do and who do you tell?
  • How do you estimate a task in a codebase or schema you have never worked in?
  • A stakeholder gives you a fixed date before you have estimated anything. How do you respond?

Tell me about a time you had to pivot your approach to a project based on new feedback.

medium
Project Management & Behavioral

Tell me about a time you had to pivot your approach to a project based on new feedback.

Approach
  1. Choose a story where the feedback arrived after real work was done, and say who gave it (a user, a stakeholder, a reviewer or a teammate) and what exactly it said. A trivial tweak will not carry the answer.
  2. Show the decision: explain how you checked the feedback against evidence, why it justified changing direction rather than adjusting details, and how you weighed the cost of work already completed so that sunk effort did not drive the choice.
  3. Cover execution: what you kept, what you discarded, how you re-planned the schedule and how you told the people affected. Tie the change to a business or operational need, since reports say the role connects technical requirements to the business.
  4. Give a concrete result and a lesson: what improved, what the pivot cost in time or rework, and what you now do earlier (for example showing a prototype or confirming requirements sooner) so the late change is less likely.
  5. The mistake that sinks this answer is a story where you were right all along, or where you changed course only because you were told to and learned nothing.
Follow-up
  • How did you decide the feedback justified a pivot rather than a smaller adjustment?
  • What did the change cost, and how did you communicate it to your team and stakeholders?
  • What would you do differently to catch that feedback earlier?

How do you handle disagreements within a development team?

medium
Project Management & Behavioral

How do you handle disagreements within a development team?

Approach
  1. Choose a real technical disagreement with a teammate, such as a schema design, a query approach or how to scope a release, not a personality clash, and describe both positions fairly. A story where the other person was simply wrong undermines the answer.
  2. Show your process: listen and restate their argument, agree on the criteria that matter (correctness, maintenance, delivery date, risk), then settle the question with evidence such as a quick prototype, a measurement or a query plan instead of opinion.
  3. Explain how the decision was made and owned: who had the final say, when you brought in the manager and how the team committed once it was decided, including if the outcome went against you.
  4. State the result and the relationship afterwards: what shipped, whether the evidence changed anyone's mind (including yours) and how the working relationship held. Use 'I' for your own actions and name the contribution of others.
  5. Avoid two failures: claiming you never disagree, and describing a win that left the team resentful.
Follow-up
  • What if the decision went against you and you still thought it was wrong?
  • When do you bring in the manager rather than keep working it out between the two of you?
  • Describe a time the other person's argument changed your mind.
  • 01

    How do you estimate projects to ensure deadlines are met?

  • 02

    Tell me about a time you had to pivot your approach to a project based on new feedback.

  • 03

    How do you handle disagreements within a development team?

  • 04

    Describe a time you explained a technical trade-off or a delay to a non-technical stakeholder.

  • 05

    Tell me about a time a project ran behind its estimate and what you did about it.

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

Candidates report three rounds: a Recruiter Screen, a Hiring Manager Interview and a Panel Interview, spread over roughly 3-5 weeks. Individual timelines vary, so ask the recruiter for the remaining steps in writing.

Barrett Business Services Software Engineer candidate reports ↗
Which round is technical?

Candidates describe the Panel Interview, with the development team, as the technical evaluation, in person or virtual. The Hiring Manager Interview is reported as focused on behavioral traits. Reports also say technical and cultural questions can alternate in the panel, so prepare both for that stage.

Barrett Business Services Software Engineer candidate reports ↗
What SQL should I review?

Review joins, filtering with WHERE and HAVING, aggregate functions and ranking window functions such as RANK and DENSE_RANK, since reports mention all of these. The reported questions are filtering results in a query and finding the second highest salary in an employee table. Practise each so you can explain your choices, including how they handle ties and NULLs.

Barrett Business Services Software Engineer candidate reports ↗
How should I answer the debugging question?

Walk through a real incident in order: how you reproduced the problem, what had changed, how you narrowed it down, the hypothesis you tested, the fix and what you added to stop it recurring. Use a recent example you can discuss in depth, because follow-up questions tend to dig into your own work.

PracHub Software Engineer practice ↗
What topics come up in these interviews?

Reported topics are SQL querying, query filtering, window functions, debugging, project estimation and behavioral interviewing. The role description candidates give lists SQL and database management as must-haves, with exposure to project management software, business-facing applications and version control tools as extras.

Barrett Business Services Software Engineer candidate reports ↗
How do I prepare for the estimation question without a manager title?

Use any project where you sized work: split it into tasks, estimate each as a range, list assumptions and risks, and describe how you tracked progress and reported changes. A story where you caught a slip early and offered options works well, even if the project was small.

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.