Systems software developer and embedded hardware engineer specializing in low-level C architectures, lightweight runtimes, high-performance embedded systems, and custom QuickJS bindings.
- shish — A minimalist POSIX-ish shell in C (~139 KB) built against
libowfatwithout standardstdio. Designed for resource-constrained containers, AI agent harnesses, and WebAssembly (.wasm) environments with fork-less execution and built-in core utilities. - qjs-lws — Native C bindings and server architecture bridging the QuickJS engine with
libwebsocketsto provide high-performance, lightweight web server and networking interfaces. - qjs-opencv — Computer vision bindings and super-resolution text processing pipelines for QuickJS powered by OpenCV ONNX models.
- qjs-modules — Collection of native C extension modules and runtime integrations for QuickJS.
- qjs-nanovg — NanoVG vector graphics bindings for QuickJS, enabling hardware-accelerated 2D rendering directly from JavaScript.
- qjs-ffi — libffi and
dlopenfor QuickJS: call C functions and pass JS callbacks without writing glue code, with generated bindings for cairo, SDL2, freetype, libcurl and more. - qjs-glfw — GLFW windowing and context management bindings for QuickJS.
- qjs-imgui — Dear ImGui bindings for QuickJS, mirroring the C++
ImGui::API for immediate-mode GUIs (typically driven by GLFW + OpenGL). - qjs-sound — Audio bindings for QuickJS built on PortAudio, LabSound and SoundTouch.
- qjs-debugger — A gdb-style source-level debugger for QuickJS, written in JavaScript, with a terminal REPL and a nanovg/glfw GUI frontend.
- ipe32 — The ind00r poly engine: a 32-bit polymorphic code engine in x86 assembly, with NASM, TASM and YASM builds.
The qjs-* projects are built against my QuickJS fork (branch cxx-designated): a CMake-ified qjs with a module search path and Koushik Dutta's debugger implementation for QuickJS (see also his VS Code debug adapter). It is required to build them.
- pictest — PIC firmware test bench and experiments.
- piclib — Small C drivers for PIC peripherals (ADC, comparator, 7-segment displays, DS18B20 and more).
- libpicp — Portable Microchip PIC library.
- USB-Stack — PIC16/PIC18 USB device stack with ping-pong buffering and endpoints 0–7.
- USB-uC — USB bootloader that makes a PIC appear as a thumb drive; program it by dragging and dropping a hex file.
- picstick_25k50 — PIC18F25K50 Pinguino-compatible USB stick.
- picstick_27j53 — PIC18F27J53 Pinguino-compatible USB stick.
- picstick_shield — Development shield PCB for the picstick.
- lc-meter — Inductance/capacitance meter using a PIC16F876A and a Nokia 3310 LCD.
- insider — INSIDER PIC tool: firmware, PCB and manual.
- an-tronics — Collection of analogue electronics circuits and PCBs (40106/4069 synth, 555 oscillator, all-band receiver and others).
- thomson-calculator — Calculator for Thomson's formula.
- chaosircd — IRC daemon built around runtime-reloadable modules: every client command, channel mode, user mode and flood check is a module.
- c-utils — C utility library and command-line tools built on libowfat, with containers such as ranges, string arrays and lists.
- sw-utils — Package management tools (
pkgadd,pkgrmand friends), originally the pkgutils from the CRUX Linux distribution, extended withlibswsh, a shell script library for platform abstraction. - ports — Ports repository based on sw-utils (heavily patched), originally from the CRUX Linux distribution.
- libweb — Collection of browser-side JavaScript libraries and helpers.
- scripts — Miscellaneous scripts.
- beatflower — Music visualisation plugin for xmms 1.2.x on Linux.
- Ba-dum-tss — Step sequencer for real-time synthesis of drums and bass.
I am available for remote contracting, engineering collaborations, and custom systems development.
- GitHub: rsenn
- Contact: [roman.l.senn@gmail.com]


