Upload Button Icon Add office photos
Premium Employer

i

This company page is being actively managed by UST Team. If you also belong to the team, you can get access from here

UST Verified Tick

Compare button icon Compare button icon Compare

Filter interviews by

Clear (1)

UST Senior Software Engineer Interview Questions, Process, and Tips

Updated 7 Jan 2025

Top UST Senior Software Engineer Interview Questions and Answers

  • Q1. Nth Prime Number Problem Statement Find the Nth prime number given a number N. Explanation: A prime number is greater than 1 and is not the product of two smaller natura ...read more
  • Q2. LRU Cache Design Problem Statement Design and implement a data structure for a Least Recently Used (LRU) cache that supports the following operations: get(key) - Retriev ...read more
  • Q3. Excel Column Number Conversion Given a column title as it appears in an Excel sheet, your task is to return its corresponding column number. Example: Input: S = "AB" Out ...read more
View all 34 questions

UST Senior Software Engineer Interview Experiences

32 interviews found

Interview experience
3
Average
Difficulty level
Moderate
Process Duration
Less than 2 weeks
Result
Not Selected

I applied via LinkedIn and was interviewed in Jan 2024. There was 1 interview round.

Round 1 - One-on-one 

(2 Questions)

  • Q1. Interview questions on .NET framework, C#, OOPS
  • Q2. OOPS concepts and usage
  • Ans. 

    OOPS concepts are fundamental principles in object-oriented programming that help in organizing and designing code.

    • Encapsulation: Bundling data and methods that operate on the data into a single unit (class).

    • Inheritance: Allowing a class to inherit properties and behavior from another class.

    • Polymorphism: Ability to present the same interface for different data types.

    • Abstraction: Hiding the complex implementation detail...

  • Answered by AI
Interview experience
4
Good
Difficulty level
Easy
Process Duration
Less than 2 weeks
Result
Selected Selected

I applied via Naukri.com and was interviewed in Sep 2023. There were 2 interview rounds.

Round 1 - Technical 

(1 Question)

  • Q1. About our skill set.
Round 2 - One-on-one 

(1 Question)

  • Q1. Client round about project and day to day work

Interview Preparation Tips

Interview preparation tips for other job seekers - Be confident on your technical skills and your behavior skills

Senior Software Engineer Interview Questions Asked at Other Companies

Q1. K Largest Elements Problem Statement You are given an integer k a ... read more
asked in DBS Bank
Q2. Tell me about yourself. What technology are you using? What is a ... read more
asked in GlobalLogic
Q3. MapSum Pair Implementation Create a data structure named 'MapSum' ... read more
asked in UST
Q4. Nth Prime Number Problem Statement Find the Nth prime number give ... read more
asked in Capgemini
Q5. Pascal's Triangle Construction You are provided with an integer ' ... read more
Interview experience
5
Excellent
Difficulty level
-
Process Duration
-
Result
-
Round 1 - Resume Shortlist 
Pro Tip by AmbitionBox:
Keep your resume crisp and to the point. A recruiter looks at your resume for an average of 6 seconds, make sure to leave the best impression.
View all Resume tips
Round 2 - Technical 

(1 Question)

  • Q1. C#, MVC, Sql server
Round 3 - Technical 

(1 Question)

  • Q1. C#, MVC, Sql server
Round 4 - Coding Test 

Location, timing, domain

Interview experience
5
Excellent
Difficulty level
Moderate
Process Duration
2-4 weeks
Result
Selected Selected

I applied via Naukri.com and was interviewed in Nov 2022. There were 2 interview rounds.

Round 1 - Technical 

(1 Question)

  • Q1. Oops concepts, solid principal, Design pattern
Round 2 - Technical 

(2 Questions)

  • Q1. Scenario based, Azure function
  • Q2. Solid principal, cosmos db

Interview Preparation Tips

Interview preparation tips for other job seekers - Strong basic concepts, Azure concepts, Oops concepts,

UST interview questions for designations

 Software Engineer

 (23)

 Senior Software Developer

 (6)

 Senior Software Architect

 (1)

 Lead Software Engineer

 (6)

 Associate Software Engineer

 (4)

 Embedded Software Engineer

 (2)

 Software Engineer Trainee

 (1)

 Software Engineer II

 (1)

Interview experience
5
Excellent
Difficulty level
Moderate
Process Duration
Less than 2 weeks
Result
Selected Selected

I applied via Naukri.com and was interviewed before Dec 2023. There was 1 interview round.

Round 1 - Technical 

(2 Questions)

  • Q1. Explain about Django forms
  • Q2. Explain Middleware in django

Interview Preparation Tips

Interview preparation tips for other job seekers - be confident

Get interview-ready with Top UST Interview Questions

Interview experience
3
Average
Difficulty level
Moderate
Process Duration
Less than 2 weeks
Result
Selected Selected

I applied via Company Website and was interviewed before Apr 2023. There were 2 interview rounds.

Round 1 - Technical 

(1 Question)

  • Q1. Design pattern in C#
  • Ans. 

    Design patterns in C# are reusable solutions to common problems in software design.

    • Design patterns help in creating maintainable and scalable code.

    • Examples of design patterns in C# include Singleton, Factory, Observer, and Strategy.

    • Each design pattern has its own purpose and implementation details.

  • Answered by AI
Round 2 - One-on-one 

(1 Question)

  • Q1. Roles and responsibilities of the previous project

Skills evaluated in this interview

Senior Software Engineer Jobs at UST

View all

I applied via Naukri.com and was interviewed in Jun 2022. There were 2 interview rounds.

Round 1 - Coding Test 

Duration of test is for 30 min. Its all relate to array, List, string and basic structure of frame work

Round 2 - Technical 

(2 Questions)

  • Q1. Here also same questions
  • Q2. Explain SDLC and STLC, Whats the difference between list and tuple Whats the assert and verify Elements
  • Ans. 

    SDLC and STLC, list vs tuple, assert vs verify

    • SDLC (Software Development Life Cycle) is a process followed to develop software

    • STLC (Software Testing Life Cycle) is a process followed to test software

    • List and tuple are both data structures in Python, but list is mutable while tuple is immutable

    • Assert is used to check if a condition is true, while verify is used to check if a web element is present

    • Both assert and verify ...

  • Answered by AI

Interview Preparation Tips

Topics to prepare for UST Senior Software Engineer interview:
  • Python
  • seleniium
  • Software Testing
Interview preparation tips for other job seekers - Overall experience is good, waiting for offer confirmation

Skills evaluated in this interview

I was interviewed in Dec 2021.

Round 1 - Video Call 

(6 Questions)

Round duration - 60 minutes
Round difficulty - Medium

This round had 1 very simple coding problem followed by some questions from Java and Spring.

  • Q1. 

    Excel Column Number Conversion

    Given a column title as it appears in an Excel sheet, your task is to return its corresponding column number.

    Example:

    Input:
    S = "AB"
    Output:
    28
    Explanation:

    The seq...

  • Ans. 

    Convert Excel column title to corresponding column number.

    • Iterate through the characters in the input string from right to left

    • Calculate the corresponding value of each character based on its position and multiply by 26^index

    • Sum up all the values to get the final column number

  • Answered by AI
  • Q2. What is a lambda expression in Java, and how does it relate to a functional interface?
  • Ans. 

    Lambda expression in Java is a concise way to represent a single method interface.

    • Lambda expressions are used to provide a concise way to implement functional interfaces in Java.

    • They can be used to replace anonymous classes when implementing functional interfaces.

    • Lambda expressions consist of parameters, an arrow (->), and a body that defines the implementation of the functional interface method.

    • Example: (x, y) ->...

  • Answered by AI
  • Q3. What are Java 8 streams?
  • Ans. 

    Java 8 streams are a sequence of elements that support functional-style operations.

    • Streams allow for processing sequences of elements in a functional way.

    • They can be created from collections, arrays, or I/O resources.

    • Operations like filter, map, reduce, and collect can be performed on streams.

    • Streams are lazy, meaning they only perform operations when necessary.

    • Example: List<String> names = Arrays.asList("Alice",...

  • Answered by AI
  • Q4. What do you understand by autowiring in Spring Boot, and can you name the different modes of autowiring?
  • Ans. 

    Autowiring in Spring Boot is a way to automatically inject dependencies into Spring beans.

    • Autowiring is a feature in Spring that allows the container to automatically inject the dependencies of a bean.

    • There are different modes of autowiring in Spring: 'byName', 'byType', 'constructor', 'autodetect', and 'no'.

    • For example, in 'byName' autowiring, Spring looks for a bean with the same name as the property being autowired.

  • Answered by AI
  • Q5. What does the @SpringBootApplication annotation do internally?
  • Ans. 

    The @SpringBootApplication annotation is used to mark the main class of a Spring Boot application.

    • It is a combination of @Configuration, @EnableAutoConfiguration, and @ComponentScan annotations.

    • It tells Spring Boot to start adding beans based on classpath settings, other beans, and various property settings.

    • It is used to bootstrap the Spring application context, starting the auto-configuration, component scanning, and

  • Answered by AI
  • Q6. What are the basic annotations that Spring Boot offers?
  • Ans. 

    Spring Boot offers basic annotations for various functionalities like mapping requests, handling exceptions, defining beans, etc.

    • 1. @RestController - Used to define RESTful web services.

    • 2. @RequestMapping - Maps HTTP requests to handler methods.

    • 3. @Autowired - Injects dependencies automatically.

    • 4. @Component - Indicates a class is a Spring component.

    • 5. @ExceptionHandler - Handles exceptions in Spring MVC controllers.

  • Answered by AI
Round 2 - Video Call 

(6 Questions)

Round duration - 60 minutes
Round difficulty - Medium

This round focused more on Multithreading concepts from Java and also some core concepts from OOPS.

  • Q1. What is a thread in Java?
  • Ans. 

    A thread in Java is a lightweight sub-process that allows concurrent execution within a single process.

    • Threads allow multiple tasks to be executed concurrently in a Java program

    • Threads share the same memory space and resources within a process

    • Example: Creating a new thread - Thread myThread = new Thread();

  • Answered by AI
  • Q2. What are the start() and run() methods of the Thread class in Java?
  • Ans. 

    The start() method is used to start a new thread, while the run() method contains the code that the thread will execute.

    • start() method is used to start a new thread and calls the run() method internally

    • run() method contains the code that the thread will execute

    • It is recommended to override the run() method with the desired functionality

  • Answered by AI
  • Q3. What is the difference between the Thread class and the Runnable interface when creating a thread in Java?
  • Ans. 

    Thread class is a class in Java that extends the Thread class, while Runnable interface is an interface that implements the run() method.

    • Thread class extends the Thread class, while Runnable interface implements the run() method.

    • A class can only extend one class, so using Runnable interface allows for more flexibility in inheritance.

    • Using Runnable interface separates the task of the thread from the thread itself, promo

  • Answered by AI
  • Q4. What is the difference between an abstract class and an interface in OOP?
  • Ans. 

    Abstract class can have both abstract and non-abstract methods, while interface can only have abstract methods.

    • Abstract class can have constructor, fields, and methods, while interface cannot have any implementation.

    • A class can only extend one abstract class, but can implement multiple interfaces.

    • Abstract classes are used to define common behavior among subclasses, while interfaces are used to define a contract for cla...

  • Answered by AI
  • Q5. What is the garbage collector in Java?
  • Ans. 

    Garbage collector in Java is a built-in mechanism that automatically manages memory by reclaiming unused memory.

    • Garbage collector runs in the background to identify and remove objects that are no longer needed.

    • It helps prevent memory leaks and optimize memory usage.

    • Examples of garbage collectors in Java include Serial, Parallel, CMS, and G1.

  • Answered by AI
  • Q6. Can you explain the SOLID principles in Object Oriented Design?
  • Ans. 

    SOLID principles are a set of five design principles in object-oriented programming to make software designs more understandable, flexible, and maintainable.

    • S - Single Responsibility Principle: A class should have only one reason to change.

    • O - Open/Closed Principle: Software entities should be open for extension but closed for modification.

    • L - Liskov Substitution Principle: Objects of a superclass should be replaceable...

  • Answered by AI
Round 3 - Video Call 

(2 Questions)

Round duration - 30 minutes
Round difficulty - Medium

This was a System Design Round where I was asked a LLD question to design a URL Shortener followed by a very standard question of LRU Cache. Overall this round went well and the interviewer was also quite satisfied by my answers.

  • Q1. Design a URL shortener.
  • Ans. 

    A URL shortener service that generates short URLs for long links.

    • Generate a unique short code for each long URL

    • Store the mapping of short code to long URL in a database

    • Redirect users from short URL to original long URL

    • Consider implementing custom short codes for branding purposes

  • Answered by AI
  • Q2. 

    LRU Cache Design Problem Statement

    Design and implement a data structure for a Least Recently Used (LRU) cache that supports the following operations:

    • get(key) - Retrieve the value associated with the...
  • Ans. 

    Design and implement a Least Recently Used (LRU) cache data structure that supports get and put operations with capacity constraints.

    • Implement a doubly linked list to maintain the order of recently used items.

    • Use a hashmap to store key-value pairs for quick access.

    • When capacity is reached, evict the least recently used item before inserting a new item.

    • Handle get and put operations efficiently based on the LRU policy.

    • En...

  • Answered by AI

Interview Preparation Tips

Eligibility criteriaAbove 2 years of experienceUST Global interview preparation:Topics to prepare for the interview - Data Structures, Algorithms, Java , OOPS , Spring , System DesignTime required to prepare for the interview - 4 monthsInterview preparation tips for other job seekers

Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.

Application resume tips for other job seekers

Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.

Final outcome of the interviewSelected

Skills evaluated in this interview

Interview experience
5
Excellent
Difficulty level
Moderate
Process Duration
Less than 2 weeks
Result
Selected Selected

I applied via Referral and was interviewed before Oct 2022. There were 3 interview rounds.

Round 1 - Resume Shortlist 
Pro Tip by AmbitionBox:
Keep your resume crisp and to the point. A recruiter looks at your resume for an average of 6 seconds, make sure to leave the best impression.
View all Resume tips
Round 2 - Coding Test 

Java 8 functions and thread related questions

Round 3 - One-on-one 

(5 Questions)

  • Q1. WIth Senior project manager, previous experience
  • Q2. Previous experience
  • Q3. Project details
  • Q4. Why change in job
  • Q5. How fast you learn new techs

Interview Preparation Tips

Interview preparation tips for other job seekers - Be confident and honest

I was interviewed in Oct 2021.

Round 1 - Video Call 

(4 Questions)

Round duration - 60 minutes
Round difficulty - Medium

This round started with 1 coding question related to Prime Numbers in which I was first asked to explain my approach and then write the pseudo code for it. This was followed by some preety standard questions from OOPS and Java.

  • Q1. 

    Nth Prime Number Problem Statement

    Find the Nth prime number given a number N.

    Explanation:

    A prime number is greater than 1 and is not the product of two smaller natural numbers. A prime number has exa...

  • Ans. 

    The task is to find the Nth prime number given a number N.

    • A prime number is a number greater than 1 that is not a product of two smaller natural numbers.

    • Prime numbers have only two factors - 1 and the number itself.

    • Start with a counter at 0 and a number at 2.

    • Increment the number by 1 and check if it is prime.

    • If it is prime, increment the counter.

    • Repeat until the counter reaches N.

    • Return the last prime number found.

  • Answered by AI
  • Q2. What is the difference between an abstract class and an interface in Java?
  • Ans. 

    Abstract class is a class that cannot be instantiated and can have both abstract and non-abstract methods. Interface is a blueprint for a class and can only have abstract methods.

    • Abstract class can have constructors while interface cannot.

    • A class can implement multiple interfaces but can only extend one abstract class.

    • Abstract class can have instance variables while interface cannot.

    • Abstract class can provide default i...

  • Answered by AI
  • Q3. What is the garbage collector in Java?
  • Ans. 

    Garbage collector in Java is responsible for automatic memory management.

    • Garbage collector automatically reclaims memory by freeing objects that are no longer referenced.

    • It runs in the background and identifies unused objects based on reachability.

    • Different garbage collection algorithms like Mark and Sweep, Copying, and Generational are used.

    • Garbage collector can be tuned using JVM options like -Xmx and -Xms.

    • Example: S...

  • Answered by AI
  • Q4. What is meant by exception handling?
  • Ans. 

    Exception handling is a mechanism in programming to handle and manage errors or exceptional situations that may occur during program execution.

    • Exception handling is used to catch and handle errors or exceptions in a program.

    • It allows the program to gracefully handle errors and prevent abrupt termination.

    • Exception handling involves the use of try-catch blocks to catch and handle exceptions.

    • The catch block contains code ...

  • Answered by AI
Round 2 - Video Call 

(7 Questions)

Round duration - 60 minutes
Round difficulty - Medium

This round had 1 coding question related to LRU Cache where I had to code its implementation in a production-ready manner explaining my overall approach with proper complexity analysis. This was followed by some Mutithreading questions from Java and then at last the interviewer asked me some basic design patterns in Software Engineering and some more questions related to OOPS.

  • Q1. 

    LRU Cache Design Problem Statement

    Design and implement a data structure for a Least Recently Used (LRU) cache that supports the following operations:

    • get(key) - Retrieve the value associated with the...
  • Ans. 

    The question is about designing and implementing a data structure for LRU cache to support get and put operations.

    • LRU cache is a cache replacement policy that removes the least recently used item when the cache reaches its capacity.

    • The cache is initialized with a capacity and supports get(key) and put(key, value) operations.

    • For each get operation, return the value of the key if it exists in the cache, otherwise return ...

  • Answered by AI
  • Q2. What are the start() and run() methods of the Thread class?
  • Ans. 

    The start() method is used to start a new thread and execute the run() method.

    • The start() method creates a new thread and calls the run() method.

    • The run() method contains the code that will be executed in the new thread.

    • Calling the run() method directly will not create a new thread.

    • The start() method should be called to start the execution of the new thread.

  • Answered by AI
  • Q3. What is a BlockingQueue in the context of multithreading?
  • Ans. 

    BlockingQueue is a thread-safe queue that blocks when it is full or empty.

    • BlockingQueue is part of the Java Concurrency API.

    • It provides methods like put() and take() to add and remove elements from the queue.

    • When the queue is full, put() blocks until space becomes available.

    • When the queue is empty, take() blocks until an element is available.

    • It is commonly used in producer-consumer scenarios.

  • Answered by AI
  • Q4. What is thread starvation?
  • Ans. 

    Thread starvation occurs when a thread is unable to access the CPU resources it needs to execute its tasks.

    • Thread starvation happens when a thread is constantly waiting for a resource that is being monopolized by other threads.

    • It can occur due to poor resource management or priority scheduling.

    • Examples include a low-priority thread being constantly preempted by high-priority threads or a thread waiting indefinitely for

  • Answered by AI
  • Q5. What is a thread scheduler and how does time slicing work?
  • Ans. 

    Thread Scheduler is responsible for managing the execution of multiple threads in a multitasking environment.

    • Thread Scheduler determines the order in which threads are executed.

    • It allocates CPU time to each thread based on priority and scheduling algorithm.

    • Time Slicing is a technique used by Thread Scheduler to allocate a fixed time slice to each thread before switching to another.

    • It ensures fair execution of threads a...

  • Answered by AI
  • Q6. Can you explain the SOLID principles in Object Oriented Design?
  • Ans. 

    SOLID principles are a set of design principles that promote maintainability, extensibility, and reusability in object-oriented design.

    • S - Single Responsibility Principle: A class should have only one reason to change.

    • O - Open-Closed Principle: Software entities should be open for extension but closed for modification.

    • L - Liskov Substitution Principle: Subtypes must be substitutable for their base types.

    • I - Interface S...

  • Answered by AI
  • Q7. What makes a HashSet different from a TreeSet?
  • Ans. 

    HashSet is an unordered collection that uses hashing to store elements, while TreeSet is a sorted collection that uses a binary search tree.

    • HashSet does not maintain any order of elements, while TreeSet maintains elements in sorted order.

    • HashSet allows null values, while TreeSet does not allow null values.

    • HashSet has constant time complexity for basic operations like add, remove, and contains, while TreeSet has logarit...

  • Answered by AI
Round 3 - HR 

(2 Questions)

Round duration - 30 minutes
Round difficulty - Easy

This is a cultural fitment testing round. HR was very frank and asked standard questions. Then we discussed about my role.

  • Q1. Why should we hire you?
  • Ans. 

    I have extensive experience in software development and a proven track record of delivering high-quality solutions.

    • I have a strong technical background and expertise in various programming languages and frameworks.

    • I have successfully led and delivered complex software projects on time and within budget.

    • I am a quick learner and adapt easily to new technologies and methodologies.

    • I have excellent problem-solving and analy...

  • Answered by AI
  • Q2. Why are you looking for a job change?
  • Ans. 

    Seeking new challenges and growth opportunities in a different environment.

    • Looking for a role that allows me to work on more complex projects.

    • Interested in expanding my skill set and learning new technologies.

    • Seeking a company culture that aligns with my values and promotes collaboration.

    • Wanting to take on more leadership responsibilities and mentor junior engineers.

    • Desire for better work-life balance or location chang

  • Answered by AI

Interview Preparation Tips

Eligibility criteriaAbove 2 years of experienceUST Global interview preparation:Topics to prepare for the interview - Data Structures, Algorithms, Java, Spring, OOPSTime required to prepare for the interview - 4 monthsInterview preparation tips for other job seekers

Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.

Application resume tips for other job seekers

Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.

Final outcome of the interviewSelected

Skills evaluated in this interview

Contribute & help others!
anonymous
You can choose to be anonymous

UST Interview FAQs

How many rounds are there in UST Senior Software Engineer interview?
UST interview process usually has 2-3 rounds. The most common rounds in the UST interview process are Technical, Coding Test and Resume Shortlist.
How to prepare for UST Senior Software Engineer interview?
Go through your CV in detail and study all the technologies mentioned in your CV. Prepare at least two technologies or languages in depth if you are appearing for a technical interview at UST. The most common topics and skills that interviewers at UST expect are Microservices, Django, J2Ee, Java and Python.
What are the top questions asked in UST Senior Software Engineer interview?

Some of the top questions asked at the UST Senior Software Engineer interview -

  1. Explain SDLC and STLC, Whats the difference between list and tuple Whats the a...read more
  2. Difference between RestController and Controller annotati...read more
  3. Annotations used for making an ...read more
How long is the UST Senior Software Engineer interview process?

The duration of UST Senior Software Engineer interview process can vary, but typically it takes about less than 2 weeks to complete.

Recently Viewed

DESIGNATION

DESIGNATION

REVIEWS

Cloudkaptan Consultancy Services

No Reviews

DESIGNATION

SALARIES

IBM

INTERVIEWS

Nagarro

No Interviews

INTERVIEWS

Nagarro

No Interviews

SALARIES

Suguna Foods

SALARIES

Microsoft Corporation

DESIGNATION

Tell us how to improve this page.

UST Senior Software Engineer Interview Process

based on 20 interviews

3 Interview rounds

  • Technical Round - 1
  • Technical Round - 2
  • HR Round
View more
UST Senior Software Engineer Salary
based on 1.7k salaries
₹6.7 L/yr - ₹27 L/yr
5% more than the average Senior Software Engineer Salary in India
View more details

UST Senior Software Engineer Reviews and Ratings

based on 168 reviews

3.8/5

Rating in categories

3.7

Skill development

4.0

Work-life balance

3.5

Salary

3.3

Job security

3.8

Company culture

3.1

Promotions

3.5

Work satisfaction

Explore 168 Reviews and Ratings
Software Developer
2.1k salaries
unlock blur

₹0 L/yr - ₹0 L/yr

Senior Software Engineer
1.7k salaries
unlock blur

₹0 L/yr - ₹0 L/yr

Software Engineer
1.3k salaries
unlock blur

₹0 L/yr - ₹0 L/yr

System Analyst
1.1k salaries
unlock blur

₹0 L/yr - ₹0 L/yr

Validation Engineer
936 salaries
unlock blur

₹0 L/yr - ₹0 L/yr

Explore more salaries
Compare UST with

TCS

3.7
Compare

Infosys

3.6
Compare

Wipro

3.7
Compare

HCLTech

3.5
Compare
Did you find this page helpful?
Yes No
write
Share an Interview