4549+ IT interview questions across every topic — Frontend, Backend, Database, System Design, DevOps and AI Engineering. From junior to senior level, free to practice.
DOCTYPE (Document Type Declaration) states which HTML version the document uses and must be the first line. HTML5 needs a single line: It decides whether the browser renders in standards mode or quirks mode. Without it you get quirks mode: the browser emulates a few…
The cascade is the algorithm that picks a winning value when several declarations target the same property on the same element. The order it checks, top down — it stops as soon as one step decides: 1. Origin and !important: the browser's default styles lose…
var, let, and const all declare variables in JavaScript, but they differ in scope, re-declaration rules, and re-assignment behavior. - var has function scope — the variable "leaks" out of any block it's declared in, as long as it's inside a function. let and const…
TypeScript is a statically typed superset of JavaScript that compiles to plain JavaScript. The same code in JavaScript runs happily and returns '102' instead of 12, because 10 + '2' concatenates strings. No error is thrown; it only shows up when a user sees the…
JSX is a syntax that lets you write HTML-like tags directly inside a JavaScript file. It is not a separate language — browsers do not understand JSX at all; Babel or SWC compiles it into function calls before the code runs. Think of JSX as…
Key differences include: - Architecture: App Router (Next.js 13+) uses the app/ directory and supports React Server Components by default. Pages Router uses the pages/ directory: pages are still rendered to HTML on the server (SSR/SSG), but the JavaScript for every component is sent to…
Redux Toolkit (RTK) is the official toolset from the Redux team and the recommended way to write Redux today. Since Redux 4.2, plain Redux's createStore is marked deprecated to push users toward RTK's configureStore. One createSlice replaces three things you write by hand in plain…
Node.js is a runtime that runs JavaScript outside the browser, for servers and command-line tools. It is the same JavaScript on the same V8 engine as Chrome; what differs is which APIs are available and what access you have to the machine. Browser Node.js ---------…
A basic SELECT has the form SELECT columns FROM table WHERE condition. For example, to get the name and email of users aged 18 or over: SELECT name, email FROM users WHERE age = 18. SELECT picks which columns to return, FROM says which table…
Webpack is a module bundler: starting from the entry file, it follows every import / require to build a dependency graph, then packs the modules into one or more bundle files the browser can load. By default Webpack only understands JS and JSON, so other…
CI (Continuous Integration): build and test automatically on every push or PR, catching problems while they are still cheap to fix. CD (Continuous Delivery): a green CI deploys to staging automatically, while production still waits on a human approval. Continuous Deployment: straight to production, with…
Docker packages an app together with its dependencies into a container so it runs the same everywhere. Containers vs VMs: a VM virtualizes hardware, so it is heavy, carries its own OS and boots in minutes; a container shares the host kernel, so it is…
Jest is a JavaScript testing framework created by Meta (part of the OpenJS Foundation since 2022) that bundles a test runner, assertions, mocking, and coverage in one package. In a plain Node project it works with almost no configuration; Next.js configures it through next/jest. TypeScript…
Core Web Vitals are Google's three metrics measuring real-user experience, an SEO ranking factor since 2021. - LCP (Largest Contentful Paint) — loading speed: render time of the largest element in the viewport. Good <2.5s, poor 4s. - INP (Interaction to Next Paint) — responsiveness,…
XSS is a vulnerability that lets an attacker inject malicious scripts that run in the victim's browser — stealing sessions, redirecting users, modifying page content. - Stored XSS — the script is saved in the DB (comment, profile) and attacks every user who views the…
Git Flow is a branching strategy with 5 branch types: - main: the code running in production. - develop: where feature work is integrated. - feature/: new features, branched from develop. - release/: preparing a release (small fixes, version bump). - hotfix/: urgent fixes, branched…
Go is a compiled, statically typed programming language created by Google in 2009, with a clean and simple syntax. Strengths: near C/C++ performance; easy concurrency through goroutines (concurrently running functions started with just the go keyword; each starts with only a few KB of stack,…
SEO (Search Engine Optimization) is the practice of optimizing a website to rank higher on Google, Bing, and other search engines. Many users reach a website through a search engine, and frontend developers directly determine whether pages can be indexed and ranked. Frontend developers impact…
What they're assessing: a 60-90 second job-relevant summary, not your life story. Use the present → past → future formula: what you do now, a standout result, and why this role. Avoid: starting from university, or reciting your whole CV. Sample answer: "I'm a frontend…
SRP states that each class or module should have only one reason to change — responsible for only a single piece of functionality. TypeScript example: Those three methods belong to three different concerns: login rules, logging infrastructure, and email. Keeping them in one class means…
Apache Kafka is an event streaming platform: services write events to Kafka and other services read them to process, without either side knowing about the other. Kafka was developed at LinkedIn and open-sourced in 2011. How it differs from a typical message queue: reading does…
Redis is an in-memory key-value store, commonly used for caching, sessions, counters, rate limiting and simple queues. Beyond strings it has built-in data structures such as lists, hashes, sets and sorted sets. Why it is fast: - Data lives in RAM. Reads and writes never…
The OSI (Open Systems Interconnection) model divides network communication into 7 layers, numbered from the bottom: 1. Physical: transmits bits over copper, fiber or radio. Examples: Ethernet cable, Wi-Fi radio. 2. Data Link: builds frames, uses MAC addresses and detects errors within a local network.…
A process is an independent unit of execution with its own memory space (virtual address space, heap, stack, file descriptors). A thread is a lighter-weight unit of execution within a process: threads in the same process share the heap, code, and file descriptors but each…
Cloud Computing is a model for delivering IT resources (servers, storage, networking, software) over the internet on a pay-as-you-go basis, eliminating the need for upfront physical infrastructure investment. The three models differ in which layers the provider runs and which you run: - IaaS (Infrastructure…
Java is a statically typed, object-oriented language released in 1995. javac compiles Java code into bytecode (.class files) that the JVM then runs, so any machine with a JVM runs the same .class file without recompiling. Why it is still widely used: - Good performance…
Spring Boot is a framework for building Java/Spring apps fast, with minimal configuration, built on top of Spring Framework to remove most XML and boilerplate. Three core parts: 1. Auto-configuration — configures the app from the dependencies on the classpath. For example, if Tomcat is…
PHP is a recursive acronym for PHP: Hypertext Preprocessor, meaning the first P stands for PHP itself. The name originally stood for Personal Home Page in the first versions of the 1990s, and was later changed to this recursive form. PHP is a server-side language…
Laravel is an MVC PHP framework that bundles what every web app needs: routing, database access, templating, authentication, validation, queues and testing. That way you do not rebuild these pieces in every project. The route receives /posts/5; Laravel sees a Post-typed parameter, so it queries…
Value types and reference types differ in how a variable holds data: a value-type variable contains its value, a reference-type variable holds a reference to an object on the heap. Think of a value type as a photocopy — each person keeps an independent copy.…
var lets Dart infer the type once at declaration and it cannot change thereafter. dynamic allows the type to change at runtime, deferring type checking. final creates a variable that cannot be reassigned after initialization. const can't be reassigned either, but its value must be…
RabbitMQ is an open-source message broker that enables applications to communicate asynchronously by sending messages through a central broker rather than calling each other directly. The basic flow has four roles: - Producer: the application that sends a message. - Exchange: receives the message and…
val declares a read-only variable that cannot be reassigned after initialization (like final in Java), while var declares a mutable variable. Note: val only forbids reassigning the reference; it does not make the object itself immutable: To keep data from being modified, combine val with…
CPython manages memory automatically in two layers: reference counting frees most objects the moment nobody uses them, and the garbage collector (the gc module) cleans up reference cycles that reference counting misses. What just happened: - Reference counting: every object has a counter of how…
Vue.js is a JavaScript framework for building UIs that calls itself a "progressive framework": you can drop it into part of an existing HTML page, or use it to build a full SPA. Vue React Angular ------------ What it is Framework, usable piece by piece…
NestJS is a Node.js framework written in TypeScript and inspired by Angular. It does not replace Express: it runs on top of Express (the default) or Fastify and adds a ready-made project structure: Modules, Controllers, Providers and Dependency Injection. Plain Express NestJS --------- Folder structure,…
Angular is a full-featured TypeScript frontend framework for SPAs, enterprise apps and hybrid-rendered web apps. AngularJS refers to the old 1.x line, has a completely different architecture (support ended at the end of 2021), and should not be confused with modern Angular. Compared with React…
An LLM (Large Language Model) is a model trained on a huge amount of text to do exactly one thing: predict the next word from the text before it. Long answers are produced by predicting one word at a time and appending it. The probability…
ReactJS is a JavaScript library that renders to the DOM in a browser — output is HTML/CSS. React Native is a framework that reuses the same component model + JSX but renders to native UI components (UIView on iOS, android.view.View/ViewGroup on Android). No DOM, no…
FastAPI is a Python framework for building HTTP APIs, based on type hints, Starlette and Pydantic. You declare data types once, and FastAPI uses them to validate requests, convert types and generate OpenAPI docs. Send {"age": "20"} and age is converted to the number 20;…
PostgreSQL is an open-source relational database — data lives in tables with clear columns and strict constraints. Key strengths: standard SQL, ACID transactions, many index types for fast queries, and the JSONB type that lets you store flexible NoSQL-style data inside a relational DB. ACID…
MongoDB is a document database: instead of splitting data into many tables, it stores a whole "chunk" of related data in one document (like a JSON object) inside a collection. Under the hood, documents are stored as BSON. When to choose: - Data has a…
A strong flow is: 1. Restate the problem to confirm understanding. 2. Clarify constraints (input size, sorted/unsorted, duplicates, null/empty cases). 3. Propose a brute-force baseline. 4. Name the bottleneck. 5. Introduce the optimized pattern (e.g., HashMap, Two Pointers). 6. Implement clearly while thinking out loud.…
Good questions demonstrate that you think like an engineer and do not rush into coding ambiguous requirements. Keep this checklist ready: 1. Input: Can it be empty or null? What is the value range (negatives, overflow)? Is it sorted? Are there duplicates? 2. Output: What…
Readability first. The interviewer has to understand your code to grade it, and clear code also makes it easier for you to spot bugs while dry-running. Both functions return the same result, but the second reads in one pass: go through each number, bump its…
Django is a "batteries-included" Python web framework — ORM, admin, auth, forms, templates, migrations all bundled. The philosophy is to let a CRUD/admin-heavy team ship a production-ready product without stitching 5–7 libraries together. Choose Django when you need: server-rendered apps with many admin pages, projects…
Ruby (Matz, 1995) is an interpreted, dynamically typed, purely object-oriented language built around "developer happiness" — code reads almost like English. What sets it apart from other languages: - Everything is an object — even 5 or nil (you can write 5.times { ... }),…