Aufgaben zur Auswahl
Nutzerverwaltung Frontend
Erstellen Sie eine Next.js-App (TypeScript), die User von jsonplaceholder.typicode.com/users lädt und in einer Liste anzeigt. Implementieren Sie dynamische Routen für User-Details mit Lade-/Fehlerzuständen sowie einfache Navigation.
Bibliothek Backend
Erstellen Sie eine Node.js-TypeScript-REST-API für Bücher (CRUD). Speichern Sie Daten In-Memory oder in books.json, validieren Sie Felder, setzen Sie richtige HTTP-Statuscodes und fügen Sie einen globalen Error-Handler hinzu.
Todo-Liste Frontend
Erstellen Sie eine SPA mit HTML, CSS und JavaScript für To-Do-Einträge (anlegen, erledigen, löschen) mit localStorage-Persistenz. Nutzen Sie semantisches HTML, responsives CSS und modularen JS-Code.
Rust Diesel Backend
Implementieren Sie eine REST-API in Rust (Warp) mit PostgreSQL (optional Diesel). Bauen Sie User-Authentifizierung (JWT/Sessions) und CRUD für Artikel, verwenden Sie Rust-Fehlerbehandlung und schreiben Sie Unit-Tests.
Login-Formular Frontend
Erstellen Sie eine Next.js-App mit React Hook Form und NextAuth.js (Credentials Provider). Implementieren Sie ein Login-Formular mit Validierung, konfigurieren Sie NextAuth.js und schützen Sie eine Seite (z. B. /dashboard).
Personal Finance Tracker
Erstellen Sie eine Personal Finance Tracker Anwendung mit React/Next.js. Implementieren Sie Ausgabenverfolgung, Kategorisierung, Dashboard mit Charts, Budgetplanung und Datenvisualisierung mit modernen UI-Komponenten.
Linux-Server-Administration
Richten Sie einen Debian 12/Ubuntu 22.04 Server ein: System-Updates, Admin-Account, SSH-Härtung, Firewall, Nutzer-/Gruppenverwaltung, Backup-Skript mit Cron, Remote-rsync, Monitoring und zentrales Logging.
Webshop Fullstack
Entwickeln Sie einen Fullstack-Webshop mit relationaler DB (MySQL/PostgreSQL) und Docker. Backend in Rust (oder Node.js) mit REST/GraphQL, Frontend in Next.js, Zustand mit Context, und docker-compose-Orchestrierung.
Product Catalog Frontend
Entwickeln Sie eine moderne E-Commerce-Produktkatalog-Anwendung mit React/Next.js. Implementieren Sie Filterung, Sortierung, Suche, Paginierung, Warenkorb-Integration und responsives Design mit State-Management.
Nextcloud-Installation
Installieren Sie auf einer Hetzner-VM Nextcloud (Debian 12/Ubuntu 22.04) mit LAMP/LEMP, richten Sie HTTPS (Let's Encrypt), Firewall und User/Gruppen ein. Erstellen Sie ein Backup-Skript mit Cron und fügen Sie Monitoring hinzu.
Ladezustände und Skeleton-Dashboard
Bauen Sie eine Übersichtsseite, die drei Datenbereiche aus einer künstlich verzögerten Quelle lädt: jeder mit anderer Antwortzeit, einer kann auf Knopfdruck fehlschlagen, einer liefert eine leere Menge. Geprüft wird, ob Sie Lade-, Fehler- und Leerzustand sauber trennen und ob Ihre Platzhalter das Layout stabil halten.
Druckansicht eines Wartungsberichts
Erstellen Sie aus einem vorgegebenen JSON-Bericht eine Bildschirmansicht, die sich ohne zweite, separat gepflegte Komponente als mehrseitiges A4-Dokument drucken lässt. Geprüft werden Druck-Stylesheets, Seitenumbrüche, wiederholte Tabellenköpfe und das Ausblenden der Bedienelemente.
Kennzahlen-Kacheln mit Tooltips
Bauen Sie eine Kachelreihe für Betriebskennzahlen, in der ein Teil der Werte gekürzt oder abgekürzt dargestellt wird. Geprüft wird zweierlei: sauberes Formatieren mit Intl.NumberFormat, und ob Sie Tooltips genau dort setzen, wo durch die Darstellung Information verloren geht – und nur dort.
Logauswertung als Rust-Kommandozeilenwerkzeug
Schreiben Sie ein kleines Kommandozeilenwerkzeug in Rust, das eine Zugriffs-Logdatei zeilenweise einliest und daraus Kennzahlen berechnet. Geprüft wird weniger der Umfang als die Sorgfalt: ein Parser, der auch die unangenehmen Zeilen aushält, und ein eigener Fehlertyp statt unwrap.
Mehrstufige Antragsstrecke
Bauen Sie eine Antragsstrecke, die über drei Schritte Angaben einsammelt und am Ende eine Zusammenfassung zum Absenden anbietet. Geprüft wird weniger das Formular als die Zustandsverwaltung über Schrittgrenzen hinweg: ein Antrag überlebt Schrittwechsel, Neuladen der Seite und einen Abbruch am Vortag.
Datentabelle mit serverseitiger Paginierung
Bauen Sie eine Tabelle für mehrere zehntausend Datensätze, ohne sie jemals vollständig zu laden – Seite, Sortierung und Suche gehen an den Server. Geprüft wird, ob Sie den Ansichtszustand sauber in der URL führen, Ladezustände ohne Layout-Sprung darstellen und überholte Antworten paralleler Anfragen abfangen.
Datei-Upload mit Fortschritt
Bauen Sie eine Oberfläche, über die mehrere Dateien gleichzeitig hochgeladen werden – jede mit eigenem Fortschritt, einzeln abbrechbar und nach einem Fehlschlag wiederholbar. Die Ablagefläche per Drag-and-Drop ist dabei nur einer von zwei gleichwertigen Wegen: alles muss ebenso über die Tastatur gehen.
Responsive Navigation und ihre Testabdeckung
Bauen Sie eine Navigationsleiste, die über drei Umbruchpunkte drei Gestalten annimmt: volle Leiste, verkürzte Leiste, Menüschublade. Das ist die eine Hälfte. Die andere, für uns wichtigere, ist der Nachweis: Sie sichern die Navigation mit automatisierten Tests ab und weisen nach, welche Zustände diese tatsächlich erreichen.
Barrierefreie Komponenten von Grund auf
Bauen Sie drei zusammengesetzte Bedienelemente nach den WAI-ARIA Authoring Practices: modaler Dialog, Auswahlfeld mit Filterung und Tab-Leiste. Fertige Komponentenbibliotheken sind ausgeschlossen – gerade das Verhalten, das solche Bibliotheken verstecken, ist der Prüfgegenstand.
Echtzeit-Dashboard mit Verbindungsabbrüchen
Bauen Sie ein Dashboard, das Messwerte laufend entgegennimmt und als Verlauf sowie Statusübersicht darstellt. Der interessante Teil ist nicht das Zeichnen der Kurven, sondern das Verhalten an den Rändern: Was zeigt die Oberfläche, während die Verbindung wackelt – und wie kommt sie zurück, ohne Lücken oder Dubletten?
Internationalisierung einer Lernplattform
Legen Sie einen Ausschnitt einer Lernplattform zweisprachig aus: Deutsch und Arabisch. Geprüft wird, ob Sie Internationalisierung als Architekturthema behandeln statt als Textaustausch. Arabisch ist der eigentliche Prüfstein – es kehrt die Schreibrichtung um und hat sechs statt zwei Pluralformen.
Preisdaten-Collector in Rust
Schreiben Sie einen Dienst in Rust, der in festen Intervallen zwei HTTP-Quellen abfragt und die Preise historisiert in PostgreSQL ablegt. Ein solcher Sammler läuft über Monate unbeaufsichtigt – der Schwerpunkt liegt deshalb nicht auf dem Abholen, sondern auf Wiederholungen mit wachsendem Abstand und sauberem Verhalten bei Ausfällen.
Honeypot-Dienst in Rust
Schreiben Sie einen schlanken Dienst in Rust, der auf mehreren Ports auf Verbindungsversuche wartet, jeden Versuch strukturiert protokolliert und die Ereignisse über eine kleine Abfrageschnittstelle auswertbar macht. Geprüft wird robuster nebenläufiger Netzwerkcode und ein auswertbares Protokollformat.
Netzwerkmitschnitte streamend auswerten
Schreiben Sie eine Rust-Bibliothek, die große pcap-Mitschnitte streamend einliest, Pakete zu Verbindungen zusammenfasst und zu Kennzahlen verdichtet. Die Dateien sind größer als der Arbeitsspeicher – gefragt ist nicht das Zerlegen einzelner Pakete, sondern ein Entwurf mit fester Speicherobergrenze.
Sicherheitsaudit und Befundbericht
Prüfen Sie den OWASP Juice Shop – eine öffentlich verfügbare, absichtlich verwundbare Webanwendung – und schreiben Sie darüber einen Auditbericht. Nicht die Menge der Funde zählt, sondern deren Belastbarkeit: vier bis fünf Befunde, jeder sauber belegt, selbst bewertet und im Betriebskontext eingeordnet.
Köder-Token-Dienst
Ein Köder-Token ist ein Lockmittel: eine Adresse, die im Normalbetrieb niemand anfasst – wird sie doch abgerufen, ist das ein Alarm. Bauen Sie den Dienst dahinter. Der anspruchsvolle Teil ist nicht die Zufallskennung, sondern die Zuverlässigkeit der Auslieferung an den Alarmempfänger.
Schwachstellen finden und API härten
Sie erhalten den vollständigen Quelltext einer absichtlich verwundbaren REST-API. Übernehmen Sie ihn, bringen Sie ihn zum Laufen, auditieren Sie ihn, belegen Sie jeden Fund reproduzierbar, beheben Sie ihn und sichern Sie die Behebung durch Regressionstests ab. Der Reiz liegt in der Reihenfolge.
Caddy-Reverse-Proxy im laufenden Betrieb ändern
Betreiben Sie zwei Dienste hinter einem Caddy-Reverse-Proxy per docker compose, dessen Konfiguration als einzelne Datei vom Host eingehängt ist. Ergänzen Sie im laufenden Betrieb eine weitere Route und weisen Sie nach, dass die Änderung im Container tatsächlich angekommen ist. Setzt eine Linux-Umgebung voraus.
Bau-Pipeline über einen internen Spiegel
Ein Bau-Server steht in einem abgetrennten Netz und erreicht genau einen Rechner: den internen Spiegel. Dort sollen zwei Container-Abbilder entstehen. Alles, was nicht aus dem Projekt selbst stammt, kommt über den Spiegel und wird beim Bau auf Integrität geprüft.
CI-Pipeline für einen Rust-Dienst
Bauen Sie für ein kleines Rust-Backend eine durchgehende CI-Pipeline: bei jedem Push Formatierung, Lint, Tests und ein Release-Build, das gebaute Programm als abholbares Artefakt. Zusätzlich überwacht die Pipeline die Versionspflege in der Cargo.toml.
Hinweise zur Bearbeitung
- Bitte bearbeiten Sie die Aufgabe selbstständig
- Verwenden Sie moderne Best Practices und Coding Standards
- Dokumentieren Sie Ihre Lösung und Entscheidungen
- Reichen Sie Ihren Code als Git-Repository ein
Bei Fragen zur Testaufgabe können Sie uns gerne unter karriere@firefleeb.de kontaktieren.
