whoami

const PI =

PIERRE
IMHOFF

alias DCVLT=PI

Frontend Lead Developer · Algomancer @ c-o-e · Grand Est

I changed career at 30, and since spent 7 wonderful years moving from fullstack contracts through frontend lead roles, mostly in complex React systems. Currently building things at c-o-e and spending my free time on firmware retro engineering, complex audio tooling, or whatever rabbit hole opened up last weekend.

exp7+
roles05
regionFR-GES
> ls -la ./work// professional + personal
professional
companyroledescriptionstackperiod
c-o-eAlgomancer
Frontend Dev
Current position. Frontend development within a specialised team working across algorithmic and data-intensive banking and regulatory projects.React · TypeScript
Node.js · OpenShift
Feb 2023–
[now]
RedspherLead Developer
Marketplace
Lead developer on the Marketplace team. Technical overhaul, architectural decisions, React and Node development alongside team management.React · Node.js · PHPNov 2022
RedspherFrontend Dev
Digital team
Direct role at Redspher. Micro-frontend architecture using SingleSPA on a PHP backend.React · MUI · SCSS
SingleSPA · PHP
2021–2022
AdneomFrontend Dev
→ Redspher
Consulting contract at Redspher. Two years on the same product — React/MUI on a PHP backend, long enough to deeply care about the decisions and product.React · MUI · SCSS
PHP
2019–2021
AdneomFullstack Dev
→ Beelance
First development role. Fullstack work on a freelancing platform with a graph database backend, Good way to start, having to understand a complex system from day one.React · Node.js
GraphQL · Neo4J
Feb–Jul 2019
c-o-eFeb 2023– [now]
Algomancer · Frontend Dev
Frontend development within a specialised team working across algorithmic and data-intensive banking and regulatory projects.
React · TypeScript · Node.js · OpenShift
RedspherNov 2022
Lead Developer · Marketplace
Technical overhaul, architectural decisions, React and Node development alongside team management.
React · Node.js · PHP
Redspher2021–2022
Frontend Dev · Digital team
Micro-frontend architecture using SingleSPA on a PHP backend.
React · MUI · SCSS · SingleSPA · PHP
Adneom2019–2021
Frontend Dev → Redspher
Two years on the same product — React/MUI on a PHP backend, long enough to deeply care about the decisions.
React · MUI · SCSS · PHP
AdneomFeb–Jul 2019
Fullstack Dev → Beelance
First development role. Fullstack on a freelancing platform with a graph database backend.
React · Node.js · GraphQL · Neo4J
personal
namedescriptionstackstatusyear
umc1820-jack-routerJACK2 audio connection manager for Windows, C++ native bridge for jack_connect/disconnect. Docker for the React UI and Mosquitto broker. Home Assistant control over MQTT/HTTPS.C++ · Node.js · React
Docker · MQTT · WS
[ACTIVE]2024
thyboard-firmware-reReverse engineering encrypted firmware for the TheoryBoard THY333, an abandonware midi controller. Extracted the encryption key through static analysis in Ghidra and dynamic tracing in x64dbg, rebuilt it to add features.C · x86 ASM
Ghidra · x64dbg
[ACTIVE]2023
home-assistant-infraFull rebuild of the infra after a rogue update, QEMU/KVM with macvtap networking, DuckDNS, Let's Encrypt.Linux · QEMU/KVM
HA · MQTT
[LIVE]2023
midihub-routerCentralised MIDI routing across a large midi synths and controllers rig with Midihub as core hardware and Node.js/WebMIDI monitoring layer.Midihub · Node.js
WebMIDI · React
[DONE]2023
umc1820-jack-router2024
[ACTIVE]
JACK2 audio manager for Windows. C++ native bridge, Docker React UI, Home Assistant MQTT control.
C++ · Node.js · React · Docker · MQTT
thyboard-firmware-re2023
[ACTIVE]
Reverse engineering encrypted firmware for the TheoryBoard THY333. Extracted encryption key via Ghidra + x64dbg, rebuilt to add features.
C · x86 ASM · Ghidra · x64dbg
home-assistant-infra2023
[LIVE]
Full infra rebuild after a rogue update. QEMU/KVM, macvtap, DuckDNS, Let's Encrypt.
Linux · QEMU/KVM · HA · MQTT
midihub-router2023
[DONE]
Centralised MIDI routing across a large synth rig. Midihub as core hardware, Node.js/WebMIDI monitoring layer.
Midihub · Node.js · WebMIDI · React
> cat ./readme.md// who is this person

Before I wrote code for a living, I managed operations in tourism. Different world: logistics, guests, variable seasons. I was good at it, but knew this was not my calling. Then at 29, i joined 42's "Piscine" entry exam and from there I knew I wanted to build things.

Spent eight months at O'clock — 700 hours, intensive, accredited. Took my first development job in February 2019, worked through fullstack and frontend roles at Adneom and Redspher, eventually leading the Marketplace team. Now working as an Algomancer at c-o-e, a title I wished for and uphold with pride.

What I didn't anticipate when switching careers is how much the previous life would carry over: comfort with ambiguity, understanding a system from the outside before touching it, managing expectations. Different surface, same kind of challenges.

I pull toward boundaries: browser and native, software and hardware, spec and working system. The gap between those is where most of the real work - and fun lies.

outside the terminal
music productionhardware synthsguitar jazzelectrometal audio engineeringfractals mathematical modellinganalog horror open sourceCAD 3D printingart apple ecosystem
depth ×1.0
color

JULIA SET

escape-time fractal

z → z² + c · c = −0.7269 + 0.1889i

JULIA SET
depth ×1.0
color
scroll to zoom · drag to pan
> cat /etc/stack.conf// tools in rotation
> ./synth.run --sr=44100 // live browser instrument · keyboard · midi · sequencer
✕ close
PLAY SYNTH
LEARN SYNTHESIS

keyboard · midi · sequencer · guided mode available

~ nyquist: synthesis complete. well done.
// all systems nominal.
// click anywhere to close
← prev next → ⊞ full synth // reset
objective ✓ complete
// waveform
SAW100%
SINE
SQR
TRI
WT
MONO POLY UNI
// expression
press ×1.0
↳ amp
pb ±48st
cc74
FLT DRV
// active channels
active 0/32
vel 0%
ENV1 ENV2
A10ms
D200ms
S70%
R400ms
A10ms
D400ms
S0%
R400ms
12dB 24dB
cut8kHz
resQ1.4
// lfo
LFO1 LFO2 LFO3
SIN TRI SAW SQR LRZ RÖS
PCH FLT
rate2.0Hz
dep0%
SIN TRI SAW SQR LRZ RÖS
rate3.0Hz
dep0%
SIN TRI SAW SQR LRZ RÖS
rate5.0Hz
dep0%
// fx chain
vol50%
DRV MGL CMP CHR DLY VRB
TUBE SOFT FOLD ASYM
amt0%
tone7kHz
BITS FOLD DEC XOVR RING
depoff
CLN OPT BUS PNK
thr−24dB
rt4:1
atk5ms
rel180ms
mkp0dB
J1 J2 TRI ENS
rate0.5Hz
dep8ms
wet70%
STD PING TAPE GLCH
t300ms
fbk30%
wet20%
wid 30%
ROOM PLATE SPRING SHMR VOID
wet20%
size1.0×
damp8kHz
fbk35%
chain
settings // midi · engine · ui
midi
transpose 0st
vel curve
LIN LOG EXP FIX
pb range ±2st
midi ch
ALL 1 2 omni
engine
max voices
8 16 32 64
steal mode
OLD LOW BOT
mono prio
LAST HIGH LOW
tuning A=440
ui
scope
TIME FREQ BARS WF LISS OFF
cpu guard
ON OFF
mod.matrix // 9 sources · 17 destinations
BASIC MEDIUM ADVANCED
keyboard// piano · qwerty · iso
view
PIANO QWERTY ISO
HOLD oct− C3–C6 oct+ ⊘ panic
BND
MOD
shortcuts// keyboard · sequencer · global
keyboard / notes
Z–Mplay notes (row 1)
Q–Iplay notes (row 2)
Aoctave down
;octave up
[ ]pitch bend ↓ ↑
- =mod wheel ↓ ↑
sequencer
Spaceplay / stop
Rtoggle record
Deleteerase current step
Ctrl+Deleteclear all steps
← →prev / next step
global
Escpanic — all notes off
midi cc — fixed
CC 1modulation wheel
CC 64sustain pedal
CC 74timbre / MPE (configurable target)
CC 123all notes off
pitch bendpitch / MPE per-voice
midi cc — learnable
any CCright-click any mod matrix parameter to assign
filter cutrecommended: CC 71
filter resrecommended: CC 74
volumerecommended: CC 7
expressionrecommended: CC 11
sequencer// step · arpeggiator · bpm
ARP: OFF
UP DOWN RND CHORD
1/4 1/8 1/16 1/32
OCT
1 2 3 4
▶ PLAY ● REC ✕ STEP ⊠ CLR ALL
BPM 120
LEN
8 16 32 64
SCT 0ms
stopped · click PLAY or REC to start step 01/16
— no input —
 
 
midi:
PRESET ↓ save ↑ load
SEQ ↓ save ↑ load
z–m · q–i  |  oct± to transpose
> curl -I contact// establish connection
location
Grand Est, France