Omnissa · Software Engineer
Updated · 2026-09-24

Omnissa Software Engineer
Interview Guide

THE 60-SECOND BRIEF

PracHub's source notes describe Omnissa Software Engineers as working on enterprise workspace, security and management platforms, with code spanning C#/.NET, C/C++ system components and cloud services. The same notes mention desktop virtualization layers, authentication workflows and customer escalations as areas engineers work in, alongside product management, platform engineering and QA. Read those as the likely themes for technical and project questions, and confirm your target team's stack with your recruiter.

This guide covers the six stages candidates report (resume shortlisting, an online assessment, technical rounds, algorithmic problem-solving, project discussions and a managerial/HR round) and the reported question categories: coding and data structures, object-oriented programming, containers and databases, system design, and authentication and encryption in your own past projects. Each section turns those categories into preparation steps.

Omnissa candidates report 6 rounds · ≈ 4-6 weeks. The stages below are what candidates describe, not a published process.

Bound blast radius with per-tenant concurrency limitsEvolve APIs without breaking pinned SDK clientsKeep money in integer minor units

40 min read

Practice 15 Software Engineer prompts
9Company bank questionsSnapshot · Sep 24, 2026 PT
1Candidate experiences ↗Read their reports
15Practice promptsAcross five skill areas
3With worked solutionsIncluded in the practice prompts

PracHub's source notes describe the Omnissa Software Engineer role as building and maintaining software for enterprise workspace, security and management platforms. The languages named are C#/.NET and C/C++ for system components, with cloud services and client-facing architecture also in scope. Which of these you would work in depends on the team, so ask your recruiter early which stack and product area the opening sits in, and weight your language practice to match.

The same notes list the problems engineers deal with: performance-sensitive desktop virtualization layers, secure authentication workflows, and customer escalations, often where older systems meet newer cloud services. For interview preparation this points to two things. You need to reason about how a system behaves end to end, not only produce a correct function. And you need to be able to explain the security mechanics of work you have shipped, such as token validation or encryption choices, in detail.

The reported questions reflect that mix. Candidates describe standard coding problems (valid parentheses, 3-sum, a running median over a stream), a news-feed subscription problem to be solved without LINQ or built-in sorting, OOP and Docker image-layer fundamentals, a system design walkthrough, and project deep-dives covering JWTs, WS-Federation and encryption. Plan your preparation around those categories rather than around a single interview format.

01

Resume Shortlisting

reported

Candidates report that the process starts with resume-based shortlisting. Nothing is asked of you live at this stage, but the resume you submit becomes the script for the later project discussions, which the source notes describe as detailed deep-dives with lead and staff engineers. Any line you cannot defend under repeated follow-up questions is a liability. Edit the resume with that later conversation in mind: every project bullet should name your own contribution, the technology involved and a result you can explain.

What to demonstrate

  • Whether your resume shows work in the languages the source notes name for this role (C#/.NET, C/C++) or clearly transferable systems and backend experience
  • Whether each project bullet states your own contribution specifically enough to support a detailed conversation later
  • Whether security, authentication or infrastructure work you have done (tokens, federation, encryption, containers) is visible, since those topics recur in reported questions

How to prepare

  • Rewrite each project bullet as action, technology and outcome, and remove any claim you could not explain three levels deep
  • Mark the bullets that involve authentication, encryption, Docker or performance work, because those are the ones most likely to draw follow-up questions
  • Ask the recruiter which team and language stack the role uses so you can weight later preparation toward C#/.NET or C/C++
PracHub interview research
02

Online Assessment

reported

The source notes describe an online assessment of core coding ability and system logic. One reported item is a medium-difficulty LeetCode-style problem under a time limit, and the notes mention HackerRank for early assessments. Treat it as an unassisted timed environment. Read the constraints before choosing an approach, write your own edge-case tests instead of relying on the visible samples, and submit a correct solution before trying to optimise it.

What to demonstrate

  • Whether you produce a correct, complete solution to a medium problem within the time limit
  • Whether your code handles edge cases the sample tests do not cover: empty input, a single element, duplicates, extreme values
  • Whether your chosen complexity fits the stated input bounds

How to prepare

  • Solve timed problems in a HackerRank-style editor with autocomplete off, starting with valid parentheses, 3-sum and first unique character index, then bank problems such as maximum subarray sum and repeatedly removing adjacent equal characters
  • Before coding each problem, write a one-line note naming the target complexity and the input bound that justifies it
  • Keep a short list of edge cases you missed in practice and check against it before every submission
PracHub interview research
03

Technical Rounds

reported

Candidates report one or more technical rounds held virtually or on live coding platforms. The reported question list includes fundamentals that could come up in any technical conversation: OOP concepts, abstract classes versus interfaces, the purpose of Docker image layers, preventing SQL injection, and normalization, indexing and denormalization. Prepare each as a short explanation followed by a concrete example or code, because a textbook definition gives the interviewer nothing to follow up on.

What to demonstrate

  • Whether you can explain a fundamental such as encapsulation, polymorphism or interface design and then apply it in code
  • Whether you connect a concept to its practical effect, for example how Dockerfile instruction order affects layer caching and rebuild time
  • Whether you reason about trade-offs, such as when an abstract class suits better than an interface, or when to denormalize for read performance
  • Whether you think and explain aloud while working in a shared environment

How to prepare

  • For each OOP pillar, prepare one short C# or C++ snippet from your own experience that shows it, plus one case where misusing it caused a problem
  • Explain Docker layers from memory: each filesystem-changing instruction (RUN, COPY, ADD) adds a read-only layer, while ENV, CMD, LABEL and similar only add metadata; layers are cached and shared between images, and a container adds a writable layer on top, so putting rarely changing steps first speeds up rebuilds
  • Explain SQL injection defence at both layers (parameterized queries, least-privilege database accounts, input validation) and practise the concurrency drill on the page (drill-sql-1) to rehearse database reasoning out loud
PracHub interview research
04

Algorithmic Problem-Solving

reported

The source notes describe live algorithmic problem-solving together with system design discussion. Reported coding problems include valid parentheses, 3-sum, a running median after each insertion, and a news-feed system with subscribe and unsubscribe that must be built without LINQ or built-in sorting. That last constraint matters: if you rely on library shortcuts, practise building the underlying structures yourself. Reported design prompts ask you to walk through component interactions and data flow.

What to demonstrate

  • Whether you choose a data structure from the operations the problem needs, for example two heaps for a running median, giving O(log n) insertion and O(1) median reads
  • Whether you can still solve the problem when standard utilities are ruled out, by writing your own ordering or merge logic
  • Whether your design walkthrough names components, the data flow between them and the read and write paths separately
  • Whether you state complexity and edge cases before being asked

How to prepare

  • Implement a min-heap and max-heap pair, a merge of k sorted lists and a simple insertion into an ordered structure in C# or your main language without LINQ or built-in sort calls
  • Solve the news-feed subscription problem end to end: subscription storage, feed assembly by merging per-source lists, and the cost of subscribe, unsubscribe and read
  • Practise one design prompt from the bank, such as a multi-channel notification system or a cloud file storage and sync service, stating data model, APIs and data flow in that order
PracHub interview research
05

Project Discussions

reported

The source notes describe deep-dive conversations with lead and staff engineers about your past projects and domain expertise, and say these can go into fine detail on resume projects. Reported questions include walking through a recent project, explaining encryption practices, JWTs and WS-Federation in a past project, the business reason behind a complex feature, and how you would modify and scale a resume project in future. Prepare at least one project deeply enough to take repeated follow-up questions on it.

What to demonstrate

  • Whether you can explain the architecture of a project you built and your specific part in it, separate from the team's
  • Whether your security explanations are mechanically correct: what a JWT's signature proves, which claims are validated, how a federated sign-in hands a token to the relying application
  • Whether you can say why a feature existed and what problem or business driver justified it
  • Whether you can propose credible future changes and scaling steps, with their costs

How to prepare

  • Choose two or three projects and write one page each covering the problem, architecture, your decisions, the alternatives you rejected, what broke and what you would change
  • For any authentication work, practise the full flow aloud: token issuance, signature and expiry validation, audience and issuer checks, refresh and revocation, and where WS-Federation's redirect to an identity provider fits
  • For each project, prepare one scaling or extension plan that names the first bottleneck, the change you would make and what it would cost
PracHub interview research
06

Managerial/HR Round

reported

The source notes describe the final stage as a managerial or HR round covering cultural alignment, communication skills and long-term career direction. Bank questions for this role include prioritising two important tasks with competing deadlines, resolving a conflict between senior engineers, presenting a project's architecture and your hardest technical decision, and discussing strengths and weaknesses. Prepare a small set of stories you know thoroughly rather than a scripted answer for every possible prompt.

What to demonstrate

  • Whether you can explain technical work clearly to a listener who may not share your context
  • Whether your stories show how you handled competing priorities, disagreement and your own mistakes
  • Whether your stated career direction fits the kind of work the role involves

How to prepare

  • Prepare four stories (a competing-deadline trade-off, a technical disagreement, a mistake you owned, your hardest technical decision) and map each common prompt to one of them
  • Give a strengths-and-weaknesses answer where the weakness is real and comes with a concrete step you are taking
  • Write two sentences on where you want your career to go and why this role's work, such as systems, security or platform engineering, is part of that path
PracHub interview research

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

Software Engineer

Omnissa Software Engineer Interview Experience — Five Rounds from C# LLD to Notification Design

Technical Screen → Onsite

Round 1: Screening / Practical Coding (HackerRank) This was a practical low-level design coding problem based on a real scenario, and I was required to use C#. Given an existing repository class, I had to implement and complete every method in a Service class so that it passed the test cases. The main focus was how I organized the code, wrote clean code, handled edge cases, and thought through an…

Read full experience

PracHub editorial advice for the preparation topics above.

01

Reaching for LINQ, built-in sort or other library shortcuts when the prompt rules them out

One reported problem asks for a news feed with subscribe and unsubscribe but no LINQ or sorting. Before the interview, build the underlying pieces by hand in your main language: a heap, a k-way merge of per-source lists, an insertion into an ordered list. Then state the cost of each operation. If a standard solution depends on sorting, as 3-sum usually does, say so and either write the sort yourself or explain a hash-based alternative and its trade-off.

02

Describing JWTs, WS-Federation or encryption in your own project only at the buzzword level

Reported project questions ask how these worked in work you did. Be ready to explain what a JWT signature protects and what it does not (the payload is readable), which claims you validated (expiry, issuer, audience), how keys were rotated, how the federated sign-in redirect returned a token to your application, and which algorithms you used for data at rest and in transit and why. If a teammate built part of it, say so rather than guessing.

03

Submitting the timed online assessment after passing only the visible sample tests

The reported assessment is a medium problem under a time limit. Check the input bounds first, then test empty, single-element, duplicate and extreme-value cases yourself before submitting. Practise in a plain editor without autocomplete so syntax lookups do not use up the clock.

04

Answering OOP and fundamentals questions with textbook definitions and no example

For abstract classes versus interfaces, OOP concepts and Docker image layers, follow each definition with a concrete case: a class hierarchy you designed, why you chose an interface there, or how you reordered a Dockerfile to improve layer caching. The example is what the next follow-up question builds on.

05

Offering generic scaling ideas when asked how a past project would change in future

When asked about future modifications or scaling for a resume project, name the component that would fail first under growth, the change you would make, and what that change costs in complexity, consistency or operations. Base it on the real numbers of that system, not on a generic answer of adding caching and sharding.

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

12 technical prompts3 include a worked solution

Solve the 3-sum problem efficiently.

medium
data structures and algorithms

Solve the 3-sum problem efficiently.

Approach
  1. Name the brute-force solution and its complexity before improving on it.
  2. Walk one small example through your approach before writing the whole thing.
  3. State the target complexity and say which constraint rules the naive version out.
Follow-up
  • Which test case would catch an off-by-one here?
  • What is the worst case, and how likely is it on real data?

Design a news feed system where users can subscribe and unsubscribe wi…

medium
data structures and algorithms

Design a news feed system where users can subscribe and unsubscribe without using LINQ or sorting.

Approach
  1. Walk one small example through your approach before writing the whole thing.
  2. State the target complexity and say which constraint rules the naive version out.
  3. Restate the input: its shape, its size, and what is guaranteed about it.
Follow-up
  • How does this change if the input no longer fits in memory?
  • Which test case would catch an off-by-one here?

Find the median of a stream of numbers coming in, calculating the medi…

medium
data structures and algorithms

Find the median of a stream of numbers coming in, calculating the median after each insertion.

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. State the target complexity and say which constraint rules the naive version out.
Follow-up
  • What is the worst case, and how likely is it on real data?
  • How does this change if the input no longer fits in memory?

Write a function to determine if a string has valid parentheses.

medium
data structures and algorithms

Write a function to determine if a string has valid parentheses.

Approach
  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Choose the data structure from the access pattern, not from familiarity.
  3. Name the brute-force solution and its complexity before improving on it.
Follow-up
  • How does this change if the input no longer fits in memory?
  • Which test case would catch an off-by-one here?

Seal an hour under late data with bounded memory

hardWorked solution
watermarkslate-dataquantile-sketchconditional-write

Metering ingest reads 256 partitions at 10,000 to 40,000 events/second. Events carry occurred_at and ingested_at, and during a producer replay the gap between them is hours. Seal each UTC hour once no more than 50 parts per million of that hour's eventual quantity can still arrive, using memory that does not grow with the size of the replay. Define the watermark, the lateness parameter and how you measure it, the structure holding open hours, and the write that performs the seal. State what an idle partition does to your watermark.

Approach
  1. Two clocks, two jobs. Bucket by occurred_at, because that is the hour the customer is billed for, and advance the watermark on ingested_at, because that is what the fold has consumed and what source_max_ingested_at records. Conflating them is what makes late data invisible.
  2. The global watermark is the min over partitions of each partition's committed ingested_at, not the max: the fold is trustworthy only as far as the slowest partition. The consequence is that one idle partition pins the watermark forever and nothing seals, so an idle partition must promote its watermark to wall clock after a stated idle timeout, and that timeout becomes a correctness parameter, because a partition that is slow rather than idle gets sealed past.
  3. Choose the lateness L from the measured distribution of ingested_at - occurred_at, weighted by quantity rather than by event count. The target is 50 ppm of the hour's quantity, and a replay is rare in events while carrying disproportionate mass, so an event-weighted quantile picks an L that is comfortably wrong at exactly the moment it matters.
  4. Measure that quantile in bounded memory. A Greenwald-Khanna summary gives epsilon-approximate quantiles in O((1/epsilon) log(epsilon n)) space; a t-digest costs more per merge but has relative error that tightens at the tails, which is the half of the distribution you are reading at p99.99. Keep a separate summary per tenant class, because one tenant's batch importer is not the population.
  5. Hold open hours in a min-heap keyed by hour_start. When the watermark advances, pop every hour with hour_end + L < W and seal it: O(log H_open) per advance and O(1) amortised per event to touch its bucket. Memory is open hours multiplied by distinct (tenant, workspace, sku) keys, so cap the number of simultaneously open hours and spill the oldest into usage_rollup_hourly as status='open' with a revision bump. While an hour is open the row is upsertable, so the store is your overflow.
  6. The seal itself is a conditional write: update ... set status='sealed', sealed_at=now() where status='open' returning .... Two sealers race on every restart, and the loser must see zero rows and stop rather than write a second value. After the seal, an event for that hour is not an upsert but an adjustment, and source_max_ingested_at is what proves it arrived afterwards.
Worked solution 40 min
  1. Replay a day of events with a synthetic lateness distribution: 99.9% under two minutes, plus a 0.05% tail at four to six hours that carries 3% of total quantity.
  2. Compute the p99.99 lateness two ways, event-weighted and quantity-weighted, and put the two numbers side by side.
  3. Implement the min-heap of open hours with the watermark as the min over 256 partitions, then stall one partition for 20 minutes and observe what seals.
  4. Set the idle-partition timeout to 60 seconds, repeat the stall, and measure how much quantity arrives after the seal.
  5. Attempt the seal from two workers at once and confirm the conditional update lets exactly one through.
EXPECTED RESULTThe quantity-weighted p99.99 is hours larger than the event-weighted one. Choosing L from the event-weighted number lets roughly the tail's 3% of quantity land after the seal, 600 times the 50 ppm target. With the min watermark and no idle timeout, the stalled partition blocks all sealing; with a 60-second timeout, the stall is sealed past and its events arrive late.
Follow-up
  • A replay starts during the sealing window for a period you are about to close. What do you do, and what is the customer-visible consequence of each option?
  • Your measured quantity-weighted p99.99 lateness is six hours and the invoice must be issued at 02:00 UTC on the first. How do you reconcile those two numbers?
  • How would you detect that L has drifted before it costs you an hour's quantity?

Day one measures instead of guessing, under a fixed rubric, and the remaining hours are allocated in proportion to the gaps before any studying begins. The allocation is deliberately not renegotiated midweek, because the area that feels worst on day three is usually the one that is moving.

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
01Resume shortlisting and project inventory
  • Rewrite each resume project bullet as action, technology and outcome, and remove claims you cannot explain in depth
  • Choose the two or three projects you will use in project discussions and write one page each: problem, architecture, your decisions, rejected alternatives, what broke
  • Mark every place where authentication, encryption, Docker or performance work appears, since those topics recur in reported questions
  • Ask the recruiter which team and language stack (C#/.NET or C/C++) the role uses

Deliverable: An edited resume and one project page per chosen project.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Worked solution ↗
02Online assessment: timed problems
  • Solve problems in a HackerRank-style editor with autocomplete off: valid parentheses, 3-sum, first unique character index
  • Add bank problems under the same conditions: maximum contiguous subarray sum and repeatedly removing adjacent equal characters
  • Before coding each one, write the target complexity and the input bound that justifies it
  • After each submission, list the edge cases you missed

Deliverable: A personal edge-case checklist and a note of which problems went over time.

Practice prompt ↗Practice prompt ↗
03Algorithmic problem-solving without library shortcuts
  • Implement the running median with two heaps, building the heaps yourself, and state the insertion and read complexity
  • Build the news-feed subscription problem without LINQ or built-in sorting: subscription storage, a k-way merge for feed reads, and the cost of subscribe and unsubscribe
  • Solve bank problems that test structure choice: checking whether a singly linked list is a palindrome and finding the celebrity in a knows matrix
  • Solve the bank concurrency problem of alternating odd and even numbers with two threads, and explain the synchronisation you used

Deliverable: Working implementations of a heap, a k-way merge and the feed problem, each written without library sorting.

Practice prompt ↗Practice prompt ↗
04Technical rounds: OOP, containers and databases
  • Prepare examples for OOP concepts and for abstract classes versus interfaces, each with a snippet from your own work
  • Explain Docker image layers aloud: filesystem-changing instructions (RUN, COPY, ADD) create read-only cached layers while metadata instructions do not, layers are shared between images, the container adds a writable layer, and instruction order affects rebuilds
  • Cover SQL injection defence at the application and database layers, plus normalization, indexing and when to denormalize
  • Work through drill-sql-1 (concurrent quota) and review the worked SQL migration exercise to practise reasoning about locks and isolation out loud

Deliverable: A one-page fundamentals sheet with an example next to every definition.

Practice prompt ↗Practice prompt ↗Worked solution ↗
05System design walkthroughs
  • Design a multi-channel notification system from the bank: data model, subscription schema for fast reads and writes, delivery path, retries
  • Design a cloud file storage and sync service from the bank, naming the read and write paths separately
  • Work through the worked design exercise on resumable usage export to practise cursor pagination and API contracts
  • For each design, describe component interactions and data flow in order, as the reported design question asks

Deliverable: Two design sketches, each with a schema, API list and a named first bottleneck.

Practice prompt ↗Practice prompt ↗
06Project discussions: security and scaling depth
  • For each chosen project, practise explaining the authentication flow end to end: token issuance, signature and claim validation, expiry, refresh, and where a WS-Federation redirect fits if you used it
  • Prepare your answer on encryption at rest and in transit: algorithms chosen, key management, and why
  • For each project, prepare the future-modification and scaling answer: first bottleneck, change, cost
  • Have a peer ask why repeatedly on one project and note where your answer starts repeating itself

Deliverable: A security-flow explanation and a scaling plan for each chosen project, rehearsed aloud.

Practice prompt ↗Practice prompt ↗
07Managerial/HR round and a full mock
  • Prepare four stories: competing deadlines, a conflict between senior engineers, a mistake you owned, and your hardest technical decision
  • Prepare a strengths-and-weaknesses answer and two sentences on your career direction
  • Prepare an answer to the reported question about writing a prompt for an AI coding assistant such as Cursor to solve a DSA problem: state constraints, ask for complexity, and verify the output yourself
  • Run a mock covering one coding problem, one fundamentals question and one project deep-dive with follow-ups

Deliverable: A story index mapping common prompts to your four stories, plus notes from the mock.

Practice prompt ↗Practice prompt ↗Worked solution ↗

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

The source notes describe project deep-dives with lead and staff engineers and a final managerial or HR round covering communication and career direction. Prepare a few projects and stories in depth so they hold up when an interviewer asks why several times in a row, and be ready to separate your own decisions from the team's.

Tell me about a project you worked on in recent memory at your previou…

medium
behavioural and engineering judgement

Tell me about a project you worked on in recent memory at your previous job.

Approach
  1. Name the disagreement and how you resolved it with evidence.
  2. Give the blast radius: what could have broken, and what you measured.
  3. Pick a story where you made the decision, not one where you watched it.
Follow-up
  • What would you do differently if you ran that again?
  • What did you decide not to do, and why?

Disclose a cross-tenant webhook delivery to affected customers

medium
cross-tenant leakdisclosureblast radiusauthorisation checks

An enqueue path took the subscription from one lookup and the payload from another. For nineteen minutes, webhook_delivery rows were created whose tenant_id did not match the subscription's tenant, and eleven payloads were signed and sent to four endpoints belonging to other customers. You hold payload_digest, delivery timestamps and response codes. Describe how you handle a disclosure of this kind: what the records prove, what they cannot prove, what you say before you know everything, the one code change that closes it, and which parts you personally drove.

Approach
  1. Bound the population before saying anything externally. The affected set is deliveries in the window where the event's tenant and the subscription's tenant differ; the ones that actually left are those with delivered_at set and a 2xx in last_response_code. Attempted and delivered are two different counts and a disclosure has to use the right one in the right sentence.
  2. Separate what the records prove from what they do not, and say both halves rather than the flattering one. They prove which payloads were signed, where they went, and — through payload_digest — exactly which bytes. They do not prove what the receiving system did with them, and they do not bound the window more precisely than your deploy timestamps do.
  3. Communicate on the facts you hold, with the scope stated as an upper bound: 'at most eleven payloads, four recipient endpoints, these fields, this window' is more useful and more honest than waiting a day for certainty. The field list matters more than the event count, because a customer cannot assess exposure from 'an event'.
  4. Name the code change precisely, because this class never originates in the delivery worker. Compare the event's tenant against the subscription's tenant at enqueue and again immediately before the payload is signed, and make the second comparison drop the delivery rather than log a warning. Say why one check is insufficient: the enqueue check protects against the bug you know about, the pre-signing check protects the boundary itself.
  5. Run the history question in parallel and say so: a query over historical deliveries for the same mismatch tells you whether this was nineteen minutes or a year, and you would rather find the second case yourself than have a customer find it after your disclosure.
  6. Split the response into workstreams with owners — recipients asked to delete, affected customers notified, the check landed with a test, history swept — and say which you personally drove and which you handed off. Claiming all four is not credible and claiming none is not ownership.
Follow-up
  • The historical sweep finds two more instances from last year. What changes in what you have already told people?
  • Who approves the wording, and what do you do when you are asked to soften the scope?
  • A customer asks you to prove a redelivery contained the same bytes as the original. What do you show them?

Unblock an engineer on a job run that finished twice

easy
mentoringfencing tokenslease expirydebugging method

An engineer two weeks into the team brings you a job_run row showing status succeeded with an exit_code written by a worker declared dead ten minutes earlier; the retry attempt also shows succeeded. They have spent a day adding logging and are no closer. You have twenty minutes and you do not want to take the keyboard. Describe how you unblock someone: the question you ask first, what you let them find themselves, the concept you name and when, and how you check the next day that they own the fix rather than having watched you produce it.

Approach
  1. Ask what they expect rather than what they see: which statement set status to succeeded, and what did it check before writing? That question points directly at the update's WHERE clause, which is where the answer lives, and it costs them nothing to answer, so it does not read as a test.
  2. Let them build the timeline themselves from the row: queued_at, started_at, leased_until, finished_at and worker_id, on both the original run and the retry. Two different worker_ids with a lease expiry between them tells the whole story, and they will see it before you say it.
  3. Name the concept once the evidence has earned it. A lease bounds time; it does not prevent a write. The store has to reject a stale writer, which means the update carries a fencing token the row compares — update job_run set status = 'succeeded' where run_id = $1 and lease_token = $2 and status = 'running' — and a long garbage-collection pause or a brief partition is enough to produce what they are looking at.
  4. Point at the second, less obvious half and let them decide it: 'lost' exists in the status enum precisely so a run whose worker vanished is not recorded as failed, because failed asserts an outcome nobody observed and the system then bills and retries on that assertion. Ask them what these two rows should have said.
  5. Leave them with the next step rather than the patch — a test that kills the first worker after the sandbox exits and before the row is written — and say when you are available again, so the offer is real rather than polite.
  6. Check ownership the next day by what they produced, not by asking if it went well: a test that reproduces the window proves they understood it; a test that only asserts the new WHERE clause proves they copied it. Ask them to explain it to a third person and listen for whether the explanation is theirs.
Follow-up
  • They propose a longer lease instead of a token. What do you say, and what breaks when legitimate runs last thirty minutes?
  • How can you tell whether your explanation landed or they simply deferred to you?
  • The same engineer hits a variant of this next month. What did you fail to teach the first time?
  • 01

    Tell me about a project you worked on recently at your previous job.

  • 02

    What was the core issue or business driver behind a complex feature you built?

  • 03

    Present a project's architecture and the hardest technical decision you made on it.

  • 04

    Tell me about a time you had to prioritise two important tasks with competing deadlines.

  • 05

    Describe a time two senior engineers disagreed on a high-stakes technical decision. What did you do?

  • 06

    What are your strengths and weaknesses?

PracHub interview preparation framework
Is this an official Omnissa interview guide?

No. It is PracHub's own research and practice material for the Software Engineer role at Omnissa. Rounds and questions reflect what candidates have reported, not a process Omnissa has published, and they change over time. Confirm the current format and scope with your recruiter.

PracHub interview research
How difficult are the technical interviews at Omnissa?

The question bank tags the reported coding problems at different levels: valid parentheses (nested brackets) as Easy, 3-sum as Medium, and both the running median over a number stream and the news-feed subscription problem as Hard. The news-feed problem also rules out LINQ and built-in sorting, and project discussions are described as going into fine detail on your resume projects, including security mechanics. Prepare fundamentals and project depth, not only problem volume.

PracHub interview research
What should I expect from the online assessment?

Candidates report a timed assessment with a medium-difficulty LeetCode-style problem, and the source notes mention HackerRank for early assessments. Practise timed medium problems in a plain editor, check input bounds before choosing an approach, and test edge cases yourself before submitting.

PracHub Software Engineer practice
Which programming language should I prepare in?

The source notes name C#/.NET and C/C++ for this role, varying by team. Ask your recruiter which one the team uses. If it is C#, practise solving problems without LINQ, since one reported problem rules it out. Whichever language you use, be able to write a heap, a merge and basic data structures without library help.

PracHub Software Engineer practice
How much security knowledge do I need?

Reported project questions ask about encryption practices, JWTs and WS-Federation in work you have done, and the bank includes questions on encryption at rest and in transit, JWT and WS-Federation authentication flows, and hardening token-based sessions. If your resume includes authentication or encryption work, be ready to explain the full flow and your choices. If it does not, know the fundamentals well enough to discuss them accurately and say what you have not built yourself.

PracHub Software Engineer practice
How should I prepare for the project discussions?

Choose two or three projects and prepare each in depth: the problem and business reason, the architecture, your specific decisions and the alternatives you rejected, what went wrong, and how you would extend or scale it. Reported questions include future modifications and scaling strategies for a resume project, so prepare a concrete answer naming the first bottleneck and the change you would make.

PracHub Software Engineer practice
Is there a question about AI coding assistants?

One reported question asks you to write a prompt for an AI coding assistant such as Cursor to solve a data structures and algorithms problem. A good answer states the problem, constraints and input bounds, asks for the approach and its complexity before the code, asks for edge-case tests, and explains how you would verify the output rather than accepting it as given.

PracHub Software Engineer practice
Sources & methodology 3 sources ↗

Official role evidence, timestamped platform data and clearly labeled preparation advice.