Me
Hi there,
My name is Remy.
I am a Web Developper
Now you may ask, "What is a web developper?".
Well... A Web developper is someone who can skillfully code and design. We're not talking Art design here. I meant designing application architecture and components, API, process workflow, persistence layer, development and deployment flow including migration, test plans...
It's all about patterns anyway.
A developper invents stuff. He should push the limits of what's achievable and engineer solutions. Consider it like an ever-changing Rubik's cube. He is always up to date on his technical knowledge, and seeks to know more. Reading blogs, books, attending user groups and conferences really help.
- "So, he's a social type of guy?", you'll ask.
No, because most of his time is spent coding behind a computer screen.
Yes, let's make it clear.
Coding is not about writing HTML and browsing for jQuery plugins on internet. It's about building applications to solve a specific problem, or answer a particular need. It's about creating neat little pieces of code that do amazing stuff, and giving it to the Community. Which will in return contribute by helping and improving.
That's how it works.
I am a UI designer
A UI designer is an artist. He makes web sites look Beautiful!
The design process must balance technical functionality and visual elements to create a system that is not only operational but also usable and adaptable to changing user needs. [...]Wikipedia
- The input/output dimension (the look)
- The dialogue dimension (the feel)
- The technical or functional dimension (the access to tools and services)
- The organizational dimension (the communication and co-operation support)
I couldn't summarize this in a better way.
The cool thing about UI design, is that it applies to a wide variety of IT projects such as websites, mobile apps, softwares, and even games.
Pragmatically, he is responsible to deliver the mock ups that will be validated by the customer and taken as reference by the developpers.
He works closely with the UX designer to deliver the best usage and browsing experience to the customer.
I am a UX designer
How convenient.
"What's the difference with UI?", you say?
Whereas the UI designer makes a web page (look) appealing and (feel) organized, the UX designer makes it intuitive and comfortable. Consistency and predictability are the keys.
User experience (UX) involves a person's behaviors, attitudes, and emotions about using a particular product, system or service. User experience includes the practical, experiential, affective, meaningful and valuable aspects of human-computer interaction and product ownership. Wikipedia
A few years ago, UI/X design was considered as one profession: Web design. Today, with the growth in complexity of modern applications, designers tend to specialize in a sub-domain such as Interface or Experience design. I do both. And again, this is all about using and breaking patterns.
I am a Hacker
But probably not the kind of hacker you're thinking of.
Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. [...]
The basic difference is this: hackers build things, crackers break them. Eric Steven Raymond, the Hacker Attitude
Eric Steven has summarized the Hacker Attitude in these few mantras:
- The world is full of fascinating problems waiting to be solved.
- No problem should ever have to be solved twice.
- Boredom and drudgery are evil.
- Freedom is good.
- Attitude is no substitute for competence.
Now that may seem a lot for one single person but that my friend, is who I am.
Employments
Silanis - 2011 … today
![e-SignLive, powered by Silanis](images/91447f9b.company-esignlive.png)
Design UI, UX, and web Application architecture and components in a Continuous Integration environment.
Lead the front end team and provide accurate plannings, consolidate the development effort over several of the company's products and services. Learn, try, use or discard new technologies. Write unit and end-to-end tests, automate release procedures. Lead the migration effort from a Sinatra environment to a full client-side Angular web app. Create mocks and prototypes for feature validation, optimize API and website performance.
Babel - 2011
![Babel Media](images/763f0928.company-babelmedia.jpg)
Play through games and report issues.
QA English <--> French text and audio translations.
Follow rigorously customer compliance sheets.
Tested games on various platforms (solo and multiplayer):
- Steam
- Xbox 360 + Kinect
- PS3
- iPad
LG - 2010
![LG](images/6d9e763d.company-lg.gif)
Build an asset management and distribution internal tool, which keeps track of who is borrowing which prototype phone within the R&D team.
The tool also stores phones' specific hardware / software configuration and functionalities.
Phones are versionned too, mostly because prototypes at different stages of the production chain greatly vary in their specs.
Eurocopter - 2008
![Eurocopter, an EADS company](images/5feb6d05.company-eurocopter.jpg)
Build a software to help with reception of helicopter parts and stock management.
It is also used to help preparing and distributing various tools to the teams of mechanics on a daily basis.
Given the mechanical parts to assemble for a given day, a list of tools to put together is generated. This had to be prepared and brought to various workshops across the site every morning, before the mechanics started working.
Each item is scanned when handed back, and additional information about its condition is manually added to the system. The system also generates warnings when running low on specific pieces such as bolts, nuts, screws, etc.
Demos
Angular
Here's a small example of what I'm able to do with my latest toy.
You can play around safely with the colors, css rules will be generated for you. Although it's no use trying to clear all colors (as a gradient is defined by at least two colors), note how the app falls back to background-color and no styling at all.
Backbone
This demonstrates how to isolate a jquery plugin behind a Backbone View coupled to a Model in order to gain finer control on the output.
History length is limited to 5 entries by default. The History collection exposes methods to the View so that all history-related logic is done internally.
Note: I used a setTimeout to render the Backbone view outside of the Angular scope for the sake of simplicity (this page is entirely controlled by Angular). Don't try this at home!
(Firefox does not support filters in css)
jQuery/css
This is a jQuery plugin named demo.superHero, created for the occasion. If you click on the link, the plugin will execute, adding css classes in a javascript timeout loop.
The second part is entirely animated using CSS3. JQuery is only used to toggle class with a timeout to kick in the CSS animation.
Education
Master - UdeM, Ceri
- Image synthesis
Rendering techniques, image quilting and recomposition through sampling
- Machine learning
Text comprehension, typing prediction
- Optimization
Pathfinding, decision making
President of the student association (Avignon). Comics workshops. Photo and sketch blog.
License- Ceri
- Génie Mathématique et Informatique (GMI)
Voice recognition, network security basics, graph theory, neuronal networks, relational databases
President of the student association. Organizing ski trips. Help another association (R2T2) for the robotics cup of France.
BTS - Lycee Jean Lurçat
- Informatique et Réseaux pour les Industries et Services (IRIS)
Embedded systems
Skills
Team leader
I am in charge of migrating my current project to Angular. The amount of technical debt on this project makes it a very hard challenge, but I'll tell you my secret anyway: slow migration.
Although I have worked in a Scrum / Agile team for a couple of years, our team has found a compromise with the "pull" aspect of the Kanban approach. Mixing what works best for us from each methodology, we came up with our own workflow.
I have been operating with Trello and Jira for a while, but I recently came back to Redmine.
Quick Prototyping
Also called Rapid Application Development, Quick Prototyping is a technique I use for minor to medium feature design. It allows me to quickly hack the UI to instantly get a better idea of the look and feel of a feature once integrated. We can then play around live with the markup and css, and the prototype becomes the reference for future development.
However, it is does not play well when starting a project from scratch, as I find it too iterative.
UI/X Design
Because Quick Prototyping isn't enough for epic stories and monster features, and also because I'm a frustrated artist.
- Gimp
- Photoshop
- Illustrator
- Sketchbook pro
- NinjaMock
- BalsamiQ
It is worth mentioning that my favorite tool still is a pen and a big stack of stickies.
X Driven Development and QA
Where X could be one of either Behavior, Design, Feature or Test. As there is no "one for all" best practice, I recommend blending these techniques together, keeping in mind the following:
- BDD: how it should work
- DDD: what it should look like when it works
- FDD: what it should do
- TDD: it should work
Quality Assurance plays a different role in the development process, but it is far from being negligible. End-to-end testing and Integration testing comes after development is done, and often written by a separate team. Now with Karma and Protractor, these tests can be written by the same people that made the features. This requires more discipline of course, but the end result is a huge gain in development time and a simpler project stack that still works very well with Continuous Integration tools like Jenkins or Travis.
Optimization
Optimization can be applied to a lot of different domains. Productivity, algorithms, UI/X, automation, load balancing, gaming, cooking, filling up the truck when moving...
It is also a synonym for Refactoring, which is a known workflow to keep the code base clean and up to date.
Unlike my education classes where optimization was applied to complex algorithms, web development requires a different type of optimization. I learned it the hard way. Caching techniques, asset minification, local storage, web standards, sprites, css, feature detection, SEO, analytics, JSON and schemas, rest API's, session caching, database scripting, deployment, dependency management, page load vs versioning...
Welcome to the Web development world!
Mobile first
Lately, my attention was brought to hand-held devices.
These devices have a great variety of screen sizes, hardware configuration, and constraints caused by firmwares and browsers. Because of that and their nature of touch-devices, they require more effort in term of UI and UX design.
On the other hand, customers require us to be compatible with legacy browsers, which only support a limited feature set of the most modern browsers. It quickly becomes a real headache to accomodate both sides of the coin.
To solve these problems, I use mobile-first frameworks like the famous Bootstrap, or Ink.
Social
Yes I am. I read a lot of books and articles about the matter and meet a lot of people at conferences, meetups, hackathons, gamejams...
It would be a full-time job to keep up to date about everything I know, but fortunately the geekli.st and Stack Exchange communities (among other) make it easier for me. And I get to pick what's best tailored to my needs.
Tools
I have 10+ years of experience with Vim, which I use paired with Byobu. Also, I use Git every day. Yes, weekends included. Oh, and in case you didn't notice, I'm a Ubuntu type of guy.
Vim
![Vim](images/a4c91ebe.vim_logo.gif)
Vim isn't an editor designed to hold its users' hands. It is a tool, the use of which must be learned. vim.org
Byobu
![byobu](images/4162dce4.byobu.png)
Byobu is a GPLv3 open source text-based window manager and terminal multiplexer. [...] includes an enhanced profiles, convenient keybindings, configuration utilities, and toggle-able system status notifications... Dustin Kirkland
Git
![octocat](images/09b56f7b.octocat.jpg)
I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'. Linus Torvald
Yeoman
![Yeoman, Grunt, Bower Yeoman, Grunt, Bower](images/43714130.yeomangruntbower.gif)
Our workflow is comprised of three tools for improving your productivity and satisfaction when building a web app: yo (the scaffolding tool), grunt (the build tool) and bower (for package management). Yeoman
Ubuntu
![ubuntu](images/bb81f521.ubuntu_logo.png)
Computer is not a device anymore. It is an extension of your mind and your gateway to other people. Mark Shuttleworth
Activities
I attends many meetups, because I'm curious about many things! And it keeps growing.
JS-MONTREAL is a user group run by volunteers [...] where our members have a good time talking about programming, sharing their knowledge and meeting other passionate folks. js-montreal
ConFoo is a conference for web developers that has built a reputation as a prime destination for exploring new technologies, diving deeper into familiar topics, and experiencing the best of community and culture. awwwards Confoo
A workshop held by Microsoft and Woot studios across Canada. It was focusing on the new approach in the UI and UX of Windows 8 and Windows Phones.
woot studio
Game jam hosted by Technoculture, Art and Games (TAG), an interdisciplinary centre for research/creation in game studies and design, digital culture and interactive art based at Concordia University in Montréal.
TAG
A modified version of the PAMT training applied to IT industry.
Technocompetences
Contact
![Linked In](images/5ebf02bb.contact_linkedin_small.png)
Linked In
View my profile
![Github](images/befee956.contact_github_small.png)
Github
Fork me
![Tumblr](images/6930ead2.contact_tumblr_small.png)
Tumblr
View my blog
![Twitter](images/a26ebe28.contact_twitter_small.png)
Follow me
![Geekli.st](images/0849e105.contact_geeklist_small.png)
Geekli.st
Follow me
![Stack Overflow](images/a0cf1d88.contact_stackoverflow_small.png)
Stack Overflow
Ask me anything
You
So, what do you think about what's between You and Me?
I'd like to have myself clearly understood before it's too late. If you're looking for someone to maintain or develop yet-another-ecommerce website, don't even bother.
Also, you may have been looking for common keywords like javascript, nodeJS, jQuery, Bootstrap, HTML5, CSS3, ruby, php, apache, nginx, mongoDB, reddis, mysql, Jenkins... This is not relevant at this point. If I had to enumerate all the libraries I had worked with, this page would have been a long list of boring pain. So I kept it simple, heh. "A picture is worth a thousand words", isn't it?
Hell yeah.
I think you got it by now, I'm good at many things. But what makes me even better?
The inherent curiosity. The thrill of challenge. The love of accomplishment. And beers on fridays.
This page is purposely done outside of what you can find around the internet in terms of portfolio. It reflects my personality. Maybe it was a bad idea. Maybe not. You'll have to tell me.
I'm not done learning. Nobody is.
As a final note, I wanted to say thank you for reading all the way down. I made this website for you, not for me.