Katja
Schütz

Junior Software Developer
(IHK)

Fachinformatikerin für Anwendungsentwicklung
(IHK)

Profile

Profil

I am a Software Developer (IHK-certified application developer, Germany) looking for a junior software developer position. My strongest project so far is a complete turn-based roguelite game with procedural room generation, custom event-driven systems and iterative playtesting.

Ich bin Fachinformatikerin für Anwendungsentwicklung (IHK) und suche eine Stelle als Junior Softwareentwicklerin. Mein bisher größtes Projekt ist ein vollständiges rundenbasiertes Roguelite mit prozeduraler Raumgenerierung, eigenen ereignisgesteuerten Systemen und iterativem Playtesting.

Projects

Projekte

"Desktop Companion" (working title)

"Desktop Companion" (Arbeitstitel)

A minimalist desktop companion for Windows that delivers customizable reminders. Users can edit the reminder texts, adjust the interval between reminders, and drag the companion to any position on the screen. Available in versions for Windows 10 and Windows 11. Built entirely in pure Python with Tkinter, without a game engine or visual scripting framework.

Ein minimalistischer Desktop-Begleiter für Windows mit individuell anpassbaren Erinnerungen. Erinnerungstexte und Intervalle lassen sich frei konfigurieren, und der Begleiter kann per Drag-and-drop an beliebiger Stelle auf dem Desktop platziert werden. Verfügbar in Versionen für Windows 10 und Windows 11. Vollständig in reinem Python mit Tkinter umgesetzt, ohne Engine oder visuelles Scripting.

Screenshot of Desktop Companion

github linkgithub link

Stockroom

Playable prototype on itch.io (still being balanced)

Spielbarer Prototyp auf itch.io (Balancing läuft noch)

An endlessly scaling idle game about running a fantasy guild's storeroom. Loot piles up on a counter and is dragged into genre crates or sold, crafted goods are made from stored ones, and a party leaves every 45 seconds needing specific items. Single-file HTML and vanilla JavaScript, no framework and no dependencies, with progress saved in the browser.

Ein endlos skalierendes Idle-Spiel über die Lagerverwaltung einer Fantasy-Gilde. Beute landet auf einem Tresen und wird in Genre-Kisten gezogen oder verkauft, Handwerkswaren werden aus gelagerten Gütern hergestellt, und alle 45 Sekunden bricht eine Gruppe auf, die bestimmte Gegenstände braucht. Eine einzelne HTML-Datei mit reinem JavaScript, ohne Framework und ohne Abhängigkeiten, der Fortschritt wird im Browser gespeichert.

Cover image of Stockroom showing the item counter and three storage crates
  • Game design: nine goods genres, crafting chains, expeditions whose needs scale with progress, 52 achievements that unlock upgrades step by step, and nine rare legendary items as the end goal.
  • Automation with limits: hired helpers (familiars, apprentice, sales assistant, producers) each have a clear job, so none of them can use up another's resources.
  • Balancing: prices, rates and chances tuned through iterative playtesting and feedback from a first outside player.
  • Player experience: offline earnings, a prototype notice, dark and light theme, and a layout that works on desktop and phone.
  • Testing and documentation: automated headless tests and screenshot checks before each release, plus a dev blog and a game design document detailed enough to rebuild the gameplay loop in another language.
  • How it was built: it began as a casual vibe-coding session that I accidentally spiralled into, and I then used it to test my game design skills. I designed the game, set every rule and number, and playtested it. The code was written with AI assistance (Claude) from my specifications.
  • Spieldesign: neun Warengenres, Herstellungsketten, Expeditionen, deren Anforderungen mit dem Fortschritt wachsen, 52 Erfolge, die Upgrades schrittweise freischalten, und neun seltene legendäre Gegenstände als Endziel.
  • Automatisierung mit Grenzen: angeheuerte Helfer (Vertraute, Lehrling, Verkaufsassistent, Produzenten) haben jeweils eine klare Aufgabe, sodass sie sich gegenseitig keine Ressourcen wegnehmen.
  • Balancing: Preise, Raten und Wahrscheinlichkeiten wurden durch iteratives Playtesting und das Feedback eines ersten externen Spielers abgestimmt.
  • Spielerlebnis: Offline-Einnahmen, ein Prototyp-Hinweis, dunkles und helles Design und ein Layout, das am Desktop und am Smartphone funktioniert.
  • Tests und Dokumentation: automatisierte Headless-Tests und Screenshot-Prüfungen vor jeder Veröffentlichung sowie ein Dev-Blog und ein Game-Design-Dokument, das so detailliert ist, dass sich die Spielschleife in einer anderen Sprache nachbauen lässt.
  • Entstehung: Es begann als lockere Vibe-Coding-Session, in die ich versehentlich hineingerutscht bin, und wurde dann zu einem Test meiner Game-Design-Fähigkeiten. Ich habe das Spiel entworfen, alle Regeln und Zahlen festgelegt und es getestet. Der Code wurde nach meinen Vorgaben mit KI-Unterstützung (Claude) geschrieben.

play on itch.ioauf itch.io spielen

Unwavering Wraith

Released on itch.io

Veröffentlicht auf itch.io

Turn-based, Final Fantasy-inspired roguelite across 100 floors, built in RPG Maker MV (JS). The engine supplies the editor and battle framework; the systems below are my own work.

Rundenbasiertes, von Final Fantasy inspiriertes Roguelite über 100 Etagen, entwickelt in RPG Maker MV (JS). Die Engine liefert Editor und rundenbasierten Kampf; die folgenden Systeme stammen von mir.

  • Procedural generation: RNG decides furniture placement, room type (fight, loot, event) and encounter rarity and difficulty, scaling with progress.
  • Roguelite loop: a global reset routine clears all persistent items and switches and restores the character.
  • Event-driven item and skill system: all effect logic is custom, using listener hooks that fire conditionally during combat or rooms, with manual state and variable management.
  • Balancing: values tuned through iterative playtesting with friends instead of automated tools.
  • Narrative and documentation: cutscenes, characters, hub, and an in-game dev room documenting design pillars, take-aways and compromises.
  • Prozedurale Generierung: Zufallslogik bestimmt Möbelplatzierung, Raumtyp (Kampf, Beute, Ereignis) sowie Seltenheit und Schwierigkeit der Begegnung, skalierend mit dem Fortschritt.
  • Roguelite-Schleife: Eine globale Reset-Routine löscht alle bisher generierten Gegenstände und Schalter und setzt den Charakter zurück.
  • Ereignisgesteuertes Item- und Skill-System: Sämtliche Effektlogik ist selbst geschrieben, mit Listener-Hooks, die bedingt im Kampf oder in Räumen ausgelöst werden, inklusive manueller Zustands- und Variablenverwaltung.
  • Balancing: Werte durch iteratives Playtesting mit Freunden statt mit automatischen Tools abgestimmt.
  • Story und Dokumentation: Zwischensequenzen, Charaktere, Hub und ein Entwicklerraum im Spiel, der Design-Grundsätze, Erkenntnisse und Kompromisse dokumentiert.
Screenshot of Unwavering Wrath Thumbnail
Engine limitations and my workaroundsEngine-Grenzen und meine Lösungswege
  • No loops or abstraction: repeated operations are hardcoded; loops were built with label and jump commands.
  • Conditional branches cannot be collapsed, which made the encounter-generation events hard to navigate.
  • Static database entries: enemy stats per difficulty were adjusted through status effects.
  • No debugger: variables were displayed through a temporary NPC and a text box before each playtest.
  • Keine Schleifen oder Abstraktion: Wiederholte Abläufe sind fest kodiert; Schleifen wurden mit Label- und Sprungbefehlen umgesetzt.
  • Bedingte Verzweigungen lassen sich nicht einklappen, was die Events zur Begegnungsgenerierung schwer navigierbar machte.
  • Statische Datenbankeinträge: Gegnerwerte je Schwierigkeit wurden über Statuseffekte angepasst.
  • Kein Debugger: Variablen wurden vor jedem Playtest über einen temporären NPC und eine Textbox angezeigt.

Play on itch.ioAuf itch.io spielen

About Me

Über Mich

  • Self-motivation and initiative: I plan, build, test, document and release projects on my own, from idea to publication.
  • Communication skills: Moving often while growing up taught me to adapt quickly to new people and settings. Studying a different subject at university added another perspective on problem solving. I collect feedback through playtesting and document decisions in writing.
  • Perseverance and problem solving: I work through long debugging sessions and build workarounds when tools fall short, for example loops without native loop support and variable inspection without a debugger.
  • Game development: I don't just enjoy playing games, I want to know how to build these game systems myself. For example, how Pokémon Red/Green utilized bit-plane splitting, delta encoding, and a tile-based engine to fit an entire game world and 151 monsters onto a tiny 512 KB cartridge.
  • Helpful and creative applications: I want to develop local applications and browser-based tools that serve a practical purpose.
  • Software with real-world use: I'm especially drawn to applied areas such as robotics and botany, where software controls or supports something tangible.
  • Eigeninitiative und Selbstständigkeit: Ich plane, entwickle, teste, dokumentiere und veröffentliche Projekte eigenständig, von der Idee bis zur Veröffentlichung.
  • Kommunikationsfähigkeit: Häufige Umzüge in meiner Kindheit haben mich gelehrt, mich schnell auf neue Menschen und Umgebungen einzustellen. Ein Studium in einem anderen Fach brachte eine weitere Perspektive auf Problemlösung mit. Feedback hole ich über Playtests ein, Entscheidungen halte ich schriftlich fest.
  • Durchhaltevermögen und Problemlösung: Ich arbeite mich auch durch langwierige Fehlersuchen und baue Workarounds, wenn Werkzeuge an Grenzen stoßen, etwa Schleifen ohne native Schleifenfunktion oder Variablenanzeige ohne Debugger.
  • Spieleentwicklung: Ich spiele nicht nur gern, sondern möchte wissen wie ich diese Spielsysteme selbst bauen kann, zum Beispiel wie Pokémon Rot/Grün mittels Bit-Ebenen-Splitting, Delta-Kodierung und einer Kachel-Engine eine komplette Spielwelt samt 151 Monstern auf einer winzigen 512-KB-Cartridge untergebracht hat.
  • Hilfreiche und kreative Anwendungen: Ich möchte lokale Anwendungen und browserbasierte Tools entwickeln, die einen praktischen Nutzen haben.
  • Software mit Praxisbezug: Besonders reizen mich angewandte Bereiche wie Robotik und Botanik, in denen Software etwas Greifbares steuert oder unterstützt.

Contact

Kontakt

Certificates and personal data are included in my application email. This page represents my first web build and hands-on experience with JavaScript. Constructive feedback or design suggestions for optimization are always appreciated!

Zeugnisse und persönliche Daten finden Sie in meiner Bewerbungs-E-Mail. Dieses Projekt ist meine erste eigenständig entwickelte Website und mein Einstieg in die Praxis mit JavaScript. Konstruktives Feedback und Optimierungsvorschläge sind jederzeit willkommen!

info.kschuetz@gmail.com

GitHub