Renoir Boulanger

Renoir Boulanger

Mentor
Rising Codementor
US$11.00
For every 15 mins
ABOUT ME
Building as full-full stack since 2003 former W3C Team member
Building as full-full stack since 2003 former W3C Team member

Wanna see this on my site and how I'm leveraging native custom elements? Visit and view-source at renoirb.com/notes/2023-06-29-hello-mentee


Hello there! I'm Renoir, a self-taught software developer who’s been working in this field since 2002. Back then, it was known as the "Browser Wars," and I consider myself a survivor, a veteran from that era. Our main challenge at the time was ensuring that websites looked the same on every browser. While the basics remain unchanged, it has become much easier today, believe me!

Throughout my career, I have held various roles such as founder, sole proprietorship business owner, self-employed contractor, and consultant. I have had the opportunity to work with notable organizations including the W3C/MIT, Mozilla on MDN for Compatibility Tables, CAE (an aero simulation software manufacturer) for secure air-gapped deployment complexity, Walmart for deployment consistency, Exxon Mobil, and Ericsson Canada. Additionally, between 2002 and 2008, as well as from 2010 to 2013, I enabled design agencies to offer web services.

From 2002 to 2009, I hand-built over 150 websites. During this time, I became a fan of 'Object Oriented CSS' and the concept of making CSS reusable due to repeating the same patterns frequently. Since 2009, when I started designing pattern libraries, I have constantly contemplated the idea of cascading in CSS, where base styling is combined with themes. This approach eventually came to be known as "Style Guide," "Design Systems," or "UI Libraries." Over the years, I have worked with various frameworks and libraries such as MooTools, YUI, Backbone, Angular, Vue, React, Lit.dev, and FAST. Among them, Vue is my personal favorite due to its simplicity and native Web Components API.

In recent years, I have extensively explored programmatic frontend generation techniques, including Vue's render tree, Backend For Frontends (BFF), Web Components, and even "Microfrontends." My focus has been on finding innovative approaches to enable web applications to support multiple languages effectively. Additionally, I have dedicated time to understanding and implementing proper accessibility practices, as well as adopting techniques that ensure long-term maintainability.

Even before the term "full stack" was coined, I have always considered myself as one. Apart from web development, I also maintain a few Open-Source packages and have made contributions to projects like Nuxt.js, MediaWiki, Mozilla Firefox Accounts, and WebPlatform.org.

When I mention "Constantly Thinking about the Web," it’s just that I have this fascination about it and literally can’t stop thinking about it, how it works, and ideas of how to do things with it. My interest ranges from efficiently tracing Linux kernel services using technologies like MariaDB, Redis, Memcached, PHP, HHVM, Python, and ElasticSearch, to analyzing HTTP traffic, sometimes employing instrumentation techniques like MiTM, Proxy logger, and Varnish. I also delve into how web browsers handle XML/HTML/XSL in their "Object Model" (known as DOM) and how events are handled, as well as the intricate process of CSS painting and how to annotate HTML to add meaning, like Linked Data.

In terms of my personality, I must admit I am a bit quirky. I’m not the typical person, I’m rather energetic and imaginative. Even more so when it involves my passion. Be prepared for an exciting ride!

If you're interested, you can find my resume in JSONResume format on my website. It is available in different forms, including HTML, PDF, and Word, all derived from the same source. Feel free to take a look: Resume on my website, homepage, HTML version, PDF version, Word version.

Eastern Time (US & Canada) (-04:00)
Joined June 2023
EXPERTISE
4 years experience
Throughout my 15 years of experience in HTML/CSS development, I have utilized various frameworks and template systems such as YUI, Perl, ...
Throughout my 15 years of experience in HTML/CSS development, I have utilized various frameworks and template systems such as YUI, Perl, Front Page, Backbone, PHP 3 all the way to PHP 7, Symfony Twig, and Mustache. Among all the technologies I've worked with, Vue holds a special place in my heart, alongside the native DOM in the browser and Web Components. I have dedicated countless hours to studying Vue's codebase, starting from version 2 and progressing to the latest version, 3. Vue 3's code is remarkably simple, to the extent that even with my limited working memory, I can easily grasp it all. As a side note, one of my hobbies involves reading and comparing equivalencies between different frameworks. Vue remains my favorite framework due to its ability to write as template (Single File Component) as well as programmatic. I enjoy how this allows to focus on reusability of components, minimizing dependencies, the "functional" components, and the composition API. Given my experience with CSS, I possess the ability to seamlessly adapt any UI library, whether it's Material, Element UI, or Vuetify, to match the exact appearance of a legacy application.
21 years experience
Over the course of nearly 20 years, I have been involved in the construction of various websites and web applications using technologies ...
Over the course of nearly 20 years, I have been involved in the construction of various websites and web applications using technologies such as JavaScript, PHP, and Node.js. A key consideration throughout my work has been the separation and organization of code to facilitate reusability and maintenance in isolated components. One particular aspect that I consistently prioritize is effectively segregating the creation of HTML patterns from the data and services employed in managing them. This involves separating the data, language content, localization aspects (such as time zones and number formats), and view data (such as determining visibility based on user roles and privileges) from the HTML template patterns and loops. On numerous occasions, I have migrated content from databases, including platforms like WordPress and MediaWiki, into text files. Additionally, between 2003 and 2006, I developed my own CMS (Content Management System) and enterprise management solutions.
10 years experience
Monorepo, hundreds of packages, how to release them and bump version based on inter dependencies and domain. Publishing typings. Transpil...
Monorepo, hundreds of packages, how to release them and bump version based on inter dependencies and domain. Publishing typings. Transpiling to run from Internet Explorer 6 to last hour's Brave runtime. Testing and TDD all across. Making small packages and reuse. Yup. I must. My poor working memory can't do well, and can't survive the anxiety without all of this. I started writing my own JavaScript in 2004 and soon with the fresh and new jQuery. I've used YUI, MooTools until 2009. Stopped for a few years until 2014 when I learned Backbone. In 2017 I learned Vue.js and studied its internals for many months. Learned TypeScript in a few weeks in 2018 and published a few packages. We can find some of my packages online. See [Renoir’s *Particles*](https://gitlab.com/renoirb/renoirb-particles) and my ["Experiments" on GitHub](https://github.com/renoirb?tab=repositories&q=experiment)
10 years experience
Around 2009 I have been introduced to the idea of writing code to automate. Before that I would be writing blog posts in my own site, or...
Around 2009 I have been introduced to the idea of writing code to automate. Before that I would be writing blog posts in my own site, or corporate wiki to describe steps. Since then, I've always been automating and finding ways to only manage Linux and Web services from source code. After my 2013-2016 contract with the W3C/MIT, the project at W3C stopped receiving funding from sponsors (Facebook, Mozilla, Microsoft, HP, etc.). The W3C System team (people maintaining servers on w3.org, including serving those DTD since the nineties!) couldn't take over my server setup and the W3C is very serious about perpetuity (Archive.org is another!). So luckily for us, my deployment system that managed more than 20 VMs had self-healing systems in place. Some services that needed more work but couldn't fix were failing at unpredictable moments, and the system was noticing and restarting the services without any intervention. To achieve what I've just mentioned, I created my own Vagrant plugin and used it heavily to work locally. Deploying on production was just the millionth run of a precisely tuned choregraphy. This was before Docker was cool, later on I've introduced it as another "build output". With this setup, I could have exact replicat of production, with this it also allowed me to: - Write very efficient Varnish VCL configuration, - Make rock-solid MariaDB replication hot-backup with TLS encryption, - Distributed and replicated session storage and ElasticSearch cluster - Run services and "throw a wrench" and see how it recovers For PHP and JavaScript and TypeScript and Docker. It's all the same, different tools. I write code almost exclusively using TDD and with small modules. I wrote systems to do E2E testing, and continual testing and pipelines.
21 years experience
After my 2013-2016 contract with the W3C/MIT, the project at W3C stopped receiving funding from sponsors (Facebook, Mozilla, Microsoft, H...
After my 2013-2016 contract with the W3C/MIT, the project at W3C stopped receiving funding from sponsors (Facebook, Mozilla, Microsoft, HP, etc.). The W3C System team (people maintaining servers on w3.org, including serving those DTD since the nineties!) couldn't take over my server setup and the W3C is very serious about perpetuity (Archive.org is another!). So luckily for us, my deployment system that managed more than 20 VMs had self-healing systems in place. Some services that needed more work but couldn't fix were failing at unpredictable moments, and the system was noticing and restarting the services without any intervention. To achieve what I've just mentioned, I created my own Vagrant plugin and used it heavily to work locally. Deploying on production was just the millionth run of a precisely tuned choregraphy. This was before Docker was cool, later on I've introduced it as another "build output". With this setup, I could have exact replicat of production, with this it also allowed me to: - Write very efficient Varnish VCL configuration, - Make rock-solid MariaDB replication hot-backup with TLS encryption, - Distributed and replicated session storage and ElasticSearch cluster - Run services and "throw a wrench" and see how it recovers

REVIEWS FROM CLIENTS

Renoir's profile has been carefully vetted and approved as a Codementor. Connect with Renoir now, and leave a review for them once you're done!
SOCIAL PRESENCE
GitHub
htmlcsstherightway
A spinoff on the "the right way" idea to explain the HTML/CSS basics for the self-taught. Idea coming from https://github.com/h5bp/lazyweb-requests/issues/73
CSS
58
16
saltyvagrant-lampstack
Salt stack provisioned Vagrant Workspace to program in PHP. Objective of this workspace is to provide a quick and easy PHP development environment using same technologies as WebPlatform.org stack.
Scheme
5
0
Stack Overflow
569 Reputation
0
5
15
EMPLOYMENTS
Staff Software Developer (remote)
GoTo Inc.
2021-01-01-2022-04-01
As a “Staff Software Developer”, my role was to share contribute to my team and share what I’ve learned along the way. The Frontend...
As a “Staff Software Developer”, my role was to share contribute to my team and share what I’ve learned along the way. The Frontend team is following principles referred to as “Micro Frontends” where each team is independent in building their application vertical. For example, one team would be responsible maintaining an Address book application. In a “Micro Frontend,” we can have each team implement the business logic of their vertical, and rely on what will assemble their part with shared systems. The Shared system is what we call an “Application Shell,” in which we expose utilities to make API calls with the current session. The Shell is also responsible for loading parts of each “micro frontend” vertical based on events and routes. I was part of the team responsible for maintaining the Shell.
HTML/CSS
Jenkins
TypeScript
View more
HTML/CSS
Jenkins
TypeScript
Accessibility
Speech Recognition
Web Components
Jest
View more
Senior Full Stack Developer (remote)
RBC Royal Bank of Canada Inc.
2020-03-01-2020-12-01
Senior Full-Stack Front-End developer to the RBC Omni platform (Online Business Banking)
Senior Full-Stack Front-End developer to the RBC Omni platform (Online Business Banking)
HTML/CSS
Angular
Jenkins
View more
HTML/CSS
Angular
Jenkins
TypeScript
Accessibility
Jest
RxJS
View more
Senior Technical Consultant (Lead Frontend)
CGI Inc.
2017-05-01-2020-02-01
Worked as a Technical Lead as part of the Global Technology Operations’ own product for Multi-Cloud Management Platform called “Uni...
Worked as a Technical Lead as part of the Global Technology Operations’ own product for Multi-Cloud Management Platform called “Unify360”. The application is composed by many “micro-services” where each component has a specific task. For example; Authentication, Session validation, Forms, Rendering Views, etc. I was responsible and designed ways to describe views as data, and systems to navigate data-heavy “micro-services” and normalize so that everything comes back together. I leveraged principles of “Micro Frontends” and “Atomic Design” and implemented a “Design System” and the application’s specific to build visualization and of complex data and reports. The application was deployed in the USA, Europe and Canada, the Frontend were capable of properly displaying numbers and dates in all calendars, Time-Zones, and number systems, and was in more than 10 languages.
HTML/CSS
PHP
TypeScript
View more
HTML/CSS
PHP
TypeScript
Vagrant
GitLab
Koa.js
Vuex
Nuxt.js
Vuetify
Vue.js
View more
PROJECTS
Namminik, an inventory management Web Application
Groupe Informatique TechSolCom Inc.
2009
Contributed to Inventory management application (“Namminik”) as an internal R&D experiments to make a Web Application also have its nativ...
Contributed to Inventory management application (“Namminik”) as an internal R&D experiments to make a Web Application also have its native iOS client. (2009)
HTML/CSS
View more
HTML/CSS
View more
Beebox, a Continuous Integration Web Application managing Ant, Maven2, etc. on IBM WebSphere
Groupe Informatique TechSolCom Inc.
2007
Participated in building a proprietary CI server Web Application (“Beebox”) for IBM WebSphere that was intended to be a competito...
Participated in building a proprietary CI server Web Application (“Beebox”) for IBM WebSphere that was intended to be a competitor to Jenkins and Cruise Control of the time. (2007-2009)
HTML/CSS
jQuery
JavaScript
View more
HTML/CSS
jQuery
JavaScript
Apache struts
View more