EPB · Software Engineer
Updated · 2026-10-02

EPB Software Engineer
Interview Guide

THE 60-SECOND BRIEF

As a Software Engineer at EPB, you play a vital role in driving the technological innovation that underpins our commitment to providing exceptional utilities and services to our community. This position involves developing and maintaining software solutions that enhance our operational efficiency and improve the customer experience. Your work will directly impact the functionality of systems that manage everything from energy distribution to customer service platforms. The complexity of the systems you'll be working with reflects the scale at which EPB operates. You'll engage with cross-functional teams to solve challenging problems, ensuring that our technology aligns with the strategic goals of the organization.

This guide is scoped to a Software Engineer candidate at EPB.

EPB candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.

C#.NET CoreDomain: Protection & Controls Engineering (implied)

18 min read

Browse Software Engineer questions

See the practice prompts

19Practice promptsAcross five skill areas

As a Software Engineer at EPB, you play a vital role in driving the technological innovation that underpins our commitment to providing exceptional utilities and services to our community. This position involves developing and maintaining software solutions that enhance our operational efficiency and improve the customer experience. Your work will directly impact the functionality of systems that manage everything from energy distribution to customer service platforms. The complexity of the systems you'll be working with reflects the scale at which EPB operates. You'll engage with cross-functional teams to solve challenging problems, ensuring that our technology aligns with the strategic goals of the organization. The role is not only about writing code; it’s an opportunity to influence the success of projects that affect thousands of users and contribute to the sustainability goals of the company.

01

Screener Phone Call

reported

Initial phone call to assess basic qualifications and fit for the role.

What to demonstrate

  • Initial phone call to assess basic qualifications and fit for the role
  • Depth in C#

How to prepare

  • Answer aloud and timed: Explain the principles of object-oriented programming and how they apply to C#.
  • Answer aloud and timed: What are the key features of.NET Core, and how do they differ from previous versions?
EPB Software Engineer candidate reports ↗
02

Video Call with HR

reported

Discussion with HR to evaluate alignment with company values.

What to demonstrate

  • Discussion with HR to evaluate alignment with company values
  • Depth in C#

How to prepare

  • Answer aloud and timed: Describe a challenging technical problem you faced and how you resolved it.
  • Answer aloud and timed: How do you ensure code quality during development?
EPB Software Engineer candidate reports ↗
03

Technical Interview

reported

Interview focusing on technical skills, including coding exercises and system design.

What to demonstrate

  • Interview focusing on technical skills
  • Including coding exercises and system design

How to prepare

  • Answer aloud and timed: Can you discuss your experience with database management systems?
  • Answer aloud and timed: Design a system for managing customer queries in a utility company.
EPB Software Engineer candidate reports ↗
04

On-site Technical Interview

reported

Final technical interview conducted on-site to assess advanced skills and team fit.

What to demonstrate

  • Final technical interview conducted on-site to assess advanced skills and team fit
  • Depth in C#

How to prepare

  • Answer aloud and timed: How would you approach scaling an application to handle increased user demand?
  • Answer aloud and timed: Discuss trade-offs between microservices and monolithic architectures.
EPB Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Practice with Real Problems

Engage in coding exercises and system design scenarios to sharpen your skills and boost your confidence.

02

Align with Company Values

Be prepared to discuss how your personal and professional values align with those of EPB.

03

Ask Questions

Show your engagement by asking thoughtful questions during interviews, which also helps you gauge fit.

04

Always remember to back up your claims with specific examples from your past experiences

This solidifies your credibility and demonstrates your capabilities.

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

15 technical prompts0 include a worked solution

Write a function to reverse a linked list.

medium
Coding / Algorithms

Write a function to reverse a linked list.

Approach
  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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 would you implement a search algorithm to find an element in a sorted array?

medium
Coding / Algorithms

How would you implement a search algorithm to find an element in a sorted array?

Approach
  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Canonicalise a request body into a stable idempotency fingerprint

medium
parsingcanonicalisationhashing

idempotency_key.request_fingerprint is a SHA-256 over the method, path and canonicalised body, and a retry whose fingerprint differs must be rejected with 422 rather than served the stored response. Write the canonicaliser. Bodies are JSON up to 256 KB nested at most 32 levels; clients vary key order, whitespace and unicode escaping, and some send 64-bit ids as JSON numbers. Produce a deterministic byte string such that semantically identical bodies match and any semantic difference does not. State your complexity and name two normalisations you refuse to perform.

Approach
  1. Parse once into a tree, then re-serialise under fixed rules: object keys sorted, array order preserved, one escaping convention, no insignificant whitespace. Parsing is O(n) and sorting keys is O(k log k) per object, so O(n log n) overall with O(depth) stack, and the 32-level cap is enforced during parsing because hostile nesting is how a canonicaliser becomes a stack overflow.
  2. Sort keys by their UTF-8 bytes and say why the obvious implementation is wrong in some runtimes: a default string comparison that orders by UTF-16 code units places surrogate pairs, meaning code points from U+10000 up, below U+E000 to U+FFFF, which is not UTF-8 byte order, so two services written in different languages disagree on the same document.
  3. Do not re-encode numbers through a double. IEEE-754 binary64 represents integers exactly only up to 2^53, so normalising a 19-digit id through a float changes it, and 1 against 1.0 cannot be reconciled without deciding whether they are the same value. Preserve the literal token, and require ids as strings at the API boundary if you want them comparable.
  4. Reject duplicate keys rather than picking one. JSON permits them and parsers disagree, most keeping the last, so any choice you make ties the fingerprint to a parser detail that the code handling the request does not necessarily share.
Follow-up
  • A client sends the same logical request with an extra field your API ignores. Same key, different fingerprint, so you return 422. Is that the right answer?
  • Where does the fingerprint get computed relative to request decompression and the body-size limit?

Built from the rounds and topics EPB candidates report.

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 EPB loop
  • Write out the reported sequence: Screener Phone Call, Video Call with HR, Technical Interview, On-site Technical 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 4 reported rounds, with the weakest marked.

02Work C#
  • Spend the session on C#, which EPB candidates report being tested on.
  • Write one worked example in C# and time yourself on it.

Deliverable: One timed worked example in C#.

03Work .NET Core
  • Spend the session on .NET Core, which EPB candidates report being tested on.
  • Write one worked example in .NET Core and time yourself on it.

Deliverable: One timed worked example in .NET Core.

04Work Domain: Protection & Controls Engineering (implied)
  • Spend the session on Domain: Protection & Controls Engineering (implied), which EPB candidates report being tested on.
  • Write one worked example in Domain: Protection & Controls Engineering (implied) and time yourself on it.

Deliverable: One timed worked example in Domain: Protection & Controls Engineering (implied).

05Answer out loud: Technical / Domain Questions
  • Answer aloud, timed: Explain the principles of object-oriented programming and how they apply to C#.
  • Answer aloud, timed: What are the key features of.NET Core, and how do they differ from previous versions?

Deliverable: Spoken answers to 2 reported Technical / Domain Questions question(s), under time.

06Answer out loud: System Design / Architecture
  • Answer aloud, timed: Design a system for managing customer queries in a utility company.
  • Answer aloud, timed: How would you approach scaling an application to handle increased user demand?

Deliverable: Spoken answers to 2 reported System Design / Architecture question(s), under time.

07Answer out loud: Behavioral / Leadership
  • Answer aloud, timed: Describe a time you had to resolve a conflict within a team.
  • Answer aloud, timed: How do you prioritize tasks when working on multiple projects?

Deliverable: Spoken answers to 2 reported Behavioral / Leadership question(s), under time.

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.

Can you discuss your experience with database management systems?

medium
Technical / Domain Questions

Can you discuss your experience with database management systems?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 you had to resolve a conflict within a team.

medium
Behavioral / Leadership

Describe a time you had to resolve a conflict within a team.

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 prioritize tasks when working on multiple projects?

medium
Behavioral / Leadership

How do you prioritize tasks when working on multiple projects?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 motivates you to succeed in your role?

medium
Behavioral / Leadership

What motivates you to succeed in your role?

Approach
  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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

    Can you discuss your experience with database management systems?

  • 02

    Describe a time you had to resolve a conflict within a team.

  • 03

    How do you prioritize tasks when working on multiple projects?

  • 04

    What motivates you to succeed in your role?

PracHub preparation framework ↗
What is the typical difficulty level of the interview?

The interview process is considered average in difficulty, but thorough preparation is essential to stand out. Expect a mix of technical and behavioral questions.

EPB Software Engineer candidate reports ↗
How long does the interview process usually take?

Typically, the process spans about three weeks from initial contact to final interviews. This allows for thorough evaluation and consideration.

EPB Software Engineer candidate reports ↗
What differentiates successful candidates?

Successful candidates demonstrate a strong technical foundation, problem-solving skills, and alignment with EPB’s core values. Effective communication and teamwork ability are also crucial.

EPB Software Engineer candidate reports ↗
Is remote work an option?

While the position is primarily based in Chattanooga, TN, EPB may offer flexible working arrangements depending on the role and team dynamics.

EPB Software Engineer candidate reports ↗
What topics does EPB test in interviews?

EPB interviews most often cover Data Analysis, Stakeholder Communication, Financial Analysis, C#, and Marketing Analytics. The exact emphasis depends on the specific role you apply for.

EPB 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.