Gabriel Willemann


My name is Gabriel Willemann and I am a Software Developer.

I started programming in 2007, at 16, with batchs scripts and small pascal programs. My first job as Software Developer was in 2008 and if you want to know more about my experience, click here to see my linkedin.


JavaScript is my main skill. For JavaScript framework I've been working with Vue.js since 2017 and I really like it. If you see my profile on StackOverflow, you will see that I am very good with Vue.js.

I can also work with React.js, because it is very similar to Vue.js and I've good experience with JavaScript.

About CSS frameworks, sometimes I use Bootstrap or libraries based on Material Design like Vuetify. If necessary I can create styles with "Vanilla CSS".

In 2015 I learned Ruby on Rails and worked intensively with it between 2017 and 2019. At moment I still maintain some projects.

In 2020 I'm working more with Node.js and TypeScript, but I bring many concepts from the Ruby on Rails ecosystem.

I work since 2008 with PostgreSQL. I also worked with SQLite, MySQL, Oracle and SQL Server, but the PostgreSQL is my favorite relational database. I recently ran tests with MongoDB and I liked it.

Therefore my applications generally have:

  • Vue.js as JavaScript framework for frontend, but I can work with React.js.
  • Node.js or Ruby on Rails as framework for backend.
  • Nginx as HTTP server and load balancer.
  • PostgreSQL as relational database.
  • Typically, I host my apps on a VPS with Ubuntu Server. But I also really like the Jamstack architecture.
  • For CSS, it depends on the customer's need.
  • For mobile apps, I like to create Progressive Web Apps (my preference) or Quasar Apps.

Another important skill is that I'm self-taught. I like learn from documentations and read code from frameworks and libraries. If I have a challenge, my first step is to go to the official repository and get the documentation.

Contributions to Open Source Community

In addition, I also really like open source software and whenever possible I try to contribute to the community. You can also see my GitHub profile and my main repositories are:

  • sharkapi: Library built with TypeScript to create API (REST or GraphQL) importing metadata from ORM. Based on "Don't Repeat Yourself" principle.
  • vuepress-theme-material-free: Theme for Vuepress used in this blog.
  • my-car-came-from: Small app for information about license plates. Built with Quasar and can be run as a SPA or as Mobile App for Android.
  • fast-help: This repository contains guides and commands that I can't forget. Sometimes I use some tools or commands, but after months (or years) I forget some details.
  • mudese: My wife is a psychologist and I built a static website with NuxtJs for her.

There are others repositories on my GitHub, but they are examples, tests or forks for send pull requests.

I also have a profile in NPM, click here to see.

Another important contribution is that I help others on StackOverflow. I enjoy sharing knowledge and helping other software developers to grow.

My Personal Blog

The purpose of this blog is to share tips and my opinions on technologies. In addition, this is a way of helping the whole community.

As I was born in Brazil, I wrote the posts in Portuguese, but if you don't speak Portuguese I will do a summary.

My Articles About Vue.js

My Articles About Ruby

My Articles About Node.js

My Articles About React.js

My Articles About Linux Containers

My Articles About JavaScript

My Articles About Conferences that I Participated

My Articles About Clean Code

My Articles About Wordpress

My Articles About Redmine

Others Articles

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Martin Fowler