Open to remote roles

I build APIs, integrations, and the tools around them.

Full-stack developer with seven years of experience — mostly backend, API, and integration work, plus a lot of tools I built because I needed them.

StreamPopFeaturedPrivate

StreamPop

A self-hosted toolkit for a Twitch stream.

Channel-point alerts, a chat overlay with 7TV, BTTV and FFZ emotes, a song-request player, and text-to-speech through ElevenLabs. Each overlay connects to one Express server over Socket.io, so the OBS sources update live without reloading.

NodeExpressSocket.io
anilook
Private

anilook

Find out where an anime is dubbed.

A command-line tool that checks whether an anime has a dub and in which language, by combining data from AniList and anisearch.

Python
RoseClipper
Private

RoseClipper

Find clip-worthy moments in Twitch VODs.

Scans a Twitch VOD for laughter with an audio model and returns the moments worth clipping, so you do not have to watch the whole thing back.

Python
01 / 11
7+
Years of experience
3
Years apprenticeship
20+
Projects shipped
JavaJava
SpringSpring
KotlinKotlin
TypeScriptTypeScript
VueVue
NuxtNuxt
ReactReact
NodeNode
PythonPython
RustRust
DockerDocker
KubernetesKubernetes
ArgoCDArgoCD
LinuxLinux
PostgreSQLPostgreSQL
RedisRedis
GitGit
JavaJava
SpringSpring
KotlinKotlin
TypeScriptTypeScript
VueVue
NuxtNuxt
ReactReact
NodeNode
PythonPython
RustRust
DockerDocker
KubernetesKubernetes
ArgoCDArgoCD
LinuxLinux
PostgreSQLPostgreSQL
RedisRedis
GitGit

Selected work

A selection of what I've built — most of it to solve a problem I had.

WarpedCommissions
Open source

WarpedCommissions

A daily-quest plugin for Minecraft.

NPCs hand out jobs that change daily. Finishing them raises your standing with each NPC, and because the NPCs have relationships with one another, working for one also earns favor with another. Daily streaks pay more, and delivery jobs lose value if you take damage on the way.

Java 21Gradle
github.com/xmorose/warpedcommissions
music-dl
Open source

music-dl

A command-line music downloader.

Give it a link and it downloads the track, tags it, and files it into an Artist/Album/Track folder for Navidrome. It picks the backend automatically — spotdl for Spotify, streamrip for Tidal, yt-dlp for the rest. It is what feeds Spindle.

Python
github.com/xmorose/music-dl
Minecraft Sound BrowserLive

Minecraft Sound Browser

Search and play every Minecraft sound.

A web app for searching and playing tens of thousands of Minecraft sounds across every version, with pitch shifting, mixing and filtering. Built to stay fast over a large dataset.

VueTailwind
minecraftsounds.com
MidasOpen source

Midas

MIDI to text and back, for language models.

Converts MIDI files into plain text a language model can read and edit, and back again — keeping tempo, time signatures and multiple tracks intact.

JavaScript
github.com/xmorose/midas
anilook
Private

anilook

Find out where an anime is dubbed.

A command-line tool that checks whether an anime has a dub and in which language, by combining data from AniList and anisearch.

Python
RoseClipper
Private

RoseClipper

Find clip-worthy moments in Twitch VODs.

Scans a Twitch VOD for laughter with an audio model and returns the moments worth clipping, so you do not have to watch the whole thing back.

Python
WarpedLavaFishing
Open source

WarpedLavaFishing

Fishing in lava for Minecraft.

Adds fishing in lava with the full vanilla mechanic — waiting, biting, reeling — and fires the normal fishing event so other plugins still work. Fishing hooks ignore velocity, so it moves the bobber with a hidden snowball instead.

Java 21
github.com/xmorose/WarpedLavaFishing
PrismaSprite
Open source

PrismaSprite

Recolor pixel sprites in the browser.

Drop in a sprite, pull out its palette, and remap the colors to make new versions. An AI helper can suggest a color mapping from a short description.

Vue 3TypeScript
github.com/xmorose/PrismaSprite

More, on request

Beyond these there's a larger body of private work — mostly custom game systems and client tooling. Happy to walk through any of it:

  • A custom mob-spawning engine with weighted spawn groups, virtual spawners and event-driven encounters.
  • A quest and codex system that tracks progress across a dozen objective types in persistent entity data, with glob-pattern targets and tiered rewards.
  • Multi-room dungeon instancing that replaced a paid commercial plugin.
  • Client-side game mods on a bleeding-edge, unobfuscated toolchain — including a terrain-culling renderer that hooks the vanilla and Sodium pipelines, and a per-server database of every storage container you've opened.
  • A reverse-engineering pipeline that reconstructs proprietary 3D models — geometry and animation — from a cached asset pack and live entities, back into an editable source file.

Skills

Backend

JavaJava
SpringSpring
KotlinKotlin
PythonPython
PostgreSQLPostgreSQL
MongoDBMongoDB
RedisRedis

Frontend

VueVue
NuxtNuxt
TypeScriptTypeScript
ReactReact
AngularAngular
TailwindTailwind

Infrastructure

DockerDocker
KubernetesKubernetes
ArgoCDArgoCD
LinuxLinux
GitGit

Testing & build

PlaywrightPlaywright
CypressCypress
MavenMaven
GradleGradle

The tools I use most. I pick up new ones as a project needs them.

About

Marvin Schwarz

I'm a full-stack developer with seven years of experience, after a three-year apprenticeship. I work across the stack, but I'm most at home in the backend — APIs, integrations, and the systems that tie everything together.

A lot of what I build started as something I needed myself. I run a Minecraft server that outgrew every plugin I could find, so I wrote my own — around thirty of them. I self-host my music, so I built a stats dashboard and a downloader to go with it. Most of the projects below came out of a problem I had.

I care about clean code, systems that keep running, and tools that do one job properly.

Get in touch

Open to remote roles — integration, API and backend work especially.

Whether you're hiring, want to collaborate, or just have a question, the inbox is always open.