Software Engineer 路 Intern to senior

General Software Engineer Interview Questions: Fundamentals, Coding and Design

General software engineering interviews are usually language-agnostic. Expect a coding problem, questions about how a language you know works under the hood, a design discussion and behavioral questions about how you work with a team.

112 questions

  • JavaMedium

    What are the main features of Java 8: lambdas, streams and Optional?

    Java 8 introduced lambda expressions, functional interfaces, the Stream API for declarative collection processing, Optional to represent missing values, default methods in interfaces, method references and the java.time date and time API.

    Junior 路 Mid-level 路 Functions & Scope
  • PythonMedium

    Why should you not use a mutable default argument in Python?

    Default argument values are evaluated once when the function is defined, so a default list or dictionary is shared between every call that does not pass its own, causing data to leak between calls.

    Junior 路 Mid-level 路 Functions & Scope
  • PythonMedium

    What is the difference between @staticmethod and @classmethod in Python?

    A classmethod receives the class as its first argument (cls) and can create or configure instances, while a staticmethod receives no automatic argument and is just a function placed inside the class namespace.

    Junior 路 Mid-level 路 Object-Oriented Programming
  • GitMedium

    What is the difference between git merge and git rebase?

    Both integrate changes from one branch into another: merge keeps both histories and joins them with a merge commit, while rebase rewrites your commits so they appear on top of the target branch, giving a linear history.

    Junior 路 Mid-level 路 Git
  • GitMedium

    How do you resolve a merge conflict in Git?

    Open the conflicted files, decide what the final code should be between the conflict markers, remove the markers, run the tests, then stage the files and continue the merge or rebase.

    Junior 路 Mid-level 路 Git
  • DockerMedium

    How do you write a good Dockerfile? What are multi-stage builds?

    Use a small, pinned base image, order instructions so dependencies are cached before source code, use multi-stage builds to leave build tools out of the final image, run as a non-root user and keep secrets out of the image.

    Junior 路 Mid-level 路 DevOps
  • Software TestingMedium

    What is mocking in testing and when should you use it?

    Mocking replaces a real dependency with a controllable fake so a test can run in isolation and check how the code interacts with it; use it for slow, non-deterministic or external dependencies, not for everything.

    Junior 路 Mid-level 路 Testing
  • BehavioralMediumBehavioral

    How do you answer "Tell me about a production bug you fixed"?

    Walk through how you noticed the issue, limited the impact, found the root cause, fixed it, and what you changed afterwards so the same class of bug could not happen again.

    Junior 路 Mid-level 路 Behavioral Interviews
  • BehavioralMediumBehavioral

    Tell me about a project or decision that failed.

    Choose a genuine failure, explain why it failed, what you owned, how you recovered, and what you changed in future projects.

    Junior 路 Mid-level 路 Behavioral Interviews
  • BehavioralEasyBehavioral

    Why are you looking to leave your current company?

    Keep the answer professional and future-focused: explain what you are looking for next without attacking your current or former employer.

    Mid-level 路 Senior 路 Behavioral Interviews
  • JavaScriptMedium

    What is the event loop in JavaScript and how does it work?

    The event loop is the mechanism that lets single-threaded JavaScript handle asynchronous work: it runs the call stack to empty, then runs all queued microtasks (promises), then takes the next task (timers, events) from the queue.

    Mid-level 路 Senior 路 Asynchronous Programming
  • JavaScriptMedium

    What is prototypal inheritance in JavaScript?

    In JavaScript every object has an internal link to another object called its prototype, and property lookups walk up this prototype chain until the property is found or the chain ends.

    Mid-level 路 Senior 路 Object-Oriented Programming