██░ ██ ▒█████ █ ██ ██████ ▓█████ ▒█████ █████▒ ██████ ▄▄▄ ▄████▄ ██░ ██ ▄▄▄
▓██░ ██▒▒██▒ ██▒ ██ ▓██▒▒██ ▒ ▓█ ▀ ▒██▒ ██▒▓██ ▒ ▒██ ▒ ▒████▄ ▒██▀ ▀█ ▓██░ ██▒▒████▄
▒██▀▀██░▒██░ ██▒▓██ ▒██░░ ▓██▄ ▒███ ▒██░ ██▒▒████ ░ ░ ▓██▄ ▒██ ▀█▄ ▒▓█ ▄ ▒██▀▀██░▒██ ▀█▄
░▓█ ░██ ▒██ ██░▓▓█ ░██░ ▒ ██▒▒▓█ ▄ ▒██ ██░░▓█▒ ░ ▒ ██▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ░██▄▄▄▄██
░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██████▒▒░▒████▒ ░ ████▓▒░░▒█░ ▒██████▒▒ ▓█ ▓██▒▒ ▓███▀ ░░▓█▒░██▓ ▓█ ▓██▒
▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ ░ ▒░▒░▒░ ▒ ░ ▒ ▒▓▒ ▒ ░ ▒▒ ▓▒█░░ ░▒ ▒ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░
▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░▒ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░ ░▒ ░ ░ ▒ ▒▒ ░ ░ ▒ ▒ ░▒░ ░ ▒ ▒▒ ░
░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░░ ░ ░ ▒
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░
░hi, i'm sacha
I'm a software engineer in France. At work I take on the foundational jobs: framework migrations, faster tests and CI, performance, design systems. I measure before acting.
At home I build my own tools, from a web browser to a GUI toolkit, and I run them on my own homelab.

now building

wren
A small Windows browser where WebAssembly runs everything.
papier
A fast clipboard history, searched as you type.
gui_toolkit
A fast, native, immediate-mode GUI toolkit.
opencode_native
A native desktop client for opencode. Independent: not affiliated with the OpenCode team.
latest writing
- Abstraction is a loan
Every abstraction borrows against the machine. A narrow one pays for itself, a wide one that hides its cost does not. Composition shows everything and promises nothing more.
- Beware: Big Ideas Ahead
A good idea gets loose, becomes an identity, and detaches from the program. REST, objects, microservices and agile.
- The free man is constrained
"Man is born free; and everywhere he is in chains." Rousseau wrote it in 1762. It is the most quoted sentence of the Social Contract, and it hides the book. A few chapters later,...