At Par Pacific Holdings, a Software Engineer plays a critical role at the intersection of technology, industrial operations, and energy logistics. Unlike typical software roles in pure-play technology companies, engineering at Par Pacific directly impacts physical infrastructure, energy production, and supply chain efficiency. Software and systems engineers here build, maintain, and optimize the critical applications, data pipelines, and control interfaces that keep major refineries, logistics networks, and retail assets operating safely and continuously. The work you do in this position has a direct, tangible impact on regional energy security and operational efficiency. Whether you are developing optimization planning software for refinery operations in Newcastle, WY, managing data integration for facilities in Tacoma, WA, or supporting systems at the major refining hub in Kapolei, HI, your code and systems engineering skills ensure that complex energy processes run with minimal downtime and maximum yield. This role is highly collaborative and interdisciplinary, requiring you to translate complex physical operations into robust software models. It is an exciting opportunity for engineers who enjoy solving real-world, tangible problems where software design directly influences physical outcomes, safety protocols, and multi-million-dollar refining margins.
HR Screening Call
reportedInitial call to discuss your background, career interests, and basic role alignment.
What to demonstrate
- Initial call to discuss your background, career interests, and basic role alignment
- Depth in Behavioral Interviewing (STAR Method)
How to prepare
- Be able to walk your CV end to end in two minutes, and say why this company specifically.
- Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.
Technical and Behavioral Panel Interview
reportedPanel interview conducted over Microsoft Teams with team members focusing on your experience using structured behavioral questioning.
What to demonstrate
- Panel interview conducted over Microsoft Teams with team members focusing on your experience using structured behavioral questioning
- Depth in Behavioral Interviewing (STAR Method)
How to prepare
- Prepare three examples from your own work, each with a decision you made and an outcome you can quantify.
- Re-read the description of the technical and behavioral panel interview above and write down what you would ask to confirm before it.
In-Person Panel Interview
reportedFor site-critical roles, this final stage may involve an in-person panel interview or a visit to one of their operational facilities.
What to demonstrate
- For site-critical roles, this final stage may involve an in-person panel interview or a visit to one of their operational facilities
- Depth in Behavioral Interviewing (STAR Method)
How to prepare
- Answer aloud and timed: How do you handle sudden shifts in project priorities or operational requirements?
- Answer aloud and timed: How do you approach designing an optimization plan for a system with multiple competing constraints?
PracHub editorial advice for the preparation topics above.
Structure Your Answers
When answering behavioral questions, explicitly state the Situation, Task, Action, and Result. This structured format is highly valued by Par Pacific interviewers and ensures your answers remain focused.
Emphasize Your Individual Impact
When discussing team projects, make sure to highlight your specific contributions. Use "I" rather than "we" to describe the actions taken and the results achieved.
Show an Interest in the Energy Sector
Take the time to understand Par Pacific’s business model, including their refining locations, logistics networks, and retail brands. Demonstrating this business context shows strong motivation.
During technical panel interviews, always walk your interviewers through your thought process out loud
This helps them understand your problem-solving methodology, even if you run into unexpected constraints.
Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.
How do you approach designing an optimization plan for a system with multiple competing constraints?
How do you approach designing an optimization plan for a system with multiple competing constraints?
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 ensure data integrity and reliability when dealing with continuous, real-time data streams?
How do you ensure data integrity and reliability when dealing with continuous, real-time data streams?
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 balance the need for rapid software deployment with the strict safety requirements of an operationa
How do you balance the need for rapid software deployment with the strict safety requirements of an operational facility?
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?
Explain why the owner filter ignores the listing index
The only index on resource is (tenant_id, status, updated_at DESC, resource_id DESC). A new endpoint returns one user's resources across all statuses, newest created first: WHERE tenant_id = $1 AND owner_user_id = $2 ORDER BY created_at DESC LIMIT 20. On a tenant with 2M rows it takes 900 ms and EXPLAIN shows a sort above a large scan. Explain precisely why the existing index cannot serve it, give the index that can, and state which of these the new index still will not help: owner_user_id alone across tenants; the same query ordered by updated_at. PostgreSQL 16.
Approach
- Separate the two jobs an index does. For filtering, a composite btree is seekable only on a left prefix, so with no predicate on status the scan can at best range over tenant_id and test owner_user_id per row; PostgreSQL 16 has no btree skip scan to jump the unconstrained column.
- For ordering, the index is sorted by (status, updated_at) within a tenant and not by created_at, so the LIMIT cannot stop early: every matching row is read and then sorted. That is the 'Sort Method: top-N heapsort' line, and it is why the plan reads 2M rows to answer with 20.
- Derive the replacement from the access path — equality, equality, then the ordering column: CREATE INDEX CONCURRENTLY ON resource (tenant_id, owner_user_id, created_at DESC). The scan seeks to the (tenant, owner) range and walks 20 entries in order, so the Sort node disappears along with the row-read.
- Treat INCLUDE (title, status) as conditional, not free. An index-only scan still visits the heap for any row whose page is not marked all-visible, so on a table taking 1.2k writes/second the win depends on autovacuum keeping the visibility map current, and the wider index costs more on every insert.
Follow-up
- 90% of rows are status='active'. Would a partial index WHERE status = 'active' change your answer, and for which of the three queries?
- A dashboard runs this for 40 owners in one page load. What changes about the design?
Keep soft-deleted accounts from blocking re-registration
app_user holds user_id, tenant_id, email CITEXT, password_hash (NULL for SSO principals), email_verified_at, auth_version, status ('invited','active','suspended','deactivated'), created_at, updated_at, deleted_at. Two live accounts for one address inside a tenant must be impossible, but an address freed by a soft delete must be reusable, and the same tenant may delete and re-register it repeatedly. Write the uniqueness DDL for PostgreSQL 16, then the equivalent for MySQL 8 where partial indexes do not exist, and say what each permits once three deleted rows already hold that address.
Approach
- Start from what is actually unique: not (tenant_id, email), but (tenant_id, email) among live rows. PostgreSQL says that directly — CREATE UNIQUE INDEX app_user_live_email ON app_user (tenant_id, email) WHERE deleted_at IS NULL. A full constraint over the same two columns burns the address permanently the first time someone deletes an account.
- Keep case-insensitivity in the type or the index, never in the application: CITEXT as given, or UNIQUE (tenant_id, lower(email)) as an expression index where the extension is unavailable. A case-sensitive unique column is exactly how two accounts for one human appear.
- For MySQL 8 the predicate has to move inside the key: add a discriminator column that is a constant 0 while the row is live and is set to user_id on delete, with UNIQUE (tenant_id, email, deleted_marker). Live rows share the constant and still collide; deleted rows differ from each other and stop colliding.
- State the NULL variant and its dependency: leaving the marker NULL for deleted rows also works, because a unique index treats NULLs as distinct — true in MySQL, and true in PostgreSQL only under the default NULLS DISTINCT, which PostgreSQL 15 lets you reverse. Check the polarity against the three existing deleted rows: constant-on-live is what preserves the collision you want, and reversing it silently admits duplicate live accounts.
Follow-up
- A deleted account re-registers with the same address the next day. Do the old resource rows follow the new user_id, and how does the API keep the two principals apart?
- How do you honour an erasure request while resource_revision.actor_user_id still references this table?
Describe a project where you had to integrate software with physical machinery, hardware, or industrial databa
Describe a project where you had to integrate software with physical machinery, hardware, or industrial databases.
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- Design the error taxonomy before the success shape; callers branch on it.
Follow-up
- What happens if the caller retries after a timeout?
- How does a client discover it is on an old version of this contract?
Design the async export contract a client can resume safely
A tenant asks for a CSV of every resource. The work runs for minutes on the worker fleet through a job_run row carrying a lease, an attempt count and a dedupe_key, far past the edge's 400 ms budget. Callers are a browser that polls and a script that walks away and checks later. Specify what the submit call returns, the operation resource and its states, how a duplicate submit is handled, how a client learns about completion, what cancellation means given that a lease can expire mid-run, and how the result is fetched and when it expires.
Approach
- Split the API in two. Submit returns 202 with an operation id and a location to poll, and never blocks on the work. The operation is a real resource with its own lifecycle - queued, running, succeeded, failed, cancelled - plus attempt, a monotonic progress figure, and a terminal error drawn from the same code taxonomy the synchronous endpoints use, so a client needs one error vocabulary rather than two.
- Deduplicate at submit using job_run.dedupe_key, unique over (job_type, dedupe_key) while status is 'queued' or 'running': a repeat submit of the same logical export returns 200 with the existing operation instead of 202 with a new one, and the partial index deliberately permits a legitimate re-run once the first has finished. Pair it with the request's idempotency key so an HTTP-level retry of the submit is exact rather than merely similar.
- Tell the poller how to poll: Retry-After on the polling response, a minimum interval enforced at the edge, and a documented maximum lifetime after which an operation is reaped. Polling is the contract of record; the webhook is the fast path, and both must lead to the same terminal state, so a client that receives the completion event and then polls anyway sees no contradiction.
- Be exact about cancellation. A cancel request records intent; it cannot stop work already executing. The handler reads the flag at checkpoints, and because a lease expires on a clock that cannot distinguish a dead worker from a slow one, a second copy may start after the cancel was recorded - so the handler re-reads the flag immediately after claiming the lease. 'cancelled' becomes terminal only when no lease is outstanding; reporting it earlier shows a client a stopped job while a worker is still writing output.
Follow-up
- An operation has said 'running' for 40 minutes and the worker is gone. What does the client see, and which columns in job_run decide that?
- Two tenants each submit 50 exports at once. What in this contract stops one of them delaying the other?
Explain your approach to troubleshooting a critical system failure under tight time constraints.
Explain your approach to troubleshooting a critical system failure under tight time constraints.
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?
Built from the rounds and topics Par Pacific Holdings candidates report.
Prepare, practise & reflect
One practical outcome each day. Spend longer where you need it.
0 / 7 done01Map the Par Pacific Holdings loop
- Write out the reported sequence: HR Screening Call, Technical and Behavioral Panel Interview, In-Person Panel Interview.
- 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 3 reported rounds, with the weakest marked.
02Work Behavioral Interviewing (STAR Method)
- Spend the session on Behavioral Interviewing (STAR Method), which Par Pacific Holdings candidates report being tested on.
- Write one worked example in Behavioral Interviewing (STAR Method) and time yourself on it.
Deliverable: One timed worked example in Behavioral Interviewing (STAR Method).
03Work Structured Narrative (Situation-Task-Action-Results)
- Spend the session on Structured Narrative (Situation-Task-Action-Results), which Par Pacific Holdings candidates report being tested on.
- Write one worked example in Structured Narrative (Situation-Task-Action-Results) and time yourself on it.
Deliverable: One timed worked example in Structured Narrative (Situation-Task-Action-Results).
04Work Optimization Planning
- Spend the session on Optimization Planning, which Par Pacific Holdings candidates report being tested on.
- Write one worked example in Optimization Planning and time yourself on it.
Deliverable: One timed worked example in Optimization Planning.
05Answer out loud: Behavioral & Situational (STAR Method)
- Answer aloud, timed: Tell me about yourself and your background in engineering.
- Answer aloud, timed: Describe a time when you succeeded in a highly challenging environment.
Deliverable: Spoken answers to 2 reported Behavioral & Situational (STAR Method) question(s), under time.
06Answer out loud: Process Optimization & Technical Problem-Solving
- Answer aloud, timed: How do you approach designing an optimization plan for a system with multiple competing constraints?
- Answer aloud, timed: Describe a project where you had to integrate software with physical machinery, hardware, or industrial databases.
Deliverable: Spoken answers to 2 reported Process Optimization & Technical Problem-Solving question(s), under time.
07Dry run for Par Pacific Holdings
- Run one full mock under time, then write down the two questions you most want to ask your interviewers.
Deliverable: A completed timed mock and two questions to ask.
Expand any day for tasks and deliverables. Your progress is saved on this device.
Behavioural rounds judge the decision you made and what it cost.
Tell me about yourself and your background in engineering.
Tell me about yourself and your background in engineering.
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 time when you succeeded in a highly challenging environment.
Describe a time when you succeeded in a highly challenging environment.
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?
Tell me about a time you failed on a project. What did you learn, and how did you handle it?
Tell me about a time you failed on a project. What did you learn, and how did you handle it?
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 work with a difficult team member or stakeholder to complete a task.
Describe a situation where you had to work with a difficult team member or stakeholder to complete a task.
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 sudden shifts in project priorities or operational requirements?
How do you handle sudden shifts in project priorities or operational requirements?
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?
- 01
Tell me about yourself and your background in engineering.
- 02
Describe a time when you succeeded in a highly challenging environment.
- 03
Tell me about a time you failed on a project. What did you learn, and how did you handle it?
- 04
Describe a situation where you had to work with a difficult team member or stakeholder to complete a task.
How difficult is the Software Engineer interview process at Par Pacific?
The interview process is generally rated as easy to average in difficulty. The focus is less on highly abstract algorithmic puzzles and much more on practical problem-solving, system optimization, and structured behavioral alignment using the STAR method.
Par Pacific Holdings Software Engineer candidate reports ↗What is the single most important thing to prepare for this interview?
Mastering the STAR method is essential. You must be able to articulate your past experiences—especially your successes, failures, and collaborative efforts—in a highly structured, concise manner. Practice your stories aloud before the interview.
Par Pacific Holdings Software Engineer candidate reports ↗Does this role require travel or onsite refinery visits?
Depending on your specific team and location (such as Kapolei, HI or Tacoma, WA), some travel or onsite visits to physical refining assets may be required. If an onsite interview is scheduled, always confirm logistics and safety protocols with your coordinator.
Par Pacific Holdings Software Engineer candidate reports ↗What is the typical timeline from the initial screen to an offer?
The process is known for being smooth and communicative, typically taking between three to six weeks from the initial recruiter screen to a final decision, depending on scheduling and the specific role level.
Par Pacific Holdings Software Engineer candidate reports ↗What topics does Par Pacific Holdings test in interviews?
Par Pacific Holdings interviews most often cover Financial Analysis, Behavioral Interviewing (STAR Method), Operations Management, Inventory Accounting, and Structured Narrative (Situation-Task-Action-Results). The exact emphasis depends on the specific role you apply for.
Par Pacific Holdings 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.
- 01Par Pacific Holdings Software Engineer candidate reports ↗
Company-reported rounds, questions and FAQ.
Candidate reports · Accessed 2026-09-22 - 02PracHub Software Engineer practice ↗
PracHub practice material, not company-reported.
PracHub page · Accessed 2026-09-22 - 03PracHub preparation framework ↗
PracHub preparation guidance.
PracHub page · Accessed 2026-09-22