Summary
Passionate about software development for nearly 15 years, I especially like programming backend and network applications. Starting by developing C/C++ softwares, now I like to use Erlang, functional programming language for which I have a particular fondness, because of its distributed and concurrent aspects. I understand the need to use tools to improve the quality of my work (eg. unit testing, code coverage, profiling, continuous integration, etc.) and to document it. I daily strive to learn new skills and improve on any I have already obtained.
For over 4 years, I'm actively involved in the development of Yaws, an open-source HTTP server written in Erlang. I'm sensitive to ideas promoted by the open-source development and I am proud to contribute to projets when possible. I owe the different communities that made free-software movement happen many of my knowledge.
Preferred job location: Paris and nearby or remotly.
Experiences
- Work as a full transparent proxy, in forward and reverse mode
- HTTP/HTTPS and SMTP filtering
- Active contribution to HAProxy, an open-source TCP/HTTP load-balancing proxy server:
- Development of the filter API
- Addition of the dynamic SSL certificates generation based on the SNI hostname
- Use HAproxy in place of Apache Traffic Server in Qualys WAF appliances
- Reuse the filter API developped for the Qualys secure gateway
- Allow HTTP requests/responses rewritting
- Active contribution to Yaws, an open-source HTTP server written in Erlang
- Official committer on the project since february 2012: many bug fixes and feature improvements
- Several Erlang modules for Ejabberd: geolocalized online presence, contacts and chats storage in Cassandra, an erlang bridge for Yaws implementing BOSH protocol (Bidirectional-streams Over Synchronous HTTP)
- A Sendmail/Postfix milter in pure Erlang to allow post by email on yakaz.com
- A PHP driver for Yaws using the PHP's SAPI (Server Application Programming Interface)
- A DNSBL server written in Erlang used to moderate posts/chats on yakaz.com: HTTP and SOCKS4/SOCKS5 open-proxy detection
- An Erlang application to send messages to a syslog daemon, using UDP sockets
- Reuse applications and development processes used on yakaz.com
- Erlang applcations for RabbitMQ:
- A scheduler for AMQP messages used to plan the date when a message should be delivered and the repetition of this task
- A generic and modular AMQP consumer
- Set up a Redis cluster
► Work on a PoC of a platform to allow user to run applications remotely on mobile devices:
- Based on the SPICE project, an open-source solution providing client access to remote machine display and device
- Add support of the H.264 and Opus codecs for, respectively, the video and audio streaming
- Development of a native client for Android, written in C++
- Development of a client for Chrome, written in C++ and using the Google's NaCL/PNaCl SDK
► Development of a geolocatiosation server in C using MaxMind's GeoIP database.
► Development of a daemon serving profile pictures:
- Data storage in MySQL
- Use FCGI protocol
- Use ImageMagick library to process profile pictures (resizing, cropping, blurring)
- Use a mnesia database as a distributed cache system
- Automatic detection of suspect behaviours by analyzing message flows, localizing users and tracking their sessions
► Development of an Erlang driver for Oracle using the OCI library (Oracle Call Interface)
► Work on a MySQL plugin to manipulate unicode strings.
► Development of several in-house tools to interface Erlang with Meetic's databases (MySQL and Oracle)
► Work on a in-house antispam software, written in C (heuristic rules based on regex, bayesian network, DNSBL, etc.)
► Development of an antivirus bridge in C and an SMTP milter for CriticalPath mail server.
► Development of a POP3/IMAP proxy in C++ to filter email boxes