Active Network S.p.A. · Software Engineer
Updated · 2026-10-02

Active Network S.p.A. Software Engineer
Interview Guide

THE 60-SECOND BRIEF

Active Network S.p.A. is a telecommunications company that sells connectivity services to microbusinesses, Soho customers and small and medium enterprises, and candidates report it has operated since 1999. The Software Engineer role is about the software behind those services: back-end web applications, databases and APIs. Candidates describe work that includes re-architecting older systems, building new modules, reviewing code and debugging production issues, alongside product managers and other developers.

This guide is for candidates interviewing for a Software Engineer position at Active Network S.p.A. It covers the reported online assessment, the screenings and interviews that follow, the technical topics candidates list (MVC, the ASP.NET lifecycle, SQL and CTEs, OOP, production debugging, schema and API design, concurrency) and the behavioral questions about projects, requirements, code quality and stakeholders.

Candidates report two stages over roughly 2-4 weeks: an online assessment that can mix cognitive and personality items, followed by interviews with technical managers and senior leaders.

Online assessments (cognitive/aptitude testing)ASP.NET request/HTTP lifecycle understandingASP.NET MVC pattern

30 min read

Browse Software Engineer questions

See the practice prompts

14Practice promptsAcross five skill areas

The requirements candidates describe for this role centre on back-end web development, a firm grasp of object-oriented programming, and database work in SQL. The reported technical questions match that: how MVC works in an application, the lifecycle functions in ASP.NET, what a Common Table Expression is for, your experience with OOP, and how you debug a complex application in production. The ASP.NET questions point to a C# and .NET back end, so confirm the stack with your recruiter and be ready to answer in the framework you know best.

Beyond those questions, candidates list a few scenario areas: designing a database schema for a service-based scenario, handling concurrency in a high-traffic environment, structuring a command system for a distributed computing task, and working through an open-ended estimation problem. None of these has one memorised answer. Practise stating assumptions first, then walking from requirements to a design, and name the trade-off you accepted.

The day-to-day work reported for the role includes re-architecting older systems and building new modules, so expect to be asked about decisions: why one technology over another, how you keep code maintainable while shipping quickly, and how you work with product managers and non-technical colleagues. Half of the reported questions are behavioral, so prepare real stories with your own decisions in them, not team summaries.

Candidates also mention nice-to-have experience with cloud infrastructure, CI/CD pipelines and agile practice. You do not need to prepare these as separate topics, but your code-quality and project stories are the natural place to mention automated builds, tests and review habits you have actually used.

01

Online Assessment

reported

Candidates report an online assessment that can include cognitive and personality components, and the reported evaluation areas include logical reasoning tests. Candidates say to put accuracy first and keep an eye on the clock. Treat it as a skill you can train: practise timed reasoning sets, keep a steady pace instead of stalling on one item, and read each instruction fully before you start.

What to demonstrate

  • Logical and analytical reasoning in an online, timed format
  • Accuracy and pacing across a set of items
  • Cognitive and personality components, as candidates describe the assessment

How to prepare

  • Do several timed sets of logical reasoning items and log which item types cost you the most time
  • Practise open-ended estimation: write your assumptions, a rough calculation, and a sanity check on the result
  • Settle on a rule for skipping an item you are stuck on so one question never eats the whole set
  • Answer any personality-style items consistently and honestly rather than guessing at a target profile
Active Network S.p.A. Software Engineer candidate reports ↗
02

Screenings and Interviews

reported

After the assessment, candidates describe several screening calls and interviews, held with technical managers and with leadership. Candidates do not say which topics come up in which conversation, so treat the reported technical and behavioral questions as one preparation list for this whole stage. State your assumptions at the start of an answer and explain why you made each choice.

What to demonstrate

  • Candidates report several screenings and interviews rather than a single conversation
  • Candidates report meeting technical managers as well as leadership
  • Candidates do not report which topics belong to which conversation, so the full reported topic list applies to this stage

How to prepare

  • Preparation for the reported topics, which candidates do not tie to a specific conversation: rehearse short spoken answers on MVC, the ASP.NET lifecycle, CTEs, OOP and production debugging
  • For the reported concurrency scenario: optimistic concurrency with a SQL Server rowversion column and EF Core's DbUpdateConcurrencyException, unique constraints plus idempotency keys for duplicate submits, READ COMMITTED SNAPSHOT versus SERIALIZABLE, and async I/O to avoid thread-pool starvation
  • Write four project stories (a significant project, changing requirements, code quality, a non-technical stakeholder) with your own decisions in each
  • Prepare a technical and a business-level version of your main project, since the people you meet range from technical managers to leadership
Active Network S.p.A. Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Reciting MVC or the ASP.NET lifecycle as a memorised list of names

Trace one request from routing to controller action, model and view, and say what each lifecycle stage is used for. Be clear on which pipeline your framework version uses before you start naming events.

02

Describing a CTE as 'a temporary table' and stopping there

Say that it is a named result set scoped to a single statement, show where it makes a query readable, show a recursive example such as a reporting hierarchy, and note that you would check the plan if it is reused or filtered.

03

Telling project and quality stories entirely in 'we'

State your own decisions and the alternatives you weighed. The reported questions ask about your experience and your contribution to team goals, so make your part visible and back results with something you measured.

04

Answering the production-debugging question with 'check the logs' and nothing more

Give a sequence: what changed and when, reproduce or narrow by bisection, check monitoring and instrumentation, form a hypothesis, make the smallest safe fix, then add a test or alert so it does not recur.

05

Rushing the online assessment or stalling on one item

Practise timed sets beforehand, put accuracy first, and decide in advance when you move on from a hard item. Read each instruction fully, since the format may include cognitive and personality parts.

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

9 technical prompts0 include a worked solution

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?

Merge partitioned event streams into one ordered feed with bounded lateness

hard
k-way mergewatermarksout-of-order streams

The read-model service consumes 64 log partitions carrying about 4,000 events per second in total. Each partition is ordered within itself, but partitions drift by up to 30 seconds, and the activity feed must present a tenant's events in occurred_at order. Produce the merge. State its complexity, the buffer it requires in events and in bytes, what happens when one partition is idle, and what you do with an event that arrives after you have already emitted its position. Payloads average 1 KB.

Approach
  1. Merge with a min-heap over the 64 partition heads keyed on (occurred_at, event_id): O(log P) per event and O(n log P) overall. The tie-break on event_id is what makes the output deterministic when two partitions carry the same millisecond, which matters because the feed is paginated and a non-deterministic order reorders pages under the reader.
  2. Emitting the heap head is only correct once every partition has produced everything up to that timestamp, so the emit condition is a watermark: the minimum across partitions of the highest occurred_at seen, less the allowed lateness. Events are held until the watermark passes them, which is what turns individually ordered streams into a jointly ordered one.
  3. Size the buffer from the lateness rather than guessing: 4,000 events per second times 30 seconds is 120,000 buffered events, and at 1 KB each about 120 MB of heap. That number is the real price of the ordering guarantee and belongs in front of whoever asked for it.
  4. Handle the idle partition explicitly, because it fails the feed rather than corrupting it: a partition with no traffic never advances its own maximum, so the watermark freezes and output stops entirely. Either every partition emits a periodic idle marker carrying the broker's current time, or the watermark falls back to wall clock for a partition silent beyond a threshold.
Follow-up
  • The lateness budget is raised to five minutes. What is the new buffer, and what besides memory changes?
  • The consumer restarts. Where does it resume from, and what does the feed look like for the first 30 seconds?

Track a rolling failure rate per destination for circuit decisions

easy
sliding windowring buffercircuit breaker

The egress service delivers about 1,500 webhooks per second across roughly 40,000 destinations, each call bounded by a 10 second timeout. Maintain, per destination, the failure rate over the trailing 60 seconds so a caller can ask before dispatch whether the circuit should open. Attempts arrive as (destination_id, finished_at_ms, outcome). Requirement: amortised O(1) per attempt, with total memory bounded by the destination count rather than by traffic. Give the structure, its exact memory, and the rule that stops a destination with three attempts from opening a circuit.

Approach
  1. Name the exact-deque version and then reject it as the default. Holding timestamps and advancing a tail pointer past anything older than now minus 60 seconds is a correct two-pointer window at amortised O(1) per attempt, but its memory tracks in-window traffic, so one destination in a retry storm holds hundreds of thousands of entries while thousands of quiet destinations hold none.
  2. Use a ring of 60 one-second buckets per destination, each bucket a pair of counters for attempts and failures. On an attempt, advance the ring by the elapsed whole seconds, zeroing at most min(elapsed, 60) buckets, then increment the head. That is amortised O(1) with a fixed footprint per destination.
  3. State the footprint: 60 buckets times two 4-byte counters is 480 bytes of payload per destination, so 40,000 destinations is roughly 20 to 25 MB with per-entry overhead, bounded by the catalogue rather than by the rate. The cost is granularity, since the oldest bucket ages out in whole seconds, which is far tighter than the decision needs.
  4. Require a minimum sample before the circuit may open. A destination with three attempts and three failures reads as 100 percent and is not evidence; a floor of roughly 20 attempts in the window makes the ratio meaningful, and below that floor use a run of consecutive failures as the trigger instead.
Follow-up
  • The fleet is 30 instances and each sees roughly a thirtieth of a destination's traffic. Where does the rate actually live, and what does a per-instance answer get wrong?
  • A destination answers in 9.5 seconds and succeeds. It is not failing but it is consuming your per-destination concurrency. What signal should open the circuit here?

The plan follows the two reported stages: the first two days train for the online assessment and map your gaps, the middle days cover the reported technical topics, and the last days build behavioral stories and run a full mock.

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 rate yourself on the reported topics
  • Write out the two reported stages, the online assessment and the screenings and interviews, and what candidates say each involves.
  • List the reported topics (MVC, ASP.NET lifecycle, CTEs, OOP, production debugging, schema design, concurrency, API design, estimation) and rate your confidence in each from 1 to 5.
  • Pick your three weakest topics and decide which later day each will be fixed on.

Deliverable: A one-page loop map and a rated topic grid with the three weakest topics marked.

02Train for the online assessment
  • Complete a timed set of logical reasoning items and record each wrong answer with the reason (misread, rushed, did not know).
  • Write three open-ended estimates (for example, how many support calls a connectivity provider with an imagined 50,000 small-business customers receives per day), each with assumptions, a calculation and a sanity check.
  • Write down your pacing rule for skipping a stuck item.

Deliverable: A timed set with an error log, three written estimates with assumptions, and a one-line pacing rule.

03MVC and the ASP.NET lifecycle
  • Draw a request through an MVC application: routing, controller, action, model, view, and where validation and filters sit.
  • List the ASP.NET lifecycle stages for the framework version you know, and write one sentence on what you would do in each, including where dynamic controls are re-created on postback.
  • Say both answers aloud without notes and fix the gaps.

Deliverable: A request-flow diagram, a lifecycle stage list with one use per stage, and two spoken answers.

Practice prompt ↗Practice prompt ↗
04SQL, CTEs and schema design
  • Rewrite a nested-subquery report as a CTE, then write a recursive CTE over a parent-child hierarchy such as employees and managers.
  • Design a schema for a service-based scenario (customers, subscriptions, support tickets): tables, keys, constraints and the indexes your main queries need.
  • Run EXPLAIN on one slow query, find the missing index and measure the change.

Deliverable: Two CTE queries, a schema with its indexes, and one before and after query plan.

Practice prompt ↗
05OOP, debugging, scalability and concurrency
  • Prepare a short OOP walkthrough using code you wrote: encapsulation, polymorphism, and one composition-over-inheritance decision.
  • Write a production-debugging runbook as an ordered list, from 'what changed' to 'regression test added', and apply it to a past incident.
  • Write up one code optimisation you made for scalability, with the measurement before and after.
  • Prepare the reported high-traffic concurrency scenario: rowversion with EF Core's DbUpdateConcurrencyException, unique constraints and idempotency keys for duplicate submits, READ COMMITTED SNAPSHOT versus SERIALIZABLE, and async I/O against thread-pool starvation. Then work the PracHub practice problem on concurrent creates under a per-tenant cap.

Deliverable: An OOP walkthrough, a debugging runbook, a scalability write-up with measurements, a one-page concurrency answer covering the four techniques, and a solved practice problem.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Build the behavioral story bank
  • Write four stories in the shape context, options, your decision, result: a significant project, a changing-requirements case, a code-quality improvement and a collaboration with a non-technical colleague.
  • Cut each story to a short spoken version, then record yourself and check that 'I' decisions are clear.
  • Prepare a plain-language version of your main project for a leadership audience.

Deliverable: Four written stories, recorded spoken versions, and one plain-language project summary.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full mock and design a command system
  • Run a mock: a short timed reasoning set, then spoken answers on MVC, the ASP.NET lifecycle, CTEs and production debugging.
  • Sketch how you would structure a command system for a distributed computing task: command format, queue, workers, retries, idempotency and failure handling.
  • Write the questions you want to ask the recruiter, including the hybrid arrangement and next steps.

Deliverable: A mock scored by you with fixes listed, a one-page command-system sketch, and a list of questions to ask.

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 questions about work style, how you handled technical hurdles, and collaboration across a hybrid, multidisciplinary team. For this role, the stories that matter are technical decisions you made, how you handled requirements that were unclear or moved, how you kept code quality up, and how you worked with non-technical colleagues.

Discuss your experience with Object-Oriented Programming (OOP) principles.

medium
Technical and Domain Knowledge

Discuss your experience with Object-Oriented Programming (OOP) principles.

Approach
  1. Anchor the answer in a codebase you worked on, not definitions. Name two or three real classes and show encapsulation (what state you hid and why), abstraction (the interface callers depend on) and polymorphism (several implementations behind one contract).
  2. Cover inheritance versus composition with a decision you made: inheritance for a genuine is-a relationship with shared invariants, composition or dependency injection when behaviour varies independently. Mention the fragile base class problem as the cost of deep hierarchies.
  3. Show one place where an OOP principle paid off, for example replacing a long type-switch with polymorphic implementations, or injecting an interface so a service could be unit tested with a fake.
  4. Include one place where you over-abstracted or would now do it differently. An honest trade-off is stronger than a list of SOLID letters recited from memory.
  5. Link it to the stack if it fits: in a C# and ASP.NET codebase, controllers, services and repositories behind interfaces are a natural example.
Follow-up
  • When do you choose an interface over an abstract base class?
  • What does a Liskov substitution violation look like, and how would you spot one in code review?
  • How would you refactor a method with a growing if/else on object type?

Describe a significant technical project you have led or contributed to.

medium
Behavioral and Experience

Describe a significant technical project you have led or contributed to.

Approach
  1. Pick a project where your own part is clear. Open with one sentence on the goal and your role, then spend most of the answer on decisions rather than a tour of features.
  2. Use a simple spine: context, constraint, options you considered, the choice and why, the outcome, what you would change. Explain why you chose a technology over its alternative, since that is the part candidates are told to be ready for.
  3. Cover the back-end substance: data model, API shape, how it was deployed and what you did when it failed in production. A project with a debugging or scalability moment gives you evidence of depth.
  4. Say 'I' for what you did and 'the team' for what others did. Quote only results you can back, such as a measured latency change or a fewer-incidents trend, and say how you measured it.
  5. Prepare a technical version and a plain-language version of the same project, because the interviews reportedly include both technical managers and leadership.
Follow-up
  • Which alternative did you reject, and what would have made you choose it?
  • What part of the design would you not build the same way today?
  • How did you know the project had succeeded?

How do you handle situations where requirements are ambiguous or changing?

medium
Behavioral and Experience

How do you handle situations where requirements are ambiguous or changing?

Approach
  1. Distinguish the two cases. For ambiguous requirements, ask the smallest question that unblocks you and write your assumptions down so they can be corrected. For changing requirements, isolate the change behind seams (interfaces, configuration, migrations) so it does not ripple through the system.
  2. Tell one story with a concrete requirement that moved mid-build: what was unclear, who you asked, what you built first (a thin slice or prototype to confirm understanding), and how you recorded the decision in a ticket or short document.
  3. Show how you handled the cost. Name the scope or schedule trade-off you put to the product manager instead of silently absorbing the rework.
  4. Include what you do when nobody can answer: pick the most reversible option, state it as an assumption, and set a point at which you will revisit it.
  5. Avoid the answer that is only 'I ask a lot of questions'. Show a decision made under uncertainty and how you limited the blast radius if you guessed wrong.
Follow-up
  • How do you decide when to stop clarifying and start building?
  • What do you do when stakeholders give you conflicting requirements?
  • How did you communicate the cost of the change to the people asking for it?

How do you ensure high-quality code standards when working in a team?

medium
Behavioral and Experience

How do you ensure high-quality code standards when working in a team?

Approach
  1. Name concrete mechanisms, not values: small focused pull requests, a review checklist, an agreed formatter and linter, unit and integration tests that gate merges in CI, and a shared definition of done.
  2. Give one story of a recurring quality problem, such as a class of regressions or inconsistent error handling, and the mechanism you introduced. Say how you checked it worked, for example fewer reverted releases or shorter review cycles.
  3. Describe how you handle disagreement about standards: write the rule down, automate whatever a tool can enforce so reviews stay on design and correctness, and settle the rest by discussion with evidence.
  4. Show you apply the standard to yourself. Talk about reviewing code for correctness, readability and testability, and receiving review gracefully.
  5. The mistake to avoid is listing tools or presenting yourself as the gatekeeper. Frame quality as a team habit that you made cheaper to follow.
Follow-up
  • How do you review a pull request from a senior colleague when you disagree with the approach?
  • What do you do when a deadline pushes the team to skip tests?
  • How would you introduce a standard to a team that has none?

Provide an example of how you have collaborated with a non-technical stakeholder to solve a business problem.

medium
Behavioral and Experience

Provide an example of how you have collaborated with a non-technical stakeholder to solve a business problem.

Approach
  1. Choose a problem that began as a business pain, not a technical task. For a connectivity provider serving small firms, good examples are slow line activation for small-business customers, a bill customers found confusing, or churn among SME accounts. Say who the stakeholder was and what they needed in their own terms.
  2. Show the translation step: you asked about the outcome they wanted rather than the solution they had in mind, restated it as requirements, and agreed on how success would be recognised, such as activation time or the number of billing complaints.
  3. Explain how you described options without jargon, in terms of effort, risk and what they would see, and how you used demos or checkpoints to keep them involved.
  4. Give the result and what changed in the way you worked together afterwards. If they disagreed with a trade-off, say how you handled it.
  5. The mistake that sinks this story is casting the stakeholder as the obstacle, or spending the time explaining the technology instead of the business effect.
Follow-up
  • How did you explain a trade-off the stakeholder did not want to accept?
  • What did you do when their priority conflicted with fixing technical debt?
  • How would you tell them a delivery date was going to slip?
  • 01

    Discuss your experience with Object-Oriented Programming (OOP) principles.

  • 02

    Describe a significant technical project you have led or contributed to.

  • 03

    How do you handle situations where requirements are ambiguous or changing?

  • 04

    How do you ensure high-quality code standards when working in a team?

  • 05

    Provide an example of how you have collaborated with a non-technical stakeholder to solve a business problem.

  • 06

    Describe a time you optimized a piece of code for better scalability.

PracHub preparation framework ↗
How difficult is the interview process?

Candidates describe two stages that combine aptitude testing with technical and behavioral conversation, so preparation has to cover both. The technical side is back-end and database fundamentals (MVC, ASP.NET lifecycle, CTEs, OOP, debugging), which you can prepare directly. Use the seven-day plan to find your weakest area first.

Active Network S.p.A. Software Engineer candidate reports ↗
What is the best way to stand out?

State your assumptions at the start of each technical answer, then walk through your reasoning and the trade-off you accepted. For project questions, explain why you chose one technology over another and what you would change. Candidates are also advised to explain how they would find the answer when they do not know it.

Active Network S.p.A. Software Engineer candidate reports ↗
Is the work environment remote or on-site?

Candidates report a hybrid arrangement for this role that mixes remote work with on-site team time. Details such as the office location and the number of on-site days are not reported, so ask your recruiter.

Active Network S.p.A. Software Engineer candidate reports ↗
What is the typical timeline for the hiring process?

Candidates report roughly 2-4 weeks across the assessment and the interview stages, with internal approvals sometimes extending it. If you have heard nothing within the timeframe you were given, follow up with your recruiter.

Active Network S.p.A. Software Engineer candidate reports ↗
What topics does Active Network S.p.A. test in interviews?

Candidates report MVC, ASP.NET lifecycle functions, Common Table Expressions in SQL, OOP, and debugging production applications. Evaluation areas also include database design and query optimization, web back-end and API design, concurrency in a high-traffic setting, a command system for a distributed task, and open-ended estimation. Behavioral questions cover projects, ambiguity, scalability, code quality and stakeholders.

Active Network S.p.A. Software Engineer candidate reports ↗
What should I do in the online assessment?

Candidates describe an online test that can mix cognitive items with personality items, and their advice is to favour correct answers while watching the clock. Practise timed logical reasoning and estimation beforehand, set a rule for skipping a stuck item, and answer personality items honestly.

Active Network S.p.A. Software Engineer candidate reports ↗
Which technologies should I be comfortable with?

The reported must-haves are back-end web development, OOP and SQL with database management. The ASP.NET questions suggest C# and .NET, so confirm the stack with your recruiter. Cloud infrastructure, CI/CD pipelines and agile practice are reported as nice-to-have, so be ready to mention any you have used.

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.