Interview guides · Burns & McDonnell
Burns & McDonnell Software Engineer Interview Guide
Burns & McDonnell Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
A Software Engineer at Burns & McDonnell plays a pivotal role in delivering technology solutions that support large-scale infrastructure, energy, environmental, and facility engineering projects. Unlike purely consumer-facing tech firms, Burns & McDonnell operates as a 100% employee-owned engineering and architecture giant. In this environment, software engineers build internal tools, data pipelines, client-facing dashboards, and specialized applications that power critical engineering workflows across various global practices. In this position, your work directly impacts how multi-disciplinary teams plan, design, and execute complex capital projects.
This guide is scoped to a Software Engineer candidate at Burns & McDonnell.
Focus areas
- Behavioral/Personality Questions
- Communication Skills (Verbal Delivery)
- Pre-recorded Video Interviews
The Burns & McDonnell interview process
Burns & McDonnell candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.
Asynchronous Screen
Candidates complete a pre-recorded video interview or phone screen with a recruiter, responding to predetermined prompts.
What to demonstrate
- Candidates complete a pre-recorded video interview or phone screen with a recruiter, responding to predetermined prompts
- Depth in Behavioral/Personality Questions
How to prepare
- Answer aloud and timed: Tell me about yourself, your educational background, and your past work experience.
- Answer aloud and timed: Can you share an example of a time you handled a team conflict during a project and how you resolved it?
Direct Conversations
Successful candidates engage in discussions with department managers or technical leads via Microsoft Teams about their resume and team alignment.
What to demonstrate
- Successful candidates engage in discussions with department managers or technical leads via Microsoft Teams about their resume and team alignment
- Depth in Behavioral/Personality Questions
How to prepare
- Answer aloud and timed: Describe a situation where you had to balance multiple competing deadlines. How did you prioritize your tasks?
- Answer aloud and timed: Give an example of a time when you took initiative on a project without being explicitly asked.
Live Panel Interview
Candidates present their background and career goals in a 10 to 15-minute session to hiring managers and team engineers, either virtually or onsite.
What to demonstrate
- Candidates present their background and career goals in a 10 to 15-minute session to hiring managers and team engineers, either virtually or onsite
- Depth in Behavioral/Personality Questions
How to prepare
- Answer aloud and timed: What is your greatest achievement, and what was your biggest failure or takeaway from a prior role?
- Answer aloud and timed: Why do you want to work for Burns & McDonnell, and what do you know about our company structure?
Team Interaction
Onsite evaluations may include campus tours and informal lunches with team members to assess cultural fit.
What to demonstrate
- Onsite evaluations may include campus tours and informal lunches with team members to assess cultural fit
- Depth in Behavioral/Personality Questions
How to prepare
- Answer aloud and timed: What kind of work environment do you thrive in, and what do you see yourself doing with us over the next few years?
- Answer aloud and timed: Why did you choose your major or specialization in software engineering?
Where candidates lose points
Master the Candidate Presentation
Treat your PowerPoint presentation as a core deliverable. Structure it cleanly, keep slides visually uncluttered, practice your timing, and use it to highlight your passion for technology and engineering solutions.
Structure Behavioral Answers with STAR
Practice telling clear stories about past team projects, initiative, and conflict resolution using Situation, Task, Action, and Result format to keep your responses focused and impactful.
Emphasize Communication & Social Skills
Burns & McDonnell values sociable, articulate engineers who work well in teams. Engage warmly during panel discussions, campus tours, and informal team lunches.
Questions & practice
What are your location preferences, and why are you interested in working in this specific office?
Medium · Career Goals & Culture Fit Questions
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Share an example of how you used innovation, creative technical solutions, or AI tools to increase efficiency
Medium · Innovation & Problem Solving Questions
Share an example of how you used innovation, creative technical solutions, or AI tools to increase efficiency in your work.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
What steps do you take when you encounter a critical technical bug or bottleneck close to a delivery deadline?
Medium · Innovation & Problem Solving Questions
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
How do you communicate technical requirements or constraints to non-technical project managers or engineering
Medium · Innovation & Problem Solving Questions
How do you communicate technical requirements or constraints to non-technical project managers or engineering clients?
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Stop tag and share joins from fanning out a page
Medium · join fan-out · semi-joins · many-to-many
resource_tag is (resource_id, tag_id) with PK (resource_id, tag_id); resource_share is (resource_id, shared_with_user_id, permission). The tagged-and-shared listing inner-joins resource to both, filters tenant_id, tag_id = ANY($2) and shared_with_user_id = $3, orders by updated_at DESC and takes 50. Pages come back with fewer than 50 distinct resources and the total in the header is far too high. Explain the row multiplication, rewrite both the page query and the count query so each is correct, and name the index each one needs. PostgreSQL 16.
Approach
- Do the arithmetic against the predicates that are actually there. An inner join emits one row per matching child row, and both joins are filtered: tag_id = ANY($2) admits only the requested tags, shared_with_user_id = $3 admits one user's share rows. So a resource holding three of the requested tags and shared with $3 once yields three rows, not one — the multiplier is its count of matching tags times its share rows for that single user, and that second factor is 1 unless the table admits duplicate (resource_id, shared_with_user_id) pairs. LIMIT 50 then limits rows rather than resources, and COUNT(*) counts pairs — the header is the product, not the population.
- Reject DISTINCT as the fix. It deduplicates after the product has been built, so the planner must materialise and sort the fanned-out set before the LIMIT can apply, and it leaves any SUM or AVG in the same select list wrong.
- Rewrite both filters as semi-joins, keeping resource as the only row source: AND EXISTS (SELECT 1 FROM resource_tag rt WHERE rt.resource_id = r.resource_id AND rt.tag_id = ANY($2)) and the same shape against resource_share. A semi-join stops at the first match per resource and preserves the driving index order, so ORDER BY updated_at DESC, resource_id DESC LIMIT 50 still stops after 50 rows.
- Count with the same predicates and no join at all: SELECT count(*) FROM resource r WHERE r.tenant_id = $1 AND r.status = 'active' AND EXISTS (...) AND EXISTS (...). Nothing multiplies a resource, so the number is the population.
Follow-up
- The filter changes from 'any of these tags' to 'all of these tags'. Rewrite it and state what it costs relative to the ANY form.
- A resource can be shared with the same user twice under different permissions. Does your count change, and should it?
Write the update path that detects a concurrent edit
Medium · optimistic concurrency · transactional outbox · audit history
resource carries version INT NOT NULL DEFAULT 1. resource_revision holds revision_id, resource_id, version, actor_user_id, change_kind, patch JSONB, request_id, created_at with UNIQUE (resource_id, version). outbox_event holds aggregate_type, aggregate_id, aggregate_version, event_type, payload, status. A PUT carries the version the client read. Write the exact statements for the single transaction that applies the edit, records the revision and enqueues 'resource.updated', and give the handler's branch on zero affected rows. Then say what PostgreSQL 16 does under READ COMMITTED when two of these updates hit one row at once.
Approach
- One transaction, three writes, no network call inside it: UPDATE resource SET title = $3, version = version + 1, updated_at = now() WHERE resource_id = $1 AND tenant_id = $4 AND version = $2; then INSERT the resource_revision row at version $2 + 1; then INSERT the outbox_event row at the same aggregate_version. The event goes to a table rather than a broker because no transaction spans both.
- Branch on the affected-row count before doing anything else. Zero has three causes — stale version, wrong tenant, row gone — so re-read once and map to 409 carrying the current version, or 404 for an id outside the caller's tenant, which also stops the endpoint confirming that another tenant's id exists.
- State the engine behaviour instead of assuming it. Under READ COMMITTED the second UPDATE blocks on the row lock, and when the first commits PostgreSQL re-evaluates the WHERE clause against the newly committed row, so the version predicate now fails and the statement reports zero rows. Under REPEATABLE READ the identical collision raises SQLSTATE 40001 instead, so the handler must fold both shapes into one conflict response.
- Keep UNIQUE (resource_id, version) even though the predicate already serialises writers. It is what makes a lost update unwritable if any other path ever reaches the revision table, and it converts a logic bug into 23505 rather than into a silently missing history row.
Follow-up
- A client sends the version it read ten minutes ago and the resource has moved three versions. What is in your 409 so it can resolve the conflict without a full re-fetch?
- Two editors, two disjoint fields, no overlap. Does your answer still refuse the second write, and should it?
Walk us through a recent software project on your resume, detailing your architecture choices and technical ex
Medium · Technical & Domain Knowledge Questions
Walk us through a recent software project on your resume, detailing your architecture choices and technical execution.
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
What experience do you have with web applications, databases, or cloud infrastructure relevant to this positio
Medium · Technical & Domain Knowledge Questions
What experience do you have with web applications, databases, or cloud infrastructure relevant to this position?
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
Can you explain basic networking concepts or data structures that you utilized in your coursework or previous
Medium · Technical & Domain Knowledge Questions
Can you explain basic networking concepts or data structures that you utilized in your coursework or previous jobs?
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
How do you stay updated on modern technology trends, frameworks, and software development methodologies?
Medium · Technical & Domain Knowledge Questions
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
How do you approach testing, debugging, and maintaining code quality across a multi-tier application?
Medium · Technical & Domain Knowledge Questions
Approach
- Establish what changed and when, before forming any theory.
- Pick a bisection that eliminates candidates whichever way it turns out.
- Check the instrumentation before believing the symptom.
- Separate the trigger from the cause; the deploy is rarely the bug.
Follow-up
- What would you look at first, and what would it rule out?
- How would you tell a cause from a coincidence here?
Suggested practice checklist
Built from the rounds and topics Burns & McDonnell candidates report.
Day 1 — Map the Burns & McDonnell loop
- Write out the reported sequence: Asynchronous Screen, Direct Conversations, Live Panel Interview, Team Interaction.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 4 reported rounds, with the weakest marked.
Day 2 — Work Behavioral/Personality Questions
- Spend the session on Behavioral/Personality Questions, which Burns & McDonnell candidates report being tested on.
- Write one worked example in Behavioral/Personality Questions and time yourself on it.
Deliverable: One timed worked example in Behavioral/Personality Questions.
Day 3 — Work Communication Skills (Verbal Delivery)
- Spend the session on Communication Skills (Verbal Delivery), which Burns & McDonnell candidates report being tested on.
- Write one worked example in Communication Skills (Verbal Delivery) and time yourself on it.
Deliverable: One timed worked example in Communication Skills (Verbal Delivery).
Day 4 — Work Pre-recorded Video Interviews
- Spend the session on Pre-recorded Video Interviews, which Burns & McDonnell candidates report being tested on.
- Write one worked example in Pre-recorded Video Interviews and time yourself on it.
Deliverable: One timed worked example in Pre-recorded Video Interviews.
Day 5 — Answer out loud: Behavioral & Background Questions
- Answer aloud, timed: Tell me about yourself, your educational background, and your past work experience.
- Answer aloud, timed: Can you share an example of a time you handled a team conflict during a project and how you resolved it?
Deliverable: Spoken answers to 2 reported Behavioral & Background Questions question(s), under time.
Day 6 — Answer out loud: Career Goals & Culture Fit Questions
- Answer aloud, timed: Why do you want to work for Burns & McDonnell, and what do you know about our company structure?
- Answer aloud, timed: What kind of work environment do you thrive in, and what do you see yourself doing with us over the next few years?
Deliverable: Spoken answers to 2 reported Career Goals & Culture Fit Questions question(s), under time.
Day 7 — Answer out loud: Technical & Domain Knowledge Questions
- Answer aloud, timed: Walk us through a recent software project on your resume, detailing your architecture choices and technical execution.
- Answer aloud, timed: How do you approach testing, debugging, and maintaining code quality across a multi-tier application?
Deliverable: Spoken answers to 2 reported Technical & Domain Knowledge Questions question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
Tell me about yourself, your educational background, and your past work experience.
Medium · Behavioral & Background Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Can you share an example of a time you handled a team conflict during a project and how you resolved it?
Medium · Behavioral & Background Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Describe a situation where you had to balance multiple competing deadlines. How did you prioritize your tasks?
Medium · Behavioral & Background Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Give an example of a time when you took initiative on a project without being explicitly asked.
Medium · Behavioral & Background Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
What is your greatest achievement, and what was your biggest failure or takeaway from a prior role?
Medium · Behavioral & Background Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Why do you want to work for Burns & McDonnell, and what do you know about our company structure?
Medium · Career Goals & Culture Fit Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
What kind of work environment do you thrive in, and what do you see yourself doing with us over the next few y
Medium · Career Goals & Culture Fit Questions
What kind of work environment do you thrive in, and what do you see yourself doing with us over the next few years?
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Why did you choose your major or specialization in software engineering?
Medium · Career Goals & Culture Fit Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Why should we hire you over other qualified candidates applying for this role?
Medium · Career Goals & Culture Fit Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you handle ambiguous project requirements when starting a new application or feature build?
Medium · Innovation & Problem Solving Questions
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?