Skip to main content

Gilles Chehade

I write and run systems software. I’m the author of OpenSMTPD, the mail server that ships in the OpenBSD base system, and CTO of Plakar, where I work on kloset, a content-addressable backup engine. poolp.org is where I write about what I build.

I also take short consulting engagements — architecture and code review, technical due diligence for funds and acquirers, mail infrastructure — through my practice, aljuna.tech. If you’ve read something here and want the same eyes on your system, that’s the door.

Welcome to you, 2013

·404 words·2 mins
YO! I know I should have posted a “Happy New Year” note earlier but you know how it is: new year eve’s aftermath, days to recover, work resumes, mood slacks, bleh.

OpenSMTPD: more features, more cleanup, more more

·1797 words·9 mins
OHAI, First of all, on a completely unrelated note, I’d like to emphasize that this blog post is being written from my text editor launched by a little shell and pushed to poolp using the Ocean API. I can be web2.0 from console and emacs, and that’s definitely worth a mention ;-)

News from the front

·890 words·5 mins
Almost a month since my last post… I know, I know. So I left my position at Scality two weeks ago. I had been there for a year and a half working on a very interesting and tricky project. I will miss my colleagues and the discussions we had on all kinds of topic, I hope them the best future and that we will be able to share beers again ;-)

OpenSMTPD: crypto_backend and encrypted queue

·414 words·2 mins
A few days ago, Charles committed the compress_backend API which allowed transparent deflation/inflation of envelopes and messages as they hit the queue. The compression code is executed before the queue_backend gets the data so that any queue_backend can benefit transparently from compression without having to add any code to handle it. Due to our design, this also means that if the queue_backend stores envelopes and messages remotely, then the compression will take place before sending and after fetching, the remote end only ever sees compressed data.