Software Dev Interview Prep - Germany

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/47

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

48 Terms

1
New cards

1. What are the four pillars of Object-Oriented Programming (OOP)?

  • Encapsulation – Kapselung: Bundling data (attributes) and methods that operate on the data into a single unit (class), and protecting the data from direct access from outside the class. Achieves data hiding.

  • Abstraction – Abstraktion: Representing essential features without including the background details or explanations. Focuses on what an object does instead of how it does it.

  • Inheritance – Vererbung: A mechanism where a new class (subclass or derived class) inherits properties and behavior from an existing class (superclass or base class). Promotes code reusability and establishes a hierarchy of classes.

  • Polymorphism – Polymorphie: The ability of an object to take on many forms. Allows objects of different classes to respond to the same method call in their own way. Achieved through method overriding and method overloading.

2
New cards

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

  • Abstract class: can have method implementations and fields, supports constructors.
    – Abstrakte Klasse: Kann Methoden implementieren und Felder enthalten, unterstützt Konstruktoren.

  • Interface: defines method signatures only (Java 8+ allows default methods), supports multiple inheritance of type.
    – Interface: Definiert nur Methodensignaturen (ab Java 8 auch Standardmethoden), unterstützt Mehrfachvererbung von Typen.

3
New cards

3. What is the JavaScript event loop?
Was ist die Event-Schleife (Event Loop) in JavaScript?

A concurrency model that handles async operations using a call stack, task queue, and microtask queue (e.g., Promises).
– Ein Nebenläufigkeitsmodell, das asynchrone Operationen mit Call Stack, Aufgaben-Queue und Microtask-Queue (z. B. Promises) verwaltet.It allows JavaScript to perform non-blocking operations by offloading operations to the system and processing them asynchronously, ensuring smooth execution of code.

4
New cards

Explain the difference between and = in JavaScript.
Erklären Sie den Unterschied zwischen und = in JavaScript.

allows type coercion ("5" 5 is true), === requires same type and value ("5" === 5 is false).
erlaubt Typumwandlung ("5" 5 ist wahr), === verlangt gleichen Typ und Wert ("5" === 5 ist falsch).

5
New cards

What is the difference between stack and heap memory?
Was ist der Unterschied zwischen Stack- und Heap-Speicher?

  • Stack: stores primitive values and function call contexts.
    – Stack: Speichert primitive Werte und Funktionsaufrufkontexte.

  • Heap: stores objects and data with dynamic memory.
    – Heap: Speichert Objekte und dynamische Daten.

6
New cards

6. What is a RESTful API?
Was ist eine RESTful API?

An API that follows REST principles: stateless, uses HTTP verbs, and structured URIs.
– Eine API, die REST-Prinzipien folgt: zustandslos, verwendet HTTP-Verben und strukturierte URIs.

7
New cards

What does REST stand for?

An API that follows REST principles: stateless, uses HTTP verbs, and structured URIs.
– Eine API, die REST-Prinzipien folgt: zustandslos, verwendet HTTP-Verben und strukturierte URIs.

8
New cards

What is an API

An Application Programming Interface is a set of rules that allows different software programs to communicate and exchange data

9
New cards

What is dependency injection and why is it useful?
Was ist Dependency Injection (Abhängigkeitsinjektion) und warum ist sie nützlich?

A design pattern that allows a program to remove hard-coded dependencies, enabling improved modularity and easier testing.

10
New cards

Describe the lifecycle of an Angular component.
Beschreiben Sie den Lebenszyklus einer Angular-Komponente.

The lifecycle of an Angular component includes several stages such as creation, change detection, and destruction. Key hooks include ngOnInit, ngOnChanges, and ngOnDestroy, allowing developers to perform actions at specific points in the component's lifecycle.

11
New cards

What is the purpose of a package.json file?
Wozu dient die Datei package.json?

The package.json file is used in Node.js projects to manage dependencies, scripts, and project metadata. It defines the project's dependencies, versions, and configuration details necessary for running and building the application.

12
New cards

What is the difference between a monolith and microservices architecture?
Was ist der Unterschied zwischen einer monolithischen Architektur und Microservices?

Monolithic architecture is a single unified unit for an application, while microservices architecture breaks down the application into smaller, independent services that communicate with each other. The latter enables greater scalability, flexibility, and easier maintenance.

13
New cards

What is SOLID in software design?

Was bedeutet SOLID im Softwaredesign?

SOLID is an acronym for five design principles:

  • Single Responsibility Principle (SRP): A class should have only one reason to change, meaning it should have only one job.

  • Open/Closed Principle (OCP): Software entities (classes, modules, functions, etc.) should be open for extension but closed for modification. This means you should be able to add new functionality without changing existing code.

  • Liskov Substitution Principle (LSP): Subtypes must be substitutable for their base types. In other words, if you have a class A and a class B that inherits from A, you should be able to use B anywhere you can use A without any unexpected behavior.

  • Interface Segregation Principle (ISP): Clients should not be forced to depend on methods they do not use. This principle suggests breaking large interfaces into smaller, more specific ones so that clients only need to know about the methods that are of interest to them.

  • Dependency Inversion Principle (DIP): High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. This promotes decoupling between classes.

14
New cards

what is a class in OOP?

A class in Object-Oriented Programming (OOP) is a blueprint for creating objects, defining properties and methods that the objects created from the class can use. It encapsulates data for the object and provides a means of organizing code.

15
New cards

What is CORS and how do you handle it?
Was ist CORS und wie geht man damit um?

  • Cross-Origin Resource Sharing: restricts resource sharing between different origins.
    – Cross-Origin Resource Sharing: Beschränkt das Teilen von Ressourcen zwischen verschiedenen Ursprüngen.

  • Use headers or proxies to allow specific origins.
    – Mit Headern oder Proxys bestimmte Ursprünge zulassen.

16
New cards

What is the difference between synchronous and asynchronous code?
Was ist der Unterschied zwischen synchronem und asynchronem Code?

  • Synchronous: executes line-by-line.
    – Synchron: Wird zeilenweise ausgeführt.

  • Asynchronous: allows non-blocking execution using callbacks, Promises, or async/await.
    – Asynchron: Ermöglicht nicht-blockierende Ausführung mit Callbacks, Promises oder async/await.

17
New cards

What are some common European/German compliance topics developers need to know?
Welche europäischen/deutschen Compliance-Themen sollten Entwickler kennen?

  • GDPR (General Data Protection Regulation)
    – DSGVO (Datenschutz-Grundverordnung)

  • Accessibility standards (WCAG 2.1, BITV in Germany)
    – Barrierefreiheitsstandards (WCAG 2.1, BITV in Deutschland)

  • Data localization rules
    – Vorschriften zur Datenlokalisierung

18
New cards

How do you optimize web applications for performance?
Wie optimiert man Webanwendungen für Performance?

Lazy loading, bundling/minification, caching, image optimization, tree shaking, CDNs.
– Lazy Loading, Bündelung/Minimierung, Caching, Bildoptimierung, Tree Shaking, CDNs.

19
New cards

What are TypeScript’s advantages over JavaScript?
Was sind die Vorteile von TypeScript gegenüber JavaScript?

Static typing, better tooling, early error detection, improved maintainability.
– Statische Typisierung, bessere Werkzeuge, frühere Fehlererkennung, bessere Wartbarkeit.

20
New cards

What is a closure in JavaScript?
Was ist eine Closure in JavaScript?

A function that remembers its lexical scope even when executed outside it.
– Eine Funktion, die sich an ihren lexikalischen Kontext erinnert, auch wenn sie außerhalb davon ausgeführt wird.

21
New cards

**What are common pitfalls in multithreaded Java applications?**
**Was sind typische Fallstricke in mehrthreadigen Java-Anwendungen?**

  • Race Conditions: Occur when multiple threads access shared data concurrently, and the final result depends on the order of execution. This can lead to unpredictable and incorrect results. For example, multiple threads trying to increment a counter without proper synchronization.

  • Deadlocks: A situation where two or more threads are blocked indefinitely, waiting for each other to release resources. This typically happens when each thread holds a resource that the other thread needs. For example, Thread A holds lock X and waits for lock Y, while Thread B holds lock Y and waits for lock X.

  • Shared Mutable State: When multiple threads access and modify shared data without proper synchronization, it can lead to data corruption and inconsistent state. Using immutable objects and proper synchronization mechanisms (e.g., locks, atomic variables) can help mitigate this issue.

  • Improper Synchronization: Incorrect use of synchronization mechanisms (e.g., locks, semaphores) can lead to both race conditions and deadlocks. For example, forgetting to release a lock or using the wrong type of lock can cause threads to block indefinitely or access shared data inconsistently.

22
New cards

What is the difference between SQL and NoSQL databases?
Was ist der Unterschied zwischen SQL- und NoSQL-Datenbanken?

SQL databases are relational, use structured query language, and require a predefined schema, while NoSQL databases are non-relational, allowing for flexible schemas and storing unstructured data.

23
New cards

What is the purpose of CI/CD?
Wofür steht CI/CD?

CI/CD is a set of practices that automates the processes of software development, including integration, testing, and deployment. Continuous Integration (CI) combines code changes and tests them automatically, while Continuous Deployment (CD) ensures those changes are deployed to production automatically.

24
New cards

What is a DTO and why is it used?

A DTO, or Data Transfer Object, is a design pattern used to transfer data between software application subsystems or layers. It simplifies data exchange by encapsulating data in a simple object, reducing the number of method calls and network requests, thereby improving performance.

25
New cards

What’s the benefit of using a state management library like Redux or NgRx?

State management libraries like Redux or NgRx help manage the state of an application in a predictable way. They enable centralized state management, making it easier to track state changes, debug, and enhance performance in complex applications.

26
New cards

How is error handling typically done in Java apps?

Using try-catch blocks, custom exceptions, and global exception handlers in Spring Boot (e.g., @ControllerAdvice).

27
New cards

What are some important build tools for modern JS apps?

Webpack, Vite, esbuild, Babel, and linters like ESLint and Prettier.

28
New cards

How do you debug memory leaks in a JS frontend app?

Use Chrome DevTools: monitor detached DOM nodes, performance tab, heap snapshots, long-running listeners.

29
New cards

what is a memory leak?

in computer science, a memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations[1] in a way that memory which is no longer needed is not released. A memory leak may also happen when an object is stored in memory but cannot be accessed by the running code (i.e. unreachable memory).[2]

30
New cards

What are Spring Boot starters?

Spring Boot Starters are pre-packaged sets of dependencies that simplify dependency management and configuration in Spring Boot applications. They bundle together related libraries and configurations for specific features, allowing developers to quickly add functionality to their projects with minimal manual work.

31
New cards

What is Docker?

Docker is a platform for developing, shipping, and running applications using containerization.

32
New cards

What is a Docker container?

A lightweight, standalone, executable package that includes everything needed to run a piece of software—code, runtime, system tools, libraries, and settings.

33
New cards

What is a Docker image?

A read-only template used to create Docker containers. It contains the application and all dependencies.

34
New cards

What is the difference between a Docker image and a Docker container?

An image is the blueprint; a container is a running instance of that image.

35
New cards

What is the Dockerfile used for?

A Dockerfile is a text file that contains a set of instructions for building a Docker image. These instructions specify the base image, commands to install software, configurations, and other necessary elements for creating a consistent and reproducible environment for running an application. It automates the image creation process, ensuring that the application and its dependencies are packaged together correctly.

36
New cards

What command is used to build a Docker image from a Dockerfile?

docker build -t <image-name> .

37
New cards

What command is used to start a new Docker container?

docker run <image-name>

38
New cards

What does the -p flag do in docker run?

It maps a port on the host to a port on the container (e.g., -p 8080:80).

39
New cards

What is Docker Hub?

A cloud-based registry where Docker users can share and store container images.

40
New cards

what are the benefits of using Docker?

Docker allows you to run each component of an app on a separate virtual machine in order to avoid issues with conflicting dependencies or versions. It ensures consistency across environments. It simplifies the configuration process by packaging dependencies into a single container.

41
New cards

What is AWS SQS?

a fully managed message queuing service that enables decoupling of application components and reliable communication between distributed systems.

42
New cards

What are the two types of SQS queues?

Standard Queue (high throughput, at-least-once delivery, best-effort ordering) and FIFO Queue (exactly-once processing and strict ordering)

43
New cards

What is the maximum retention period for messages in an SQS queue?

14 days

44
New cards

What is the default visibility timeout in SQS?

30 seconds

45
New cards

What happens when a message’s visibility timeout expires before it's deleted?

The message becomes visible again in the queue and can be reprocessed, potentially leading to duplicate processing.

46
New cards

How does SQS ensure messages are delivered at least once?

SQS stores messages redundantly across multiple servers and data centers; however, consumers must be idempotent to handle possible duplicates.

47
New cards

What is long polling in SQS and why is it useful?

Long polling reduces the number of empty responses by allowing the ReceiveMessage call to wait up to 20 seconds for a message to arrive, which reduces cost and improves efficiency

48
New cards

How does FIFO queue ensure exactly-once delivery?

FIFO queues use deduplication (by content or message deduplication ID) and preserve the exact order of messages sent and received