I am a 36 years old software development enthusiast and I have the chance to live from my passion. I spent the last 10 years improving my skills, learning new things and working on awesome projects.
Margny-lès-Compiègne is a nice small town surrounded by a wonderful forest, and very close to Paris.
As I love living here, I will only consider remote positions.
Map data ©OpenStreetMap contributors,CC-BY-SA
Imagery © Mapbox
I'm not a great programmer;
I'm just a good programmer with great habits.
Timeline
Lead UI engineerfinsit
Accounting solution
- Design systemImplementation of UI components extracted from our code-base to be able to integrate the group design-system, using today's standards technologies as CSS3 and web-components.
- Front-end developmentImprovement of the current architecture and implementation of new features.
- Finsit ConferenceImplementation of an in-house conference with both lectures and workshops to share knowledge among us, and provide an in-detail view of new technologies or new architectures we recently introduced.
- UI TeamCreation of a new UI team, defining new processes, new tools, and helping juniors to onboard.
Senior software engineerfinsit
Accounting solution
- Front-end developmentJoin the effort to bring new features in an easy-to-grasp way, while focusing on providing the best software architecture possible.
- Juniors tutoringExperimentation and implementation of processes to help juniors grow within finsit, both at a technical level and at a culture level.
- Design systemExtraction of an in-house design-system to help developers building user interfaces faster and in a more consistent way. First step to integrate the group design-system.
Lead full stack engineerCyberzen
Cybersecurity apps
- Full stack developmentDevelopment of in-house applications to audit companies security policies built upon a full Javascript stack. We use Express server-side, and React front-side to build modern applications.
- Digital transitionImplementation of tools to help companies to transition smoothly into the numeric world. We design solutions to accelerate companies growth and to convert their activities to use today's technologies and capabilities.
- Cybersecurity Android appDevelopment of an Android app using Kotlin to scan credit card and display informations stored on a contactless payment card.
- RemoteSetup of a remote-friendly environment as the first remote-employee of the company.
Senior front-end engineerWeezevent
Seated ticketing solution
- Seated ticketingDevelopment of a seated ticketing solution in multiple layers from raw map drawing using D3 to a complete sales workflow for final users. Attention was given to the design to allow multiple rendering solutions (a in-house solution in 2d as well as PACIFA for 3d rendering), but also to allow several parts of the application to plug onto the solution to add their own interactions.
- Front-end developmentIn charge of improving the overall javascript code and practices as well as bringing the latest of the front-end ecosystem to improve the quality of the code and the skills of other devs when it comes to Javascript.
- RemoteSetup of a remote-friendly environment as the first remote-employee of the company. Teaching of good-practices experienced over years good communication process, async meeting, useful scripts, etc.
Software EngineerFöretagsplatsen
Full-stack engineer, UX & UI
- Front-end developmentJavaScript development (ES5/ES6), client-side architecture, UX & UI design (Less/CSS, SVG icons). Unit testing is an important part of the development process, we are using Jasmine for JavaScript testing (through Karma).
- Backend developmentBackend in C#, using the MVP framework for REST API handling. The server fetches the data from a CouchDB database. We use NUnit on the server-side for unit testing.
- CI & DevOpsExperience with automated testing via TeamCity. Automatic deployment on Microsoft Azure using Ansible.
Research paperScience of Computer Programming
First Author
Publication of the article "Seamless Composition and Reuse of Customizable User Interfaces with Spec" by Benjamin Van Ryseghem, Stéphane Ducasse, Johan Fabry, in Science of Computer Programming Volume 96, Part 1
December 2014Scientific EngineerInria (RMoD)
Redesign of the Pharo Smalltalk IDE
- Responsible for the refactoring of the legacy "Morphic UI" framework.
- Implementation of Spec a UI-generation framework.
- Development of a fully-featured IDE solution for Pharo.
Software engineerFöretagsplatsen
Consulting
- Development of a new major release of the web application technical migration from a template-based server-side application to a component-based JavaScript single-page application.
- Development of a cloud-based document archive application à la Dropbox for accounting agencies.
Software engineerGoogle
Google Summer Of Code
Improvement of Spec decoupling the models from the UI framework for better extensibility.
June - August 2013Young EngineerInria (RMoD)
UI framework development
- Implementation of new UI widgets (in Morphic).
- Refactoring of the legacy UI codebase.
Computer Science Master Degree
2012 - 2013FacilitatorESUG
Head of the Student volunteer program
Coordination of the students and the well-being of the attendees at the 20th International Smalltalk Conference.
August 2012Research paperIWST '12
First Author
Publication of the article "A Framework for the Specification and Reuse of UIs and their Models" by Benjamin Van Ryseghem, Stéphane Ducasse, and Johan Fabry at IWST '12.
August 2012Young EngineerInria (RMoD)
UI framework development
Improvement of widgets and the development of a widgets generation framework.
July - August 2012Software engineerGoogle
Google Summer Of Code
Implementation the Traits support in Nautilus, the new default Pharo IDE I previously developed.
June - August 2012Bachelor Degree in Computer Science
2009 - 2012Highlights
Some highlights of FLOSS projects I developed or to which I was a core contributor
- As the author of numbro I had the opportunity to collaborate with a great variety of people and to provide a formatting solution that it downloaded more than 13 million times a year, supporting more than 60 cultures. It is used mainly by companies and embedded in multiple frameworks as the default tool for currency formatting.
- As a core maintainer of Pharo (an open source Smalltalk implementation), most of my Smalltalk projects have been integrated in the distribution. My other Smalltalk projects can be found on Smalltalkhub. Among those projects are the complete IDE solution, the main UI generation framework, a VCS solution, and a couple of widgets (tabs, circular menu, lists, etc.)
- git-linter is a node-based command line tool and a docker-based GitHub/Gitlab CI integration that lint git commit messages using project-defined rules à la eslint. The code is distributed under the GPL 3.0 license.
- SandGlass is an electron-based systray app used to track my working time. It provides a CLI for workflow integration and D3 based histograms of time per projects. The code is distributed under the GPL 3.0 license.
- Great Things Done is a keyboard-centric GTD application based on Electron, and implemented in Clojure/ClojureScript. The front-end uses Reagent (an adaptor to React in CLJS), and implements some interesting features like a fully encrypted file-based database, global shortcut with macOS integrations, or Dock icon support. The code is distributed under the EPL 1.0 license.
- ergotron is a hand-made custom keyboard I built from scratch. The firmware is based on the excellent ergodox-firmware by Ben Blazak. The firmware has been extended to support a lot more keys and LEDs, leading to a new hardware layout. The code is distributed under the MIT license.
Hobbies
A small glimpse at things I love to do during my spare time
- Cooking is where I spend most time out of work. I love to prepare a nice meal for my friends and I. I am always improving my skills by experimenting new recipes and cuisines. The fact that it requires to be focused and precise is a great way to free your mind.
- Bouldering is a very fun sport with an awesome community. Even though it is an individual sport, you are never alone, and people always offer hints and tips. It requires to always outperform yourself and be very focus which I find are providing great satisfaction.
- Gaming is most probably the hobby I practise for the longest time. It is really enjoyable to dive in a completely new universe, with whole new set of rules to learn, and see how your past experiences can help you mastering this new challenge. This apply to video games but also to board games or role playing games. And beside being fun, playing has always be a great way to learn and experiment.
- Miniatures painting is my new hobby, and probably the one I wanted to dive in for the longest time. I was always impressed by those showcases we can see in game shops, but never tried. When I got my 3d printer, I decided it was time to give it a try, and a couple of years later with 100+ mini painted I can definitely say I am hooked. It is quite magical to play boardgames with friends using only mini you spent hours painting.
My dream job
Great people to work with
We learn from our pairs and spend several hours a day with them. So having a good team spirit is mandatory. And a good team spirit comes from good team members.
Not just another brick in the wall
Everyone should matter and have the opportunity to impact on what they do. I am also strongly convinced that involved worker are more motivated and thus more productive.
Self-Organized
I strongly believe in self-organized people as well as in self-organized teams. Decisions taken by doers are a lot more motivating and reflects better the team capabilities. Even though a team my need a leader occasionally, team members should be trusted to find the best way to reach the defined goals.
Remote
Remote positions allow to gather best suited people together. Not only the ones that happen to be located close by. Also mixing cultures brings creativity and opens minds.
Skills
95%
OOP
70%
FP
85%
Web
90%
Agile
80%
Tools
More