cswork / libraryOpen practice workspace

Interview guides · Artech

Artech Software Engineer Interview Guide

Artech Software Engineer interview guide: reported rounds, questions and how candidates describe the process.

The 60-second brief

As a Software Engineer at Artech, you are stepping into a dynamic, consulting-driven role where your technical expertise directly impacts Fortune 500 clients. Artech is a leading global IT staffing and workforce solutions company, meaning you will often be deployed to work on critical projects for major enterprise clients, such as IBM, Dell, and other industry leaders. This position requires a unique blend of core technical proficiency and the adaptability to seamlessly integrate into diverse corporate environments. Your work will span a variety of domains, from building scalable backend services in Java to developing responsive user interfaces with Angular. Because you represent Artech on client sites, your role is inherently strategic.

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

Focus areas

  • Java
  • SQL
  • Java Concurrency / Threads

The Artech interview process

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

Phone Screen

Rapid phone screen by an Artech recruiter to confirm qualifications, skills, and availability.

What to demonstrate

  • Rapid phone screen by an Artech recruiter to confirm qualifications, skills, and availability
  • Depth in Java

How to prepare

  • Be able to walk your CV end to end in two minutes, and say why this company specifically.
  • Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.

Online Assessment

Completion of an online assessment covering aptitude, logical reasoning, and basic programming.

What to demonstrate

  • Completion of an online assessment covering aptitude, logical reasoning, and basic programming
  • Depth in Java

How to prepare

  • Answer aloud and timed: Why are you interested in working for Artech and consulting for our clients?
  • Answer aloud and timed: How do you handle changing requirements in the middle of a development sprint?

Client Submission

Artech submits your profile to the client after clearing initial assessments.

What to demonstrate

  • Artech submits your profile to the client after clearing initial assessments
  • Depth in Java

How to prepare

  • Answer aloud and timed: Tell me about a time you had to quickly learn a new technology to complete a project.
  • Answer aloud and timed: Explain the concepts of polymorphism and inheritance with real-world examples.

Client Technical Interviews

Core technical and managerial interviews conducted directly by the client's engineering panel.

What to demonstrate

  • Core technical and managerial interviews conducted directly by the client's engineering panel
  • Depth in Java

How to prepare

  • Answer aloud and timed: What is the difference between an abstract class and an interface in Java?
  • Answer aloud and timed: Write a program to reverse a string without using built-in methods.

Documentation and Background Checks

Final stages involve rigorous documentation and background checks before the offer.

What to demonstrate

  • Final stages involve rigorous documentation and background checks before the offer
  • Depth in Java

How to prepare

  • Answer aloud and timed: How does garbage collection work in Java?
  • Answer aloud and timed: Explain the differences between HashMap and ConcurrentHashMap.

Where candidates lose points

Clarify the Client Stack Early

Since Artech hires for multiple clients, ask the recruiter early on which client you are being submitted to and what their specific tech stack is. This allows you to tailor your preparation for the client interview.

Nail the Basics

Client interviews for these roles rarely focus on obscure algorithms. Instead, they test your absolute fluency in basic OOP concepts, core language syntax, and standard SQL queries. Do not overcomplicate your preparation.

Your communication skills are just as important as your coding skills

Because you are being outsourced as a consultant, clients are evaluating whether you can clearly articulate technical concepts in a professional team setting.

Keep Your Documents Organized

Artech's onboarding and background check processes are highly rigorous. Have your academic transcripts, previous employment records, and identification documents scanned and ready to submit immediately to prevent delays in your start date.

Questions & practice

How does garbage collection work in Java?

Medium · Core Java and Object-Oriented Programmin

Approach

  1. Say what the runtime actually does before reasoning about the code.
  2. Name what is shared across threads and what owns each piece of state.
  3. Identify the window where an invariant is briefly untrue.
  4. Distinguish a value from a reference to it, and say which one you handed out.

Follow-up

  • What happens if two callers reach this at the same time?
  • Where could this allocate more than you expect?

Explain the differences between HashMap and ConcurrentHashMap.

Medium · Core Java and Object-Oriented Programmin

Approach

  1. Say what the runtime actually does before reasoning about the code.
  2. Name what is shared across threads and what owns each piece of state.
  3. Identify the window where an invariant is briefly untrue.
  4. Distinguish a value from a reference to it, and say which one you handed out.

Follow-up

  • What happens if two callers reach this at the same time?
  • Where could this allocate more than you expect?

Find overlapping job attempts and peak concurrency from lease records

Medium · sweep line · intervals · leases

A day of job_run history yields about 50,000,000 attempt records: (job_run_id, job_type, attempt, started_at, finished_at which is NULL when the worker died, lease_expires_at). Leases expire on a clock, so a job that outran its lease ran twice. Produce (a) every job_run_id whose attempts overlapped in wall-clock time and (b) the peak number of simultaneously running attempts per job_type with the minute it occurred. Target O(n log n). State how you treat a NULL finished_at and what clock skew does to your answer.

Approach

  1. Define the interval before sorting anything: an attempt occupies [started_at, COALESCE(finished_at, lease_expires_at)). finished_at is observed and lease_expires_at is only a promise, so every attempt without a finish contributes an estimate and the whole result is a lower bound on overlap rather than an exact count.
  2. For peak concurrency, sweep: emit 2n endpoints, sort by (timestamp, kind) with ends ordered before starts at equal timestamps, then walk the sequence maintaining a counter per job_type and record each type's maximum with its timestamp. O(n log n) dominated by the sort, O(n) space, or O(1) extra if the sort is external and the walk streams.
  3. For overlap detection, do not compare attempts pairwise. A single global sort by (job_run_id, started_at) gives both the grouping and the order; within a group, keep the maximum end seen so far and report an overlap exactly when the next start is less than that running maximum, which is one linear pass after the sort.
  4. Half-open intervals matter and are easy to get wrong: with closed intervals an attempt ending at the same millisecond another begins reads as concurrency two, and across 50,000,000 records that artefact swamps the real signal.

Follow-up

  • A handler is not idempotent and you have found 400 overlapping jobs. Which of them actually caused damage, and what would you query to find out?
  • Peak concurrency for one job_type is 4 against a configured cap of 4. Is the cap working, or is the data hiding attempts that never started?

Write an SQL query to find the second highest salary in an employee table.

Medium · Database and SQL

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Explain the difference between INNER JOIN and LEFT JOIN.

Medium · Database and SQL

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Describe the concept of normalization and its various forms.

Medium · Database and SQL

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

How would you optimize a slow-running database query?

Medium · Database and SQL

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. Handle the rows that do not match: that is usually the actual question.

Follow-up

  • How does the query change if that join becomes one-to-many?
  • What happens to this when the table is ten times larger?

Explain the concepts of polymorphism and inheritance with real-world examples.

Medium · Core Java and Object-Oriented Programmin

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

What is the difference between an abstract class and an interface in Java?

Medium · Core Java and Object-Oriented Programmin

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

Write a program to reverse a string without using built-in methods.

Medium · Core Java and Object-Oriented Programmin

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

What are indexes, and how do they improve database performance?

Medium · Database and SQL

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

(Verbal) Identify the grammatical error in this sentence and correct it.

Medium · Aptitude and Communication (Online/Phone

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

(Verbal) Speak for 45 seconds on the topic of "The impact of technology on remote work."

Medium · Aptitude and Communication (Online/Phone

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

(Logical) If A is the brother of B, and B is the sister of C, how is A related to C?

Medium · Aptitude and Communication (Online/Phone

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

(Quantitative) Solve basic time-and-work or distance-and-speed mathematical problems.

Medium · Aptitude and Communication (Online/Phone

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

One customer endpoint stalls deliveries to every other destination

Medium · bulkhead · timeouts · saturation

The egress service delivers about 1.5k webhooks/second across 40,000 destinations, with a per-destination concurrency cap of 4 and a 10-second connect-plus-read timeout. Throughput falls to 300/second, queue depth climbs, and p99 delivery latency for unaffected destinations goes from 200 ms to minutes, while the error rate barely moves. One tenant holds 900 destination rows whose URLs share a hostname that now answers in 9.5 seconds. Explain the mechanism with the arithmetic, then give the containment in the order you would apply it.

Approach

  1. Look at saturation before errors. A flat error rate with collapsing throughput says nothing is failing, things are waiting, so the first signal to pull is in-flight request count or pool wait time rather than the error counter. This is the distinction that decides the whole investigation.
  2. Group in-flight work by resolved host, not by destination id. The cap is keyed per destination row, so 900 rows sharing one hostname buy 3,600 concurrent slots against a single host, each held for 9.5 seconds. The bulkhead was never a bulkhead for that host, and grouping by the wrong dimension is why the dashboard looked healthy.
  3. Do the arithmetic in both directions. Required concurrency is arrival rate times latency, so 1.5k/second at 200 ms needs about 300 in flight, which is entirely consumed by 3,600 slow slots; conversely whatever concurrency is left sustains rate equals concurrency divided by 9.5 seconds, which is the 300/second you are seeing. Matching both numbers is what promotes this from a plausible story to the mechanism.
  4. Explain why the circuit breaker never helped. It opens on consecutive failures, and a 9.5-second response inside a 10-second timeout is a success. Slow is not failing, so an error-rate breaker cannot see this; you need a slow-call ratio, a deadline propagated from the caller's remaining budget, or a concurrency limiter.

Follow-up

  • The host recovers to 80 ms. How long does the queue take to drain, and what does the drain do to the recovered host?
  • Where should the 10-second timeout number actually come from?

Suggested practice checklist

Built from the rounds and topics Artech candidates report.

Day 1 — Map the Artech loop

  • Write out the reported sequence: Phone Screen, Online Assessment, Client Submission, Client Technical Interviews, Documentation and Background Checks.
  • For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.

Deliverable: A one-page map of the 5 reported rounds, with the weakest marked.

Day 2 — Work Java

  • Spend the session on Java, which Artech candidates report being tested on.
  • Write one worked example in Java and time yourself on it.

Deliverable: One timed worked example in Java.

Day 3 — Work SQL

  • Spend the session on SQL, which Artech candidates report being tested on.
  • Write one worked example in SQL and time yourself on it.

Deliverable: One timed worked example in SQL.

Day 4 — Work Java Concurrency / Threads

  • Spend the session on Java Concurrency / Threads, which Artech candidates report being tested on.
  • Write one worked example in Java Concurrency / Threads and time yourself on it.

Deliverable: One timed worked example in Java Concurrency / Threads.

Day 5 — Answer out loud: Behavioral and Past Experience

  • Answer aloud, timed: Walk me through your resume and highlight your most recent project.
  • Answer aloud, timed: Discuss an achievement or technical implementation you are particularly proud of.

Deliverable: Spoken answers to 2 reported Behavioral and Past Experience question(s), under time.

Day 6 — Answer out loud: Core Java and Object-Oriented Programming

  • Answer aloud, timed: Explain the concepts of polymorphism and inheritance with real-world examples.
  • Answer aloud, timed: What is the difference between an abstract class and an interface in Java?

Deliverable: Spoken answers to 2 reported Core Java and Object-Oriented Programming question(s), under time.

Day 7 — Answer out loud: Database and SQL

  • Answer aloud, timed: Write an SQL query to find the second highest salary in an employee table.
  • Answer aloud, timed: Explain the difference between INNER JOIN and LEFT JOIN.

Deliverable: Spoken answers to 2 reported Database and SQL question(s), under time.

Behavioural preparation

Behavioural rounds judge the decision you made and what it cost.

Walk me through your resume and highlight your most recent project.

Medium · Behavioral and Past Experience

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.

Follow-up

  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Discuss an achievement or technical implementation you are particularly proud of.

Medium · Behavioral and Past Experience

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.

Follow-up

  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Why are you interested in working for Artech and consulting for our clients?

Medium · Behavioral and Past Experience

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.

Follow-up

  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

How do you handle changing requirements in the middle of a development sprint?

Medium · Behavioral and Past Experience

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.

Follow-up

  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?

Tell me about a time you had to quickly learn a new technology to complete a project.

Medium · Behavioral and Past Experience

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. Name the disagreement and how you resolved it with evidence.

Follow-up

  • What would you do differently if you ran that again?
  • How did you know your change caused the improvement?