CINXE.COM
Fabien Meghazi | Senior Software Developer
<!DOCTYPE html> <html> <head> <title>Fabien Meghazi | Senior Software Developer</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="keywords" content="Fabien, Meghazi, Brussels, Bruxelles, Developer, Python, Javascript, Linux System Administrator" /> <meta name="description" content="" /> <link rel="stylesheet" type="text/css" href="css/yui-reset.css" media="all" /> <link rel="stylesheet" type="text/css" href="css/resume.css" media="all" /> <link rel="stylesheet" type="text/css" href="css/print.css" media="print, handheld" /> <link rel="stylesheet" type="text/css" href="css/pdf_export.css" media="screen" /> </head> <body> <div id="doc2" class="yui-t7"> <div id="inner"> <div id="hd"> <div class="yui-gc"> <div class="yui-u first"> <h1>Fabien Meghazi</h1> <h2>Senior Software Developer</h2> </div> <div class="yui-u contact-box"> <div class="contact-info"> <h3 class="no-print download-pdf"><a id="pdf" href="Fabien_Meghazi_resume-en.pdf">Download PDF</a></h3> <h3>Brussels - Belgium</h3> <h3><a href="https://github.com/amigrave" target="_blank">github.com/amigrave</a></h3> <h3>fabien[at]meghazi.be</h3> </div> </div> </div> </div> <div id="bd"> <div id="yui-main"> <div class="yui-b"> <div class="yui-gf"> <div class="yui-u first"> <h2>Profile</h2> </div> <div class="yui-u"> <p> For more than 20 years I have been doing software development in various forms.<br/> I am comfortable with back-end and front-end development as well as Unixes administration.<br/> I strive to build great products with a focus on user experience, code design and security.<br/> </p> <!-- <p style="margin-top: 1em"> --> <!-- My favorite technologies are <i>Python, Javascript, PostgreSQL, NodeJS, Nginx, Systemd and Debian</i>.<br/> --> <!-- </p> --> </div> </div> <div class="yui-gf"> <div class="yui-u first"> <h2>Experience</h2> </div> <div class="yui-u"> <div class="job"> <h2>Odoo</h2> <h3>Odoo.sh Tech Lead</h3> <h4>August 2016 - Present</h4> <p> Odoo is an open-core suite of business apps whose Community edition is licensed under the GNU LGPLv3. </p> <p> I came back at Odoo in order to build Odoo.sh ( <a href="https://www.odoo.sh">https://www.odoo.sh</a> ), a cloud hosting platform (PaaS) integrated to Github, providing continuous integration tools and flows for fast development iterations and automated deployment of Odoo based solutions. </p> <p> Starting my mission as Core Developer, I had the chance to work closely with both the CEO and the CTO on the design phase of the platform. Over time I endorsed the responsibility for the platform and took on additional roles such as Team Leader and Product Owner. </p> <p> I'm most proud of having developed an in-house container engine and orchestrator from scratch and also having contributed to the development of the most successful Odoo product in terms of growth. </p> <p> <div class="job-skills"> <span>Python</span> <span>Gevent</span> <span>Linux Namespaces</span> <span>Cgroups</span> <span>eBPF</span> <span>Systemd</span> <span>PostgreSQL</span> <span>Nginx</span> <span>Google Cloud Platform</span> <span>Odoo</span> </div> <br/> </p> </div> <div class="job"> <h2>BICS</h2> <h3>Senior Python Developer</h3> <h4>November 2014 - August 2016</h4> <p> BICS delivers best-in-class international wholesale solutions to any communication service provider worldwide. </p> <p> I joined the SMI (Systems Integration and Monitoring) team responsible of network monitoring and ETL pipelines. </p> <p> During my mission at BICS I had the opportunity to design and develop a generic and extensible solution in order to handle all the specific needs for future data pipelines and progressively replace the ETL scripts in place.<br/> At the core of the solution I implemented a YAML based DSL for modelling data pipelines, select compression methods, filename handling, ... as well as a custom hook system allowing to extend and overload the predefined behavior. The main challenge here was to keep the productivity of Python while handling a large amount of data. </p> <p> I also worked on the maintenance and the improvement of several legacy applications written in the Django framework and replaced one of them by a React single page application. </p> <p> <div class="job-skills"> <span>Python</span> <span>Paramiko</span> <span>Miniconda</span> <span>Django</span> <span>RRDtool</span> <span>Redis</span> <span>Javascript</span> <span>React.js</span> <span>Redhat</span> <span>Oracle</span> </div> <br/> </p> </div> <div class="job"> <h2>Odoo (Formerly OpenERP)</h2> <h3>R&D Developer</h3> <h4>May 2010 - November 2014</h4> <p> Odoo is an open source suite of business applications including Sales, CRM, CMS, Project management, Warehouse management, Manufacturing, Accounting and Human Resources. The client is written in JavaScript and the server in Python using PostgreSQL as DBMS. ( <a href="https://www.odoo.com">https://www.odoo.com</a> ) </p> <p> Here's a list of some of the projects/tasks I have achieved during my mission at Odoo: </p> <p> <b>Project: Creation and launch of a Saas platform for OpenERP v5</b> <!-- (Team: 2 developers) --> <ul class="job-highlight"> <li>Creation of a virtual machine in order to mock the Saas control center</li> <li>Adapted the Saas workflow鈥檚 data structure for easier email template management</li> <li>Creation of the CRM鈥檚 workflow entry points on the website</li> <li>Integration of the Saas campaign in the website</li> </ul> </p> <p> <b>Project: Release of OpenERP v6.0</b> <ul class="job-highlight"> <li>Bug fixing on the webclient</li> </ul> </p> <p> <b>Project: Development of a JavaScript web client designed to supplant the GTK client (released in OpenERP v6.1)</b> <!-- (Team: 3 developers) --> <ul class="job-highlight"> <li>Creation of a prototype with the CTO, including a base class system and a basic Json RPC layer</li> <li>Development of <a href="https://github.com/odoo/odoo/blob/14.0/addons/web/static/lib/qweb/qweb2.js" target="_blank"> QWeb2 </a> (the template engine used in Odoo since v6.1) </li> <li>Development of the Form and Kanban views</li> <li>Project management for the Calendar view</li> <li>Integration of the old client鈥檚 design and development of miscellaneous chrome parts</li> <li>Creation of a debug mode integrated to the UI</li> <li>Misc core development, bug fixing, code review</li> </ul> </p> <p> <b>Project: Upgrade of the Saas platform</b> <!-- (Team: 4 developers) --> <ul class="job-highlight"> <li>Implementation of OAuth 2.0 in OpenERP and the Saas platform</li> </ul> </p> <p> <b>Project: New openerp.com website for the v7 release</b> <!-- (Team: 2 developers, 1 designer, 1 copywriter) --> <ul class="job-highlight"> <li>Project management, follow up on assigned tasks, planning and coordination</li> <li>Setup of a staging web server</li> <li>Deployment</li> </ul> </p> <p> <b>Project: Creation of Odoo v8鈥檚 flagship CMS "Website Builder"</b> <!-- (Team: 4 developers) --> <ul class="job-highlight"> <li>Prototype: map DOM changes (@contenteditable) to server side views/models updates</li> <li>Architecture of the front-end's core library</li> <li> Framework development for the CMS: updates for WSGI dispatching and controllers routing, helpers, lazy loading, debug friendly http 500 error pages with broken templates recovery, python code auto reload, load views from disk, scaffolding, ... </li> <li>Multi language support</li> <li>Development of the assets bundle system (javascript/less/sass minification/compilation)</li> </ul> </p> <p> <b>NOTE:</b> Most of the code I've written for those projects can be found at the following url: <a href="https://github.com/odoo/odoo/commits/master?author=amigrave" target="_blank">https://github.com/odoo/odoo/commits/master?author=amigrave</a> <p> </p> <p> Some of the talks I've given during Odoo events are available on slideshare: <ul> <li><a href="http://www.slideshare.net/openobject/odoo-cms-performances-optimization" target="_blank">http://www.slideshare.net/openobject/odoo-cms-performances-optimization</a></li> <li><a href="http://www.slideshare.net/openobject/openerp-qweb-new-form-view-rendering-engine" target="_blank">http://www.slideshare.net/openobject/openerp-qweb-new-form-view-rendering-engine</a></li> </ul> </p> </p> <p> <div class="job-skills"> <span>Odoo</span> <span>Python</span> <span>Javascript</span> <span>PostgreSQL</span> <span>XML</span> <span>HTML5</span> <span>Linux</span> <span>Nginx</span> <span>Fabric</span> </div> <br/> </p> </div> <br/> <div class="job"> <h2>Hagrid</h2> <h3>Owner, IT Consultant, Software Developer, Linux System Administrator</h3> <h4>2013-present</h4> <p> Founded Hagrid sprl on January 2013 </p> <p> Software development and consultancy for various customers. <div class="job-skills"> <span>Python</span> <span>PostgreSQL</span> <span>Crystal</span> <span>Ruby</span> <span>NodeJS (w/fibers)</span> <span>Debian</span> </div> <br/> </p> </div> <!-- <div class="job"> --> <!-- <h2>AGR+</h2> --> <!-- <h3>Owner, Consultant, Software Architect,<br/>Linux System Administrator</h3> --> <!-- <h4>January 2007 - December 2012</h4> --> <!-- <p> --> <!-- Co-Founded AGR+ on January 2007. --> <!-- </p> --> <!-- <p> --> <!-- " We strive to write functional communication oriented applications with focus on usability --> <!-- and conformance to nowadays web standards. " --> <!-- </p> --> <!-- <p> --> <!-- Software development and consultancy for various customers.<!-- (Siemens, BPRC, SIBP) --> --> <!-- --> <!-- <div class="job-skills"> --> <!-- <span>Python</span> --> <!-- <span>Elixir (SQLAlchemy)</span> --> <!-- <span>Ruby</span> --> <!-- <span>Datamapper</span> --> <!-- <span>NodeJS</span> --> <!-- <span>Javascript/CoffeScript</span> --> <!-- <span>MySql</span> --> <!-- <span>Debian</span> --> <!-- </div> --> <!-- <br/> --> <!-- </p> --> <!-- </div> --> <!-- <div class="job page-break new-page"> --> <div class="job"> <h2>Siemens</h2> <h3>External Consultant & Software Developer</h3> <h4>June 2000 - May 2010</h4> <p> Software development and consultancy for <b>Siemens S.A.</b>, <b>Siemens Business Services</b>, <b>Fujitsu-Siemens Computers</b> and <b>Siemens Enterprise Network</b>. </p> <p> During my mission at Siemens, I've have been in charge of the analysis, the architecture, the implementation and the maintenance of a wide range of projects, including: <ul class="job-highlight"> <li>a jobsite</li> <li>an intranet</li> <li>a newsletter and mass mailing system with tracking and reporting</li> <li>a form generator used for internal and external surveys, registrations, ...</li> <li>a multi company Event Management System</li> <li>a Product Management System</li> <li>an Issue Tracking tool</li> <li>a Media Management Tool</li> <li>various Content Management Systems</li> <li>"20km de Bruxelles" real-time web results</li> </ul> <div class="job-skills"> <span>C#</span> <span>.NET</span> <span>ASP (JScript)</span> <span>Boo</span> <span>Javascript</span> <span>Microsoft SQL Server</span> <span>Oracle</span> <span>C (w/cygwin.dll)</span> <span>PHP</span> </div> <br/> </p> </div> <div class="job last"> <h2>Best of Publishing & Cromozone</h2> <h3>Web Application Developer</h3> <h4>September 1998 - June 2000</h4> <p> Best of Publishing is the publisher of monthly B2B publications with specific target audiences within the ICT sector. In 2000, Best of Publishing made a partnership with the Cromozone web agency. </p> <p> <ul class="job-highlight"> <li>Development of various Content Management Systems for websites and portals.</li> <li>Development of a Document Management System</li> <li>Administration of a GNU/Linux Debian server running a DNS (bind) and sendmail service.</li> <li>Layout creation and design of various portals and websites.</li> <li>Writing of a series of graphics tutorials for the "Publish" magazine.</li> <li>Development of <b>jobuniverse.be</b> Belgium IT Career Nr.1 Website (bought by StepStone in 2001).</li> </ul> <div class="job-skills"> <span>Coldfusion</span> <span>Javascript</span> <span>Microsoft Access</span> <span>Microsoft SQL Server</span> <span>IIS</span> <span>Debian GNU/Linux</span> <span>Photoshop</span> </div> <br/> </p> </div> <!-- <div class="job last"> --> <!-- <h2>Totalzoo</h2> --> <!-- <h3>Web Designer (Trainee-ship)</h3> --> <!-- <h4>Summer 1998</h4> --> <!-- <p> --> <!-- <ul class="job-highlight"> --> <!-- <li>Creation of a Flash animation.</li> --> <!-- <li>Development of a web e-cards mailing system for the "Couleur Caf茅" festival' website --> <!-- using Perl (CGI).</li> --> <!-- </ul> --> <!-- <div class="job-skills"> --> <!-- <span>Perl</span> --> <!-- <span>Bash</span> --> <!-- <span>Slackware Linux</span> --> <!-- <span>Photoshop</span> --> <!-- <span>Flash</span> --> <!-- </div> --> <!-- <br/> --> <!-- </p> --> <!-- </div> --> <!-- <div class="job last"> --> <!-- <h2>Self-Taught Computer Geek</h2> --> <!-- <h4>since the age of 8</h4> --> <!-- <p> --> <!-- <ul class="job-highlight"> --> <!-- <li>Wrote one small game and one intro in Basic on the MSX and Commodore 64</li> --> <!-- <li>Programmed many intros in assembler (MC68000) on the Commodore Amiga</li> --> <!-- <li>Coded some BBS ads in assembler (x86) on PC</li> --> <!-- <li>Wrote a few DOS tools in C and asm</li> --> <!-- <li>Hands on Linux with Slackware 3</li> --> <!-- <li>Learn networking by reading various internet protocol RFC's (TCP/IP, HTTP, SMTP, POP, IMAP, ...)</li> --> <!-- </ul> --> <!-- <br/> --> <!-- </p> --> <!-- </div> --> </div> </div> <div class="yui-gf"> <div class="yui-u first"> <h2>Languages</h2> </div> <div class="yui-u"> <ul class="job-highlight2"> <li><b>French :</b> native</li> <li><b>English :</b> professional working proficiency</li> </ul> </div> </div> <div class="yui-gf last"> <div class="yui-u first"> <h2>Education</h2> </div> <div class="yui-u"> <h2>I.A.T.A - Namur</h2> <h3>Computer graphics</h3> <br/> <h2>Institut du Sacr茅 Coeur - Burnot</h2> <h3>Secondary High School (option Economics)</h3> </div> </div> </div> </div> </div> <div id="ft"> <p> <a href="http://fabien.meghazi.be">http://fabien.meghazi.be</a> </p> </div> </div> </div> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-18958898-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </body> </html>