JOBSEEKER?

Software Engineering Interview Questions

Practice for Software Engineering interviews by solving TestDome questions. Our interview questions are used by more than 7,000 companies and 450,000 individual test takers.

Jobseekers: Certify Your Knowledge

Take a Certification Test

Companies: Use Our Tests for Screening

Buy a Pack Of Candidates

Need to practice your Software Engineering skills for an upcoming job interview? Try solving these Software Engineering interview questions that test knowledge of OOP, data structures, design patterns, and other skills. We’ll provide feedback on your answers, and you can use a hint if you get stuck.

These Software Engineering interview questions are examples of real tasks used by employers to screen job candidates such as software engineers, web developers, mobile developers, and others that need to understand how software systems work together, how to optimize them, and how to design systems to avoid potential issues.

1. HTTP Request

Easy  
Software Engineering HTTP Life Cycle Web Development Public

A user types www.testdome.com into their browser's address bar for the first time, presses enter, the webpage loads, and renders successfully.

Select the statements that are correct.

(Select all acceptable answers.)

Solve Question

2. Web App Architecture

Easy  
Software Engineering Software Architecture Solution Architecture Public

During a discussion about architecture for a new web app the following sketchup was made:

Web app architecture

The authors of the sketchup forgot to write the descriptions for three components marked with red numbers.

Select the best choice, regarding the context, for the description that should define each component.

Solve Question

3. Big O Notation

Easy  
Software Engineering Complexity Public

For the following pseudocode functions, choose the big O notation that accurately describes its worst-case complexity.

Solve Question

4. Serialize Cart

Easy  
Software Engineering Inheritance OOP Public

In a language that supports OOP paradigm, we have the following code that serializes the content of a shopping cart to JSON format:

class ShoppingCart
  private content : Dictionary<int, string> 

  public function serialize() : string
    return new JsonSerializer().serialize(content.clone())
  end function
end class

class JsonSerializer  
  public function serialize(value : Dictionary<int, string>) : string
    ' Code that serializes dictionary to JSON format and returns it as string
  end function
end class

A client wants to have the possibility of allowing loosely coupled plugins to be able to serialize the shopping cart content to their own formats (e.g., XML). Select lines of code that, together, would extend the code above to allow this.

(Select all acceptable answers.)

Solve Question

5. Stack vs Queue

Easy  
Software Engineering Data Structures Queue Stack Public

Answer the questions below regarding correct usage of data structures.

Solve Question

6. RESTful Web Services

Hard  
Software Engineering HTTP REST Web Development Public

Select the statements about RESTful web services that are correct.

(Select all acceptable answers.)

Solve Question

7. Font Formatting

Hard  
Software Engineering Design Patterns OOP Structural Patterns Public

A word processor uses the following code for defining font format:

class FontFormat inherits Object
  private fontName : string
  private fontSize : int

  public constructor(name : string, size : int)
    fontName = name
    fontSize = size
  end constructor

  public function getFontName : string
    return fontName
  end function

  public function getFontSize : int
    return fontSize
  end function

  override public function equals(obj : object) : bool
    if(!(obj instanceof FontFormat))
      return false
    end if
    
    FontFormat f = (FontFormat)obj
    return f.getFontName() == fontName && f.getFontSize() == fontSize
  end function

  override public function getHashCode() : int
    return fontName.getHashCode() ^ fontSize.getHashCode()
  end function
end class

Analysis shows that even the largest documents use fewer than a hundred different combinations of font name and size. The same analysis shows that the application sometimes uses thousands of FontFormat objects, most of which share the same font name and size.

(Fill in the blank with the software design pattern that solves the issue.)

The ____________ software design pattern can be used to minimize the memory footprint by sharing FontFormat objects.

Solve Question

If you feel ready, take one of our timed public Software Engineering Interview Questions tests:
Cybersecurity

Cybersecurity Online Test (Easy)

Software Engineering

Software Engineering Online Test (Easy / Hard)

Not exactly what you are looking for? Go to our For Jobseekers section.
Dashboard Start Trial Sign In Home Tour Tests Questions Pricing For Jobseekers