ALIQAN Services · Software Engineer
Updated · 2026-10-02

ALIQAN Services Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Candidates describe ALIQAN Services as a company that delivers software for its clients through project-based work. The work named in reports includes .NET enterprise applications, cloud-based integrations and GIS mapping platforms, across ecosystems such as AWS, ServiceNow and Boomi. Reports also say hiring is often aimed at narrow specialisms, for example GIS development or ServiceNow implementation. In this role you turn a client's business requirements into working, maintainable code inside whichever of those platforms the project uses, and you work with project managers and other engineers on an agile cadence.

This guide is for engineers interviewing for a Software Engineer position at ALIQAN Services, whether the role leans toward .NET back-end work, Angular or GIS front-end work, or integration work on Boomi, ServiceNow or AWS. It covers the two reported rounds, the eight reported questions (stack knowledge, troubleshooting, design and delivery trade-offs), worked structures for the two experience stories, and a seven-day plan.

Candidates report two rounds over roughly 2-4 weeks: a Technical Screening, then Specialized Discussions about past work and what you could contribute to projects.

Boomi Integration.NETServiceNow HRSD

33 min read

Browse Software Engineer questions

See the practice prompts

15Practice promptsAcross five skill areas

Reports describe the Software Engineer role as the full development lifecycle: turning client requirements into code, working in an agile team with project managers and other engineers, and shipping something that can grow as the client's needs change. The stack varies by project. Candidates mention .NET for back-end work, Angular for front-end work, GIS mapping and dashboards, and integration layers on Boomi, ServiceNow or AWS. The requirements candidates describe list a strong grasp of relational databases and Git as must-haves, with cloud certifications (AWS or Azure), CI/CD experience and familiarity with ServiceNow or Boomi as extras.

The reported questions are mostly of the form 'tell me how you did X' or 'how would you approach Y': a walk-through of scalable .NET work, Boomi data mapping and error handling, Angular components versus services, AWS for performance or reliability, a hard integration bug, a maintainable new module, a system bottleneck, and speed versus clean code. Candidates also report an emphasis on hands-on experience over theoretical trivia. That means your preparation is evidence gathering: for every technology on your resume, have one decision you made, one thing that went wrong, and one result you can state with a number or a concrete before-and-after.

Topics candidates list for the technical side are dependency injection and inversion of control, asynchronous programming in .NET, and security for web APIs and cloud-hosted services; on the front end, Angular lifecycle hooks, performance, mapping or data-visualisation libraries, and responsive design and cross-browser behaviour. Because the work is niche-specific, read the job description first and decide which of these apply to your role. Where you have not used a platform, say so plainly and describe the closest thing you have built, naming the concepts that carry over (for example, mapping, retries and dead-letter handling apply to any integration tool).

01

Technical Screening

reported

The first stage is called Technical Screening, and candidates describe it as an initial check of your technical ability for the role. Because the role is tailored to a specialism, expect it to touch the technology named in the job description, whether that is .NET, Angular, Boomi, ServiceNow, AWS or GIS. Approach it by giving each answer a clear shape: what the technology does, why you chose it, how you used it, and the trade-off you accepted. Short, specific answers drawn from real projects serve better than a survey of features.

What to demonstrate

  • Working knowledge of the technology your role is built around
  • Ability to explain the reasoning behind a technical choice, not only the syntax
  • Fit between your hands-on background and the requirements for the role

How to prepare

  • Write a short spoken summary for each stack item on your resume (.NET, Angular, AWS, Boomi, ServiceNow or GIS) and attach one decision you personally made to it.
  • Practise the reported stack questions aloud: Boomi data mapping and error handling, Angular components versus services, and AWS for performance or reliability.
  • Refresh the .NET topics candidates list: dependency injection and inversion of control, asynchronous programming, and web API security.
  • Revise relational database fundamentals (joins, indexes, transactions) and your Git branching and merge workflow, which the reported requirements name as must-haves.
ALIQAN Services Software Engineer candidate reports ↗
02

Specialized Discussions

reported

The second stage is called Specialized Discussions. Candidates describe in-depth conversations about your past work and how you could contribute to current projects. This is where your resume gets opened up, so any project you list can be explored in depth. Approach it by preparing two or three projects to architecture level: the problem, the design, your own contribution as opposed to the team's, the hardest issue and how it ended. Have a view ready on the reported design questions too: a maintainable new module, finding and fixing a bottleneck, and balancing delivery speed against clean code.

What to demonstrate

  • Depth of your account of projects you have delivered
  • Clarity about your own contribution within a team
  • How you would apply your experience to a client project

How to prepare

  • Pick two resume projects and write for each: architecture, your contribution, the hardest problem, the result.
  • Rehearse the two experience prompts with a clear structure: the walk-through of scalable .NET work and the troubleshooting of a complex integration issue between two systems.
  • Prepare a position on the design questions: how you structure a new module, your step-by-step bottleneck process, and how you trade speed for cleanliness.
  • Write down two questions about the team's current technical challenges to ask at the end.
ALIQAN Services Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Touring the .NET stack instead of answering the scalable-applications walk-through with decisions

Pick one system and give a decision, a trade-off and a measured result. Prepare the dependency injection, async and API security points so you can explain why you used them, not only that you did.

02

Describing Boomi data mapping while saying nothing about what happens when a document fails

Cover both halves: field mapping and type conversion, and the failure path (error routing, retries, alerting, a way to replay failed records). If you have not used Boomi, describe the same two halves for the integration tool you have used.

03

Defining Angular components and services as terms and stopping there

Say what each is for: a component owns a template and its view logic and has a lifecycle; a service holds shared logic or state and is injected, so several components can use one instance. Give a case where you moved logic out of a component into a service.

04

Claiming a performance or reliability improvement on AWS or a system bottleneck with no way of showing it

Walk through measure, locate, change, re-measure. Name the signal you used (metrics, logs, query plans), the one change you made, and the number that moved.

05

Saying 'we' throughout a project discussion so your own contribution is unclear

For each resume project, write the part you owned, the decision you made alone and the one you argued for. Be ready to explain the architecture and the hardest challenge in detail.

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

12 technical prompts0 include a worked solution

Archive a resource graph without breaking live references or recursing

medium
graph traversaltopological ordertenant isolation

Resources reference other resources within a tenant; for the largest tenant the reference table holds up to 2,000,000 nodes and 8,000,000 edges. Archiving a resource must archive everything reachable from it that nothing outside the set still references, refuse when a live external referrer exists, and terminate when references form cycles, which they legitimately do. Produce the archive order and the refusal list, targeting O(V+E). Say what stops the traversal crossing a tenant boundary, and why recursion is the wrong control structure at this size.

Approach
  1. Load the subgraph with the tenant predicate on both endpoints of the edge, not only on the side you started from. Scoping the left table alone is the classic cross-tenant leak: one mis-entered edge then pulls another tenant's resources into the traversal and, worse, into the archive.
  2. Traverse iteratively with an explicit stack. A 2,000,000-node graph can hold a chain deep enough to exhaust a native stack in the low tens of thousands of frames, and that failure is a process crash rather than an error you can return.
  3. Treat cycles as data rather than corruption: compute strongly connected components with Tarjan in O(V+E) using its own explicit stack, then condense. The condensation is a DAG, so a topological order over it gives the archive order, and every member of a component archives in one transaction because no order within a cycle is valid.
  4. Decide refusals with reverse edges. A candidate is archivable only if every in-edge originates inside the candidate set, so build the transpose or count in-degrees restricted to the visited set, and emit each blocked resource with the id of the external referrer, which is the only part of the answer an operator can act on.
Follow-up
  • The graph is read in one query and the archive writes a minute later. What can change in between, and how do you make the write safe?
  • The candidate set is 400,000 resources. Is that one transaction, and if not, what does a half-finished archive look like to a reader?

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?

Identify the heaviest tenants in a five-minute window under memory pressure

medium
top-kheavy hittersstreaming

The edge service handles about 3,000 requests per second across roughly 50,000 tenants, peaking near 9,000. Expose the 50 heaviest tenants by request count over the trailing five minutes so limits can be tightened before one tenant's backfill starves the fleet. You may not retain five minutes of raw records. Give the exact solution and its memory, then the bounded-memory approximation with its error stated as a formula, and say which you would ship and at what tenant cardinality that choice changes.

Approach
  1. Do the exact version first, because it is affordable at this cardinality: a ring of 300 one-second counters per tenant, advanced lazily, is 1,200 bytes of counters per tenant and roughly 60 to 90 MB for 50,000 tenants with overhead. Carry a running total and subtract the bucket you overwrite so a window read is O(1) rather than 300 adds.
  2. Extract the top 50 with a size-k min-heap over the tenant sums: O(d log k) for d tenants, against O(d log d) to sort them all. Maintaining the heap continuously instead of on query requires a tenant-to-heap-index map, because incrementing a count already inside the heap means sifting from a known position, and without that map you rebuild the heap on every request.
  3. State the approximation precisely rather than gesturing at sketches. Misra-Gries with m counters retains every item whose true count exceeds N/(m+1), and each retained count underestimates the truth by at most N/(m+1). With m = 1,000 and N = 900,000 requests in the window the error is roughly 900 requests, which is fine for spotting a tenant sending 50,000 and useless for ranking two tenants 200 apart.
  4. Say what breaks when the window slides: Misra-Gries and Space-Saving are insert-only and cannot be decremented as records age out. The workable construction is one summary per sub-window, say ten seconds, with 30 summaries merged at query time, and the merged error is the sum of the per-summary errors, so the bound degrades linearly in the number of sub-windows.
Follow-up
  • The heaviest tenant is heavy because of one export job rather than user traffic. Should the limiter treat those as the same tenant?
  • Two tenants sit tied at the boundary of the top 50. Does your answer flap, and does the flapping matter?

Seven days built around the two reported rounds, the stack candidates list (.NET, Angular, AWS, Boomi, ServiceNow, GIS) and the eight reported questions, with PracHub practice questions attached where they strengthen a skill the loop touches.

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
01Inventory your stack and map the loop
  • List every technology from the role's job description and mark which you have used in delivered work: .NET, Angular, AWS, Boomi, ServiceNow, GIS.
  • Pick the two projects you will anchor discussions on and write architecture, your contribution, hardest problem and result for each.
  • Write which of the two rounds (Technical Screening, Specialized Discussions) your weakest area is most likely to come up in.

Deliverable: A stack inventory with used and unused marked, and a one-page summary of each of your two anchor projects.

02Deepen .NET and tell the scalability story
  • Explain dependency injection and inversion of control from memory, including service lifetimes and the bug a wrong lifetime causes.
  • Explain async/await on an I/O path and the thread-pool problem of blocking on async code.
  • List the security basics for a web API you can speak to (authentication, authorisation, input validation, secrets handling), then write and rehearse the walk-through of scalable .NET work.

Deliverable: A written outline of the .NET walk-through story and a half-page of spoken-answer notes on dependency injection, async and API security.

Practice prompt ↗
03Integration: mapping, errors and the troubleshooting story
  • Outline a Boomi-style integration process end to end: source, field mapping and type conversion, a failure branch, retries, alerting and replay of failed records.
  • Write the story of the hardest integration bug you have fixed using the sequence reproduce, trace, localise, fix, prevent.
  • Work through the practice question on turning a request body into a stable idempotency fingerprint, since retries in integrations cause duplicates.

Deliverable: A one-page integration outline with the failure path drawn, a written troubleshooting story and a solved idempotency exercise.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Angular components, services and GIS front ends
  • Write a comparison of components and services with a real example of logic you moved from one to the other.
  • List the lifecycle hooks you can explain and what you do in each, plus three performance techniques you have used (change detection strategy, trackBy, lazy loading, avoiding heavy work in templates).
  • If your role involves GIS, write how you would handle a map library with many features on screen and how you would keep it responsive.

Deliverable: A written components-versus-services answer with an example, and a list of lifecycle hooks and performance techniques with one use case each.

Practice prompt ↗
05AWS and the bottleneck method
  • Write an account of one AWS change that improved performance or reliability, naming the problem, the service you used, the trade-off and the measured result.
  • Write your step-by-step bottleneck process: reproduce, measure, locate, change one thing, re-measure.
  • Work through the practice debugging question on listing latency that scales with page size, and note which of your process steps it exercised.

Deliverable: A written AWS story with a measured result, a bottleneck checklist and a solved debugging exercise.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Design for maintainability and delivery pressure
  • Outline how you would design a new module: boundaries, interfaces, dependency direction, tests, configuration and logging, with one example from your own work.
  • Write your answer to balancing rapid feature delivery with clean, scalable code: what you ship fast, what you refuse to skip, and how you record technical debt.
  • Complete the practice behavioral exercise on arguing against a design, losing and committing anyway.

Deliverable: A one-page module design checklist, a written delivery-versus-quality answer with an example, and a finished behavioral practice answer.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full dry run for both rounds
  • Run a full spoken mock of the screening topics (your stack questions) followed by a project deep dive on your two anchor projects.
  • Answer the .NET walk-through and the integration troubleshooting prompts aloud, then listen back and cut any sentence that names a technology without a decision.
  • Write the two questions you will ask the team about their current technical challenges.

Deliverable: A completed mock with a list of the three weakest answers to fix, and two questions to ask the team.

Practice prompt ↗Practice prompt ↗

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

Candidates describe the second round as conversations about past work and your potential contribution to projects, and two of the reported questions are experience prompts. For this role the stories must show hands-on decisions on real systems: building something that held up under load, and diagnosing a failure that crossed a system boundary. Use situation, task, action and result, but spend most of the time on the action and the evidence.

Can you walk me through your experience building scalable applications using the.NET framework?

medium
Technical & Domain Proficiency

Can you walk me through your experience building scalable applications using the.NET framework?

Approach
  1. Choose one or two real .NET systems and open with context only: what the application did, the data or traffic it handled, and your role, in two or three sentences. Spend the rest of the answer on decisions you made, not a tour of frameworks.
  2. Define 'scalable' with something you lived with: requests per second, table size, tenants, concurrent users or batch volume. If you have no hard figures, name the constraint you designed against rather than inventing a number.
  3. Name concrete .NET mechanisms and why: async/await on I/O paths to avoid thread starvation, dependency injection with correct lifetimes (scoped database context, shared HTTP clients through a factory), EF Core or SQL tuning (projection, no-tracking reads, avoiding N+1 queries, indexes, pagination), and caching with an invalidation rule.
  4. Include one thing that did not scale and how you found it (profiler, query plan, logs, load test), the change you made and the measured before and after. That evidence is what turns 'I built scalable apps' into a credible answer.
  5. Close with what you would change now. The mistakes that sink this answer are listing technologies without a decision, claiming the team's work as yours, and using 'scalable' with no measurement behind it.
Follow-up
  • What happens if a request handler blocks on an async call with .Result or .Wait(), and how did you avoid it?
  • How did you choose the lifetime of that service in dependency injection, and what bug does a wrong lifetime cause?
  • What would break first if the load grew tenfold, and how would you find out before it did?

Describe a time you had to troubleshoot a complex integration issue between two disparate systems.

medium
Technical & Domain Proficiency

Describe a time you had to troubleshoot a complex integration issue between two disparate systems.

Approach
  1. Set the scene briefly: the two systems, how they communicated (REST, SOAP, files, a queue, an integration platform), the symptom (missing or duplicated records, wrong values, intermittent timeouts) and who was affected.
  2. Narrate the debugging sequence: reproduce with one failing record, then follow it hop by hop using correlation ids, logs and captured payloads. Compare what system A sent with what system B received to localise the fault to the producer, the transformation, the transport or the consumer.
  3. Name the usual suspects you checked and ruled in or out: data types and date or time zone formats, null or empty handling, character encoding, expired credentials, rate limits and timeouts, retries that created duplicates, and ordering assumptions.
  4. Separate the fix from the prevention: the root-cause change, then what you added so it cannot recur silently (validation at the boundary, idempotent processing, alerting, a replay path for records that already failed, a contract test).
  5. State the result and your part in it, including how you worked with the owners of the other system. The story fails when it is 'I restarted it' or 'the other team's system was broken' with no evidence.
Follow-up
  • How did you prove the fault was in the data mapping rather than in the transport?
  • What did you do about the records that had already failed before the fix?
  • How did you make sure the same class of failure would be caught earlier next time?

Argue against a design, lose, and commit anyway

medium
disagreementservice boundariesdecision records

Describe a design you argued against and lost. State the failure you predicted as a named mechanism, not a feeling about complexity: two services that would need one transaction, a projection with no rebuild path, a write path with no idempotency key. Say what evidence you brought, what the decision maker weighed instead, and what you did after the decision was made: what you instrumented, what you wrote down, and whether the prediction came true. Five minutes.

Approach
  1. State the prediction in falsifiable form up front: the mechanism, the condition that triggers it, and the observable outcome. A prediction that cannot be checked also cannot be credited to you later.
  2. Show the evidence you had at the time and label each piece honestly as measured, analogous, or intuition. Keeping the intuition is fine; disguising it as data is the thing that erodes your standing in the next argument.
  3. Represent the opposing case at full strength, including the constraint you did not control: a fixed date, a team boundary, or the fact that the decision was cheap to reverse and yours was not.
  4. Make disagree-and-commit concrete. Name the artefact you left behind so the prediction could be settled without you: the alert and its threshold, the counter on the dashboard, the decision note that recorded the trade-off and the condition that would revisit it.
Follow-up
  • What threshold on that alert would have proved you right, and did anyone ever look at it?
  • If the same proposal arrived tomorrow with the same deadline, would you argue it the same way?
  • 01

    Can you walk me through your experience building scalable applications using the .NET framework?

  • 02

    Describe a time you had to troubleshoot a complex integration issue between two disparate systems.

  • 03

    How do you balance the need for rapid feature delivery with the necessity of writing clean, scalable code?

  • 04

    Tell me about a project on your resume where you owned a specific part end to end: the architecture, the hardest challenge and your own contribution.

  • 05

    Describe a time you explained a technical trade-off to a non-technical colleague or a project manager and what they decided.

PracHub preparation framework ↗
How many rounds does the ALIQAN Services Software Engineer loop have?

Candidates report two rounds over roughly 2-4 weeks: Technical Screening, then Specialized Discussions about past work and contributions to projects. Reports do not publish the order of questions within each round, so prepare the full set rather than guessing.

PracHub Software Engineer practice ↗
Which technologies should I prepare?

Reports name .NET, Angular, AWS, Boomi, ServiceNow and GIS development, and say the process is tailored to the specialism of the team hiring. Start from the job description and prepare the platforms it names. Candidates also list dependency injection, asynchronous programming, web API security, Angular lifecycle hooks and performance, and relational databases as topics.

PracHub Software Engineer practice ↗
Is there live coding or a take-home?

No coding exercise or take-home is reported. Candidates describe an emphasis on hands-on experience over theoretical trivia, and the reported questions are about your experience and design approach. Ask the recruiter about the format for your specific role, and keep one concrete example of tuning code you wrote ready in case performance comes up.

PracHub Software Engineer practice ↗
What if I have not used Boomi, ServiceNow or GIS tools?

Say so plainly, then describe the closest work you have done and the concepts that carry over. For Boomi that means field mapping, type conversion, error routing, retries and replay; for any integration you can discuss contract changes and failure handling. The requirements candidates describe list ServiceNow or Boomi familiarity as a bonus rather than a must-have.

PracHub Software Engineer practice ↗
How deep will they go on my resume?

Candidates describe the second round as in-depth conversations about past work, so be ready to explain the architecture, the challenges and your own contribution for any project you list. Remove anything you cannot discuss in detail.

PracHub Software Engineer practice ↗
How should I use the weeks between rounds?

The reported timeline is about 2-4 weeks. Work through the seven-day plan once, then repeat the days for your weakest area, and spend the last sessions on spoken mocks so your stories are concise.

PracHub Software Engineer practice ↗
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.