When I was around 14 years old, during the Flash era, I once saw a program called Game Maker in an animation called Animator vs Animation II.
A friend and I got interested in creating games because we both enjoyed playing video games a lot and we thought it could be fun to try creating our owns. On top of that, my friend is really good at drawing. So we downloaded Game Maker and started playing around with examples and creating our own custom sprites (image set in games). Game Maker had a drag and drop editor that allowed us to create games without knowing anything about coding but you could also write code. I ended up putting a lot more time into it than my friend and started modifying pieces of code.
This code was written in Game Maker Language (GML), a C-like language. By playing around a lot, reading other people code, playing with it and writing my own, I ended up learning to code without opening a single book of programming, I learned to code without knowing it was called programming but because I did it on my own, it took me way longer than a regular person, around one year during my free time after school. From there on I kept on building many prototypes and some games.
Unfortunately, the platform owning Game Maker changed and most of my games are no longer available, the forum I used to publish things is also gone… I do have some videos but I’m missing a lot of cool experiments I had. At that time I loved playing with physics and visual effects. Here are some of the things I have done in the past:
Block Dude, a copy of a calculator puzzle video game
SciFight, a platformer shooter started by a guy called Mordi (which I was a big fan of!) who made most of the graphics and game engine and I added some new weapons, IA, online P2P gameplay
Kill da Ducks, another platformer shooter I where I was building pretty much everything and I was really proud of. Graphics, gameplay, game engine, etc
After that, I got into University, in France, where I studied Math and Computer Science. I learned C and C++ and started using that to create games, rewrote multiple times Kill da Ducks, never finished it but learned a lot. I did finish a game called Grav that was a copy of the Gravitron in a game called VVVVVV that I really liked:
I kept on learning after work and keeping up to date with the Web platform and more specifically, building Front end applications. One evening, I found out about Vue, a frontend framework, it was already starting to get popular (it had 6k starts at that time, it now has ~130k) but the community wasn’t still there, so I started building things with it and answering some issues on its Github repositories. Nowadays I mostly only build FrontEnd applications when working with clients but I still do some Node.js in my free time.
I often go to my client’s offices but I also work from home and I try to do it more and more. My workstation changed very recently because I got a new big monitor. I think it was about time. I’m very minimal when it comes to decorations so there isn’t much on my desktop but that could change in the future.
My desktop is in my living room, so I also have the kitchen on my left and my couch on the right. I use a dock station where I can plug in my 2015 13” Macbook pro to be more comfortable at home.
When I travel I just bring it with me and usually put it on my lap. One thing that isn’t visible from my setup is that I use a Programmer Dvorak layout. I learned it 4 years ago because I started to feel pain in my hands due to long days of programming with Vim, and apart from the numbers not being in order, I couldn’t be happier about it! It did took me about 2 months to be able to use it all day though. This is what the mapping looks like:
I don’t like the osx dock because it takes up space in my screen so I just hide it
For personal projects, I really love using Firebase to setup realtime databases. If I need static databases I usually go with MongoDB and mongoose. If I have to write server code, I always go with Node.js and usually express but I’m not attached to it.
It shouldn’t be a surprise but most of the repos I check are in vuejs organisation on Github. Those are
I’m excited about Typescript as a language, the upcoming Vue.js 3 and recent Browser APIs like USB and Bluetooth as well as WebAssembly.
I start with an idea, draw some screens on paper and start prototyping things on a real project. When I reach the core business of a project I draw diagrams and list functions to help me connect different files together and organize better. If I can write tests upfront I will always do it.
Right now I am really struggling to get off the necessary free time to learn new things but in my learning list I have Portuguese, SVGs, and Rust (the programming language).
The project I am most proud of is Kill da Ducks. I still have access to the original code source as well as other rewrites and some executables. The reason I am so proud of it is because I poured in many hours to do all the spriting, sound research (and sometimes design too) as well as the code.
I think it is really difficult to pinpoint a specific thing beginner developers should learn because developers work on different things and nowadays we have access to abstraction layers that allow us to develop faster without needing to understand the underlying layers. I would say that beginners shouldn’t conform with their first job, and shouldn’t be afraid to leave a job if they feel like they are not learning anymore. I would go even further and say it’s necessary to change companies and environment in development to better understand how things work and open our minds as well. Also, watch out for toxic environments that just consume you until you burn out.
Since I don’t work for a single company, I face different kinds of problems. The one I find the most is introducing tests in a codebase with no tests. It takes more than just coding because you have to teach other developers to write tests, to help them split (Web) Components (the building unit of web applications) and to show them that testing also helps with that. It takes patience and time to dive into other people’s code to find correct ways of testing an existing project with no tests.
Yeah! Because I have been working on Open Source projects and I want to keep working on it, I launched a Patreon.
That way, people who enjoy what I do can support me so I can spend less time working to pay the bills and use that time to maintain the open-source projects they use.