Available now for contract work

Vulkan engines, compilers, and everything below the framework.

I'm Benjamin Rosseaux — BeRo in the demoscene. I build renderers, game engines, physics engines, music software, JIT compilers, emulators, script engines, operating systems, network stacks and LLM inference from scratch. My sampler engine ships inside a widely used DAW, my Vulkan engine runs commercial games, and my rewrite of parts of the 1541 drive emulation is part of VICE.

Benjamin Rosseaux

Remote from Germany · English & German · Short engagements welcome

1,462
GitHub stars
24
Public projects
22
Years of public releases
2006
In the demoscene since

What you can hire me for

Eight ways to put me to work

Fixed scope or ongoing, remote, in English or German. If it is low-level, performance-critical, or nobody else wants to touch it — that is my part of the stack.

Engine & graphics programming

Vulkan renderers, GPU pipelines, shading and lighting, culling and draw submission, frame-time optimisation, asset pipelines. I have written two engines from nothing — an OpenGL one that shipped a released game, and the Vulkan one that commercial titles run on — so I know where real projects lose their milliseconds.

VulkanGLSL / SPIR-V PBRglTFProfiling

Public proof: PasVulkan · Kraft · Supraleiter · two published talks on rendering

Low-level & systems engineering

Compilers, virtual machines, emulators, parsers, protocol implementations, lock-free concurrency, SIMD optimisation — and, more recently, LLM inference written from the matrix multiply upwards. I have written an operating system from the boot sector up, scheduler and SMP included, and rewritten parts of the 1541 drive emulation in VICE down to the level of individual magnetic flux transitions. There is not much below this that I have not had my hands in.

CompilersJITLock-free SIMDEmulationLLM inference

Public proof: BESEN · PACC · FLRE · PasMP · PasRISCV · PasLLM · VICE (1541 emulation) · ExcantOS

Object Pascal & Delphi engineering

Large legacy Delphi codebases, Free Pascal migration, cross-compiler compatibility, and libraries that must behave identically on every target. It is a small world, and a good part of its open-source infrastructure has my name on it.

DelphiFree Pascal Legacy migrationCross-platform

Public proof: 20+ published Pascal libraries · CrossPascal · BESEN

C & C++ engineering

C where it has to link against anything and run everywhere, C++ where the codebase already is one. This is the layer at which the compiler stops protecting you: lifetimes by hand, alignment, strict aliasing, undefined behaviour that only surfaces under a different optimiser or a different target. I have written a C11 compiler and a source-to-source compiler that emits portable C — which means knowing the standard rather than the folklore.

C11C++Undefined behaviour PortabilityInterop

Public proof: PACC (C11 compiler) · CrossPascal (emits portable C) · VICE (1541 emulation, in C)

x86-16 / x86-32 / x86-64 assembler engineering

Hand-written assembler across three generations of the architecture: 16-bit real mode for boot sectors and the DOS era, 32-bit for size-coded intros where every byte is argued over, 64-bit for the inner loops that decide whether a frame fits. I have also written the assembler itself and a code generator that emits x86 directly, so I work on both sides of the instruction stream — writing it, and generating it.

x86-16x86-32x86-64 SIMDSize codingCodegen

Public proof: SASM (x86 assembler) · TINE boot loader · BeRoScript (JIT to native x86) · 64k intros with Farbrausch

Cross-platform applications — desktop and Android

Applications that are genuinely native on each system, rather than one toolkit painted everywhere. I keep a digital audio workstation running on Windows, macOS and Linux — Win32, Cocoa, GTK and Qt widget layers, GPU canvases on OpenGL, Direct2D and Metal, and audio through ASIO, WASAPI, CoreAudio, ALSA, PipeWire and JACK, every backend written by hand. Android is part of that too: apps of mine are published on Google Play, and my Vulkan engine carries its own Android path rather than a portability shim. I know which cross-platform abstractions hold and which leak, because I have had to replace the leaking ones.

Windows / macOS / LinuxAndroid Win32 / Cocoa / GTK / Qt OpenGL / Direct2D / MetalPackaging

Public proof: Klangknecht · BeRoTracker · micro64 · PasVulkan · Android apps on Google Play (SDrescan, Sleep Synthesizer and others)

Audio & DSP

Software synthesis, audio engines, DSP algorithms, mastering chains and real-time audio paths. I have written a SoundFont engine good enough to be licensed into a widely used DAW, a full DAW, a tracker that hosts VST and CLAP plugins, a browser-based mastering tool, a speech synthesis engine, and synthesizers small enough to fit inside a 64k intro.

SynthesisDSP Real-time audioSequencing

Public proof: Sobanth (licensed into a commercial DAW) · BeRoTracker · Klangknecht · Masterknecht · four released singles

Selected work

Twenty years of building things from scratch

No screenshots of things you cannot check. Almost every project below is public — open source, a released product, or a demoscene production with a date on it. Click through and look.

Commercial work

Code of mine that ships in other people's products

Licensed into a commercial DAW

My SoundFont 2 synthesis engine, Sobanth, powers the SoundFont player that a widely used DAW has shipped since 2022. Somebody else's flagship product, running my synthesis code, in front of a very large number of musicians.

Games on my own Vulkan engine

For the past few years my work has gone into commercial games built entirely on PasVulkan, together with a small team. The first is heading to release, and a full case study will appear here once it is announced.

My projects

Much of my work is free. Keeping it that way is not.

Engines, compilers, emulators, trackers, libraries — a large part of what you just scrolled past costs nothing to use, some of it under open-source licences. There is no company behind it and no funding: the maintenance, the bug reports, the port to every new compiler version, the answer to every mail — that is unpaid time. If something of mine saved you a few weeks, put something back.

Support my projects

Simplest for now: a short mail, and we sort out the channel together — direct links follow later.

About

Where the abstractions run out

I write code at the level where the abstractions stop helping. Not out of nostalgia — that is simply where the interesting problems live: the garbage collector, the register allocator, the memory barrier, the last two milliseconds of the frame.

Much of how I work comes from the demoscene. I am BeRo in Farbrausch, a group known for fitting entire audiovisual productions into 64 kilobytes. No engine, no libraries, every byte accounted for — it turned out to be very good training for everything that came afterwards.

I released my first JIT-compiling scripting language in 2004 and my first tracker the same year. Since then: an ECMAScript engine with a JIT, a C compiler with its own linker, a 3D physics engine, a Vulkan renderer, a half-cycle-exact C64 emulator, a RISC-V emulator that boots Linux, an operating system with its own boot loader and SMP scheduler, and an LLM inference engine. Along the way I rewrote parts of the 1541 floppy emulation in VICE — the reference Commodore emulator — to be exact down to the magnetic flux transitions, and designed the P64 image format that stores them.

I work remotely from Germany, in English or German. I document what I find, I say when something is harder than hoped rather than discovering it with you at the deadline, and I am comfortable being handed a codebase with no documentation and asked what is wrong with it.

Based in
Germany — working remotely, worldwide
Languages
German (native), English
Writes
Object Pascal / Delphi, C, C++, x86-32 & x86-64 Assembler, GLSL, JavaScript
Fields
Vulkan & GPU, compilers & VMs, real-time networking, concurrency, DSP, LLM inference
Demoscene
Farbrausch and Null OK, as BeRo — various released productions since 2006
Availability
Open for new work — short and long engagements

Contact

Tell me what is broken, or what needs building

Email is the fastest route. Write in English or German — whichever you prefer.

benjamin@rosseaux.com

I usually reply within one working day.

What helps me give you a useful answer:

  • What the software does, and roughly how large it is
  • Language, toolchain and target platforms
  • What is going wrong — or what needs to exist
  • Your timeframe, and the budget range you have in mind