ABB · Software Engineer
Updated · 2026-10-02

ABB Software Engineer
Interview Guide

THE 60-SECOND BRIEF

ABB builds industrial automation, electrification, robotics and motion technology. Its published role description lists control software, embedded software for low- and medium-voltage drives, EV charging protocols, manufacturing platforms and robotics. The stacks it names include C/C++ on an RTOS, React with Java, and Cypress test pipelines, with the mix depending on the team. Candidates name four business areas: Electrification, Process Automation, Motion and Robotics.

This guide is for candidates interviewing for a Software Engineer position at ABB, from graduate to senior level. It covers the six stages candidates report, the technical topics grouped into object-oriented design, embedded development, full-stack work and test automation, the behavioral prompts reported for project-history rounds, and a plan that sends you through all of them. Pick the track that matches your target team and treat the other tracks as lighter review.

Candidates report six stages over roughly 4-6 weeks: a recruiter screening, an asynchronous video or online assessment, technical panels, a deeper technical conversation, behavioral interviews and a closing offer discussion.

System DesignTechnical InterviewingEV Charging Domain Knowledge

38 min read

Browse Software Engineer questions

See the practice prompts

4Candidate experiences ↗Read their reports
21Practice promptsAcross five skill areas

The reported questions split into four families. Core engineering covers object-oriented principles, design patterns, memory management, complexity on large log files and debugging threads. Embedded and domain questions cover RTOS and Embedded Linux experience, hardware interrupts, drive systems, schematics and sending device telemetry to a cloud backend. Full-stack questions cover REST middleware to legacy manufacturing systems, component-based UIs, schemas for high-frequency sensor data, Cypress or Ranorex suites and frontend bundle size. Behavioral questions cover process limitations, deadlines, cross-functional work, motivation and code review disagreements.

Which family dominates depends on the team. Candidates describe embedded, instrumentation, robotics and drives teams as the ones where electrical basics and low-level questions come up, while enterprise, MES and web teams lean on API, database and frontend topics. Read the job posting for the languages it lists (C++, Java, C#, Python, TypeScript) and weight your time toward that track, but keep a working answer for every family because the reported question list mixes them.

The scenarios candidates describe are concrete. Examples include a driver layer that talks to several sensor types without changing core logic, a C++ routine that logs high-frequency sensor data without stalling a control loop, a billing backend fed by EV chargers worldwide, a status grid for thousands of devices, and a test strategy for a team that only tests manually. Practise these by sketching components, naming the failure modes and saying how you would test each one.

Several tracks also include a walk through a past project or a use-case presentation. Prepare one project in enough depth to cover architecture, trade-offs, error handling, testing and what you would change. Candidates are advised to show this reliability thinking because the software drives physical machinery.

01

Talent Acquisition Screening

reported

The first stage is an initial call with talent acquisition. Candidates report that the call goes over your experience, pay expectations and how you match the role. It is a conversation about you, so the preparation is a clear account of your experience and a sensible reason for choosing this team.

What to demonstrate

  • Fit between your background and the position
  • Whether your experience matches the languages and domain of the team
  • Alignment on salary expectations

How to prepare

  • Write a short walk through your last two projects with the stack, your own contribution and one measurable result for each.
  • Prepare your answer to why you want to join ABB and which business area (Electrification, Process Automation, Motion or Robotics) matches your experience.
  • Decide your salary range from your own research before the call so that your number stays consistent in later stages.
ABB Software Engineer candidate reports ↗
02

Asynchronous Video Submission

reported

Candidates report an asynchronous video submission or an online assessment at this stage, covering aptitude and basic programming logic. Some accounts add electrical or domain concepts for some teams. You work alone and without an interviewer, so the preparation is fluency in plain programming logic and a recorded answer that is easy to follow.

What to demonstrate

  • Basic programming logic
  • Aptitude-style reasoning
  • Clear spoken explanation if the format is a video

How to prepare

  • Solve small array, string and log-parsing problems in your main language without autocomplete, then state the time and space complexity aloud. This is the same skill the question on optimizing multi-dimensional data and large log files asks for.
  • Record a spoken answer to the question on core OOP pillars and the one on common design patterns, and watch it back for structure, filler and an example per concept.
  • If you are applying to a drives or instrumentation team, refresh basic electrical vocabulary such as voltage, current and frequency.
ABB Software Engineer candidate reports ↗
03

Technical Panel Rounds

reported

Candidates report technical panels that include live coding, object-oriented design scenarios and system architecture discussions, and in some tracks a use-case or homework task that you present. Reported design scenarios include a modular driver layer for several sensor types, refactoring a monolithic telemetry processor, a billing backend for EV chargers and a frontend for thousands of devices. Practise talking while you code and write down the interfaces first.

What to demonstrate

  • Working code in a live coding setting
  • Object-oriented design and use of established patterns
  • System architecture reasoning and trade-offs

How to prepare

  • Work the SOLID principles and the Factory, Strategy, Observer, Adapter and Singleton patterns through one example: a driver interface with one implementation per sensor type, selected by a factory.
  • Practise the race condition and deadlock debugging walk-through and the memory-leak question out loud, naming tools such as sanitizers, thread dumps and lock ordering.
  • Sketch the device-to-cloud telemetry design and the EV charger billing backend, listing components, protocols, retry behaviour and storage.
ABB Software Engineer candidate reports ↗
04

Deep Technical Probing

reported

Candidates report discussions with senior engineering leads about technical expertise. Little more is reported about this stage, so prepare your own projects at the level of code, constraints and failure cases, and keep the technical areas from the panel stage fresh so you can go deeper on any of them.

What to demonstrate

  • Depth of technical expertise in your primary stack
  • Ability to explain and defend design decisions you made
  • Reasoning about embedded and real-time constraints where your team needs them

How to prepare

  • Rehearse an explanation of how a hardware interrupt reaches an interrupt service routine and how it hands data to a task through a queue or semaphore, with no blocking calls inside the routine.
  • Be able to compare stack and heap allocation, smart pointers and manual ownership in C++, and describe how you would find a pointer corruption on an RTOS target.
  • As extra preparation for database-flavoured follow-ups, write a one-page schema for high-frequency sensor readings, covering time partitioning, indexing, retention and the queries it must serve.
ABB Software Engineer candidate reports ↗
05

Behavioral Evaluations

reported

Candidates report behavioral interviews with business unit managers about project history and team collaboration style. The reported prompts cover process limitations, tight deadlines, working with hardware engineers and product managers, motivation for joining and disagreement in code review. Come with specific stories in which you personally acted.

What to demonstrate

  • Project history and your own contribution
  • Team collaboration style
  • Handling of deadlines, feedback and disagreement

How to prepare

  • Write four stories with a situation, your action and a result, mapped to the prompts on process limitations, deadlines or vague requirements, cross-functional work and code review disagreement.
  • Rehearse a project walkthrough that states the architecture, a trade-off you made under constraints, the testing you did and what you would change.
  • Prepare a motivation answer that names one ABB product area and one part of your experience that relates to it.
ABB Software Engineer candidate reports ↗
06

Final Offer Discussion

reported

Candidates describe the final stage as a conversation about the offer and where you want your career to go. Preparation is practical: know the direction you want in your career, the team you are being offered, and the questions you need answered before accepting.

What to demonstrate

  • Your career direction and interests
  • Expectations on both sides about the offer

How to prepare

  • Write two or three sentences on where you want your skills to grow over the next few years and link it to the team's work, whether embedded, full-stack or test automation.
  • List questions about team structure, development methodology and how the team measures software quality.
  • Review your salary expectations from the first call so that your position stays consistent.
ABB Software Engineer candidate reports ↗

4 candidate reports. Individual accounts describe a particular role and hiring cycle.

Software Engineer

ABB Software Engineer interview: logical test and office meeting

Online Assessment → Technical Screen → Onsite → HR Screen

I applied through Workday, was contacted, and chose a time for a recruiter call. That simple portal setup moved quickly into a more demanding process than I had expected, although it seemed well managed. I first took a cognitive or logical test and then had an online Teams round. After that I met people in person at the office, including the department for the role, HR, and possibly other manager…

Read full experience
Software Engineer

ABB Software Engineer interview: fundamentals and a difficult final round

OtherOutcome: rejected

The process started with a familiar technical sequence but became a test of both fundamentals and performance under pressure. I faced medium-level data-structures and algorithms questions, plus computer-networks and operating-systems topics with a clear cybersecurity-basics tilt. There was also a group discussion, which made it feel less like a one-shot evaluation and more like an assessment of h…

Read full experience
Software Engineer

ABB Software Engineer interview: one quick behavioral conversation

OtherOutcome: offer

I had one behavioral interview that lasted about half an hour, followed by a short wait while they followed up. Things moved quickly once the interview ended: an offer arrived roughly 15 minutes later. There was plenty of time for questions during the conversation, and I appreciated being able to ask and clarify things. It was a very good experience. The quick, conversational format made it easie…

Read full experience
Software Engineer

ABB Software Engineer interview: system design with manager and team

HR Screen → Technical Screen

My interview path was straightforward: an HR screen, a conversation with the hiring manager, and then a meeting with the team. The second stage was the real technical checkpoint, and it focused much more on system design than deep coding. Once I was there, the structure was clear and there were no surprises about the format. I concentrated on explaining my thinking through the system-design promp…

Read full experience

PracHub editorial advice for the preparation topics above.

01

Defining OOP pillars and design patterns from memory without a project example

For each concept, prepare one real example, such as a sensor driver interface for polymorphism or an observer for telemetry updates. Name the alternative you rejected and why, because the reported question asks why you chose a pattern over others.

02

Saying you know C++ or RTOS without describing interrupts, ownership or shared data

Be ready to explain what runs in an interrupt service routine, how it hands data to a task, how you avoid races on sensor readings and how you would trace a leak or pointer corruption on target. If you lack embedded experience, say so and explain the concurrency principles you do have.

03

Presenting a project or design without error handling, edge cases or testing

For every design you describe, add the failure case and how you would verify it: a dropped connection, a duplicate telemetry message, a flaky test or an overloaded log writer. Candidates are told that reliability and safety matter in this domain.

04

Arriving unable to say why this company and which of its areas

Learn the four business areas candidates name (Electrification, Process Automation, Motion, Robotics) and a few concepts such as variable frequency drives, SCADA and industrial IoT. Connect one item to your own work in two sentences.

05

Telling behavioral stories in 'we' language with no personal decision or outcome

For each story, state what you decided or built, and give a result. Rehearse stories on process limitations, deadlines, cross-functional work and code review disagreement so they are separate and specific.

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

16 technical prompts0 include a worked solution

How do you manage memory allocation and handle potential memory leaks in continuous-running software systems?

medium
Technical & Core Software Engineering

How do you manage memory allocation and handle potential memory leaks in continuous-running software systems?

Approach
  1. Split by runtime. In C/C++ make ownership explicit with RAII: std::unique_ptr for single ownership, std::shared_ptr only when ownership is genuinely shared, std::weak_ptr to break reference cycles that would otherwise never free.
  2. For software that runs for months, avoid heap churn on the hot path: allocate pools or fixed-size buffers at startup and reuse them, which also avoids fragmentation; many embedded codebases forbid malloc/free after initialisation.
  3. In Java or C# a leak is a reachable object nobody needs: unbounded caches, listeners or callbacks never unregistered, static collections. Fix with bounded or weak-keyed caches and explicit unsubscribe.
  4. Detection: run a soak test and watch resident memory or heap-after-GC over hours; a steady climb is the signal. Then use AddressSanitizer/LeakSanitizer or Valgrind memcheck for native code, heap snapshots (jmap plus Eclipse MAT, dotnet-dump) for managed code, and diff two snapshots taken apart in time.
  5. Distinguish a leak from fragmentation or a growing-but-bounded cache: memory that plateaus is not a leak, and fragmentation shows free heap that cannot satisfy a large allocation.
Follow-up
  • Two objects hold shared_ptr references to each other. What happens, and how do you fix it?
  • Memory grows on a device with no Valgrind and no OS. How do you find the leak?
  • How would you tell a real leak from heap fragmentation in the field?

How do you optimize time and space complexity when working with multi-dimensional data structures or large log

medium
Technical & Core Software Engineering

How do you optimize time and space complexity when working with multi-dimensional data structures or large log files?

Approach
  1. For large log files, stream instead of loading: read line by line or in fixed-size chunks so memory is O(1) in file size, and do the work in one pass where possible.
  2. Pick the structure from the query: a hash map keyed by error code or host gives O(n) counting with memory proportional to distinct keys; top-k uses a min-heap of size k for O(n log k) instead of sorting everything in O(n log n).
  3. When even the distinct keys do not fit in memory, hash-partition the file into buckets on disk so each bucket fits, process buckets one at a time, then merge; external merge sort is the alternative when ordered output is needed.
  4. For multi-dimensional arrays, iterate in storage order (row-major in C/C++) for cache locality; use sparse formats (coordinate list, CSR) when most cells are empty; a 2D prefix-sum table answers any rectangle-sum query in O(1) after O(rows x cols) preprocessing.
  5. If logs are sorted by timestamp, binary search finds the start of a time window in O(log n) instead of scanning; mention approximate structures (Count-Min sketch, HyperLogLog) when an estimate is acceptable.
Follow-up
  • The log is 200 GB and the number of distinct keys is also too large for RAM. What now?
  • How would you parallelise the pass across cores or machines and merge the results?
  • When is an approximate count acceptable, and what error does a Count-Min sketch give?

Walk me through how you approach debugging a multi-threaded system when encountering a race condition or deadl

medium
Technical & Core Software Engineering

Walk me through how you approach debugging a multi-threaded system when encountering a race condition or deadlock.

Approach
  1. Classify the symptom first: threads stuck with no CPU suggests deadlock; wrong or intermittent results suggest a data race; high CPU with no progress suggests livelock or spinning.
  2. Deadlock: capture all thread stacks while hung (jstack for Java, gdb 'thread apply all bt' for native, a debugger halt on an RTOS), list which lock each thread holds and waits for, and find the cycle.
  3. Fix deadlocks by breaking a Coffman condition, usually circular wait: a single global lock order, std::scoped_lock to acquire several mutexes together, or try_lock with a timeout and back-off; also avoid calling unknown code while holding a lock.
  4. Race: find shared mutable state and check-then-act or read-modify-write sequences; run ThreadSanitizer (-fsanitize=thread) or Helgrind, and raise contention with stress loops and more threads, because extra logging changes timing and can hide the bug.
  5. Fix with the narrowest tool that keeps the invariant: a mutex around the whole critical section, std::atomic for a single word, immutable data or message passing; prove it with a stress test that previously failed and a clean sanitizer run.
Follow-up
  • What is priority inversion, and how does priority inheritance address it?
  • The bug disappears when you add logging. How do you keep investigating?
  • When is a lock-free structure worth it over a mutex?

How do hardware interrupts work, and how do you ensure thread safety when reading sensor data from physical de

medium
Embedded Systems & Domain Knowledge

How do hardware interrupts work, and how do you ensure thread safety when reading sensor data from physical devices?

Approach
  1. Mechanism: a peripheral raises an interrupt line, the interrupt controller (the NVIC on Cortex-M) arbitrates by priority, the CPU saves context and jumps through the vector table to the ISR, the ISR clears the source flag and returns, and the interrupted code resumes.
  2. Keep ISRs short: no blocking calls, no heap allocation, no printf. Capture the data or timestamp and defer processing, using FreeRTOS FromISR queue or semaphore calls, or a Linux threaded IRQ, tasklet or workqueue (the top half/bottom half split).
  3. Sharing data between ISR and task: volatile stops the compiler caching a value but does not make access atomic. Protect multi-word data with a brief critical section (interrupts masked) or atomic operations; a mutex cannot be taken inside an ISR.
  4. For a stream of sensor samples, a single-producer single-consumer ring buffer (ISR writes head, task reads tail) needs no lock as long as each index is written by one side only and updates are atomic and correctly ordered.
  5. Name the edge cases: a torn read of a multi-byte value (read twice and compare, or double-buffer), interrupt storms from a noisy input, and on multicore Linux using spin_lock_irqsave rather than only disabling local interrupts.
Follow-up
  • What determines interrupt latency, and how would you measure it?
  • A sensor uses DMA instead of an interrupt per sample. What changes, including cache coherency?
  • How do you handle a bouncing mechanical switch wired to an interrupt pin?

The plan follows the reported loop: fundamentals and design first, then embedded and domain topics, then APIs, data and test automation, and behavioral stories last. Each day ends with something written or recorded that you can review.

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 choose your track
  • Write the six reported stages in order and note beside each what you must produce for it, such as a video answer, live code or a project walkthrough.
  • Choose your main track from the role's listed stacks (C/C++ embedded, Java or C# backend, React or Vue frontend, test automation) and list the topics from the other tracks you still need to cover.
  • List three of your past projects with your own contribution and one measurable result each.

Deliverable: A one-page loop map, a chosen track with a gap list, and a three-project inventory with results.

02OOP, SOLID and design patterns
  • Answer the OOP pillars question aloud with one example each for inheritance, interfaces and polymorphism, using a sensor driver hierarchy as the setting.
  • Write a modular driver layer in your main language using an interface, a factory and an adapter so a new sensor type needs no change to core logic.
  • Prepare a comparison for the design patterns question: for two patterns you have used, name the alternative you rejected and the reason.

Deliverable: A recorded OOP answer, a working driver-layer sketch with interfaces and a factory, and two pattern-versus-alternative comparisons.

Practice prompt ↗Practice prompt ↗
03Memory, complexity and threads
  • Write a memory-leak checklist for long-running software covering ownership, smart pointers or garbage-collected references, caches without eviction and growing buffers, and tools to confirm each.
  • Solve one log-processing problem and one grid problem in your main language, then state the brute-force and improved complexity.
  • Write a race condition and deadlock debugging sequence, then work through the PracHub practice debugging exercise on a stuck log partition.

Deliverable: A leak checklist, two solved problems with complexity notes, a written threading debug sequence and a note from the practice exercise.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Embedded systems and domain basics
  • Explain interrupts end to end: the hardware signal, the interrupt service routine, deferring work to a task through a queue, and protecting shared sensor data.
  • Write a summary of your embedded Linux, RTOS and C/C++ experience, or the nearest equivalent, in your own projects.
  • Read about variable frequency drives and basic schematic symbols, then write a short explanation of how you would read a schematic before integrating software with a device.

Deliverable: A written interrupt-handling explanation, an experience summary and a one-page drives-and-schematics note.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
05Telemetry, APIs and sensor data storage
  • Draw the architecture from device to cloud, covering buffering on the device, a message protocol, ingestion, storage and a dashboard, and list failure modes with their handling.
  • Design a REST layer in front of a legacy manufacturing system, listing resources, error shapes, pagination, timeouts and how you would isolate the legacy system.
  • Write a schema for high-frequency sensor readings with partitioning, indexes, retention and two example queries.

Deliverable: A telemetry architecture diagram with failure handling, a REST middleware design and a sensor schema with queries.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Frontend, test automation and UI experience
  • Outline a Cypress or Ranorex suite for a web control interface, using page objects or Cypress custom commands, stable selectors, API-based test data setup and CI integration.
  • Write a frontend performance list covering code splitting, lazy loading, bundle analysis and virtualised lists, and attach a real example from your work.
  • Write your component-driven UI story with the decision you owned and a measurable result.

Deliverable: A test suite outline, a performance checklist with one real example and a written UI project story.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral stories, motivation and offer stage
  • Write four stories for process limitations, deadlines or vague requirements, cross-functional work and a code review disagreement, each with your action and a result.
  • Write and rehearse your answer to why you want to join ABB, tied to one business area and your experience.
  • Rehearse a project walkthrough covering architecture, trade-offs, error handling and testing, then list your questions for the team and your career direction.

Deliverable: Four written stories, a motivation answer, a rehearsed project walkthrough and a question list for the final discussion.

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 behavioral interviews with business unit managers that explore project history and team collaboration style, and some tracks add a project or use-case presentation. For a role where software controls physical equipment, prepare stories about reliability, working with hardware and product colleagues, and handling feedback. Each story needs your own action and a result.

Describe your experience building component-driven user interfaces using modern JavaScript/TypeScript framewor

medium
Full Stack & Web Technologies

Describe your experience building component-driven user interfaces using modern JavaScript/TypeScript frameworks such as React or Vue.js.

Approach
  1. Pick one UI you shipped and describe its component structure in a sentence: the page-level container, the reusable pieces and which of them owned state. Then spend your time on one decision you made, such as lifting state up versus using a store or context, and your reasoning.
  2. Explain how data reached the components, whether through props, hooks or composables, a fetch layer, or WebSocket updates for live data. State how you kept rendering cheap with stable keys, memoised selectors and list virtualisation for long lists.
  3. Say how you tested it: component tests for pure pieces, a few end-to-end flows, and typed props shared with the API contract. If you used only React or only Vue, say so and name the equivalent concepts in the other.
  4. Finish with a result you can check, such as smaller bundle size, faster render of a large grid, fewer UI defects or components reused by another team. A list of frameworks without a decision you owned is the weak version of this answer.
Follow-up
  • How did you decide where state should live, and what would make you move it?
  • What made the interface slow, and how did you find the cause?
  • Which component would you redesign today, and why?

Describe a situation where you identified a significant technical or process limitation in your team. How did

medium
Behavioral, Leadership & Ethics

Describe a situation where you identified a significant technical or process limitation in your team. How did you raise and address it?

Approach
  1. Choose a limitation you could evidence, such as a manual release process, flaky CI, missing logging or a design that blocked changes. Describe it with a fact or measurement, for example how many releases it delayed or how often it failed.
  2. Describe how you raised it: who you told, what you brought with you (data, a short proposal, options with costs) and what you asked for. Show that you took the problem to the person who could decide rather than complaining sideways.
  3. Describe what you did yourself, whether a prototype, a pilot on one component or an agreed plan with owners, and how you handled resistance or the cost of the change.
  4. End with the result and how you checked it. Mention what you would change in how you raised it. The failing version names a problem and leaves the action to someone else.
Follow-up
  • How did you convince people who did not see it as a problem?
  • What did the fix cost, and was it worth it?
  • What would you do differently the next time you spot a similar issue?

Tell me about a time you had to work with tight project deadlines or vague requirements. How did you prioritiz

medium
Behavioral, Leadership & Ethics

Tell me about a time you had to work with tight project deadlines or vague requirements. How did you prioritize deliverables?

Approach
  1. Open with the constraint in two sentences: what was due, what was unclear and who was affected. Then say how you cut the ambiguity, by asking the requester questions, writing the assumptions down and confirming them, or building the smallest slice that could be validated.
  2. Explain how you prioritised: ranking by user or safety impact, by risk and by dependency order. State which work you deferred or cut and who agreed to that. A story in which nothing was cut is hard to believe.
  3. Show how you kept stakeholders informed as the picture changed, for example with a short status note and a revised plan when an assumption proved wrong.
  4. Report the outcome honestly, including quality trade-offs and any follow-up work. Avoid a story that is mainly long hours; show a decision instead.
Follow-up
  • Which requirement did you choose to drop, and who signed off?
  • What happened when one of your assumptions turned out to be wrong?
  • How would you handle the same deadline if it involved safety-related code?

How do you approach cross-functional collaboration when working alongside hardware engineers, mechanical desig

medium
Behavioral, Leadership & Ethics

How do you approach cross-functional collaboration when working alongside hardware engineers, mechanical designers, and product managers?

Approach
  1. Pick a project in which your software depended on hardware, mechanical or product decisions. Name the other roles and what each needed from you, such as signal lists, timing limits, units, protocol details or a delivery date.
  2. Show the mechanisms you used to work across disciplines: an interface specification agreed in writing, a simulator or mock device while hardware was unavailable, shared terms, and early integration sessions instead of one late handover.
  3. Give a conflict or surprise, for example a hardware change after your code was written, and describe how you traced it, who you spoke to and how the plan changed.
  4. Close with a result such as an earlier integration, fewer defects found in testing on real hardware, or a spec that others reused. Saying only that you communicate often is the generic version of this answer.
Follow-up
  • What did you do when the hardware was not available to test against?
  • How do you explain a software constraint to someone who does not write code?
  • Tell me about a time a hardware or product decision changed your design late.

Give an example of how you handle constructive feedback or a technical disagreement with a senior engineer dur

medium
Behavioral, Leadership & Ethics

Give an example of how you handle constructive feedback or a technical disagreement with a senior engineer during a code review.

Approach
  1. Describe the review disagreement in neutral terms: what the change was, what the senior engineer asked for and where you disagreed. Choose a technical disagreement, not a personal one, and one where both positions had merit.
  2. Explain how you tested your own view first by restating their concern, checking for a defect you had missed and looking for evidence, such as a benchmark, a failing test or the project's coding standard. Then show you presented evidence rather than opinion.
  3. Say how it ended. You might have changed your code, they might have accepted your approach, or you both agreed a middle path or asked a third person to decide. Include what you learned about review practice, such as small changes, clearer descriptions or a written decision.
  4. If you were wrong, say so plainly and describe what you changed. A story where you are always right, or where you gave in without understanding the reason, answers the wrong question.
Follow-up
  • What would you have done if the evidence had not settled it?
  • Tell me about feedback in a review that changed how you write code.
  • How do you give review feedback to someone more senior than you?
  • 01

    Describe a situation where you identified a significant technical or process limitation in your team. How did you raise and address it?

  • 02

    Tell me about a time you had to work with tight project deadlines or vague requirements. How did you prioritize deliverables?

  • 03

    How do you approach cross-functional collaboration when working alongside hardware engineers, mechanical designers, and product managers?

  • 04

    Give an example of how you handle constructive feedback or a technical disagreement with a senior engineer during a code review.

  • 05

    Describe your experience building component-driven user interfaces using modern JavaScript/TypeScript frameworks such as React or Vue.js.

  • 06

    Why do you want to join ABB, and how does your background fit its industrial technology focus?

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

Candidates report six stages: a talent acquisition screening, an asynchronous video submission or online assessment, technical panel rounds, deep technical probing, behavioral evaluations and a final offer discussion. The reported span is about 4-6 weeks, although some accounts give shorter times. Business unit, location and local scheduling change both, so ask your recruiter for your own sequence.

ABB Software Engineer candidate reports ↗
Do I need electrical or hardware knowledge for a software role?

Candidates report that basic electrical understanding is useful for embedded, instrumentation, robotics and drives teams, where schematics and drive concepts appear in questions. For full-stack or enterprise web teams, standard software engineering matters more. Check the posting, and if it is hardware-adjacent, learn the basics of variable frequency drives, interrupts and schematic reading.

ABB Software Engineer candidate reports ↗
Which languages and tools should I prepare?

The listed requirements include one object-oriented language (C++, Java or C#) or a web stack such as React, Vue.js or Node.js, plus Git, data structures, algorithms and OOP principles. Nice-to-have items include Embedded Linux, RTOS, Modbus, CAN bus, OPC UA, Azure DevOps, Docker and Kubernetes. Prepare your main track in depth and the others at overview level.

ABB Software Engineer candidate reports ↗
Will I be asked to present a project or complete a homework task?

Candidates report that several tracks ask for a walk through a past project or a use-case or homework presentation. Prepare one project covering architecture, trade-offs, error handling, testing and lessons, and be ready to explain how the design would behave when a device or network fails.

ABB Software Engineer candidate reports ↗
What does the asynchronous video or online assessment stage involve?

Candidates report either a video submission or an online assessment covering aptitude and basic programming logic, with electrical or domain concepts for some teams. Practise plain problems in your language, and record a spoken answer to check that it is structured and clear.

ABB Software Engineer candidate reports ↗
Are the interviews remote or on-site?

Candidates report that early stages, such as the screening and technical panels, are usually held over video. Some later stages, such as manager rounds, group presentations or facility tours, may be held at a local ABB site, depending on the team. Prepare a quiet setup for video stages and ask about the format of later ones.

PracHub Software Engineer practice ↗
How should I prepare for the behavioral rounds?

Use the situation, task, action and result structure, and make the action yours. Prepare four distinct stories for process limitations, tight deadlines, cross-functional work and code review disagreement, plus an answer on why you want to join ABB. Each should have a result you can state.

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