Charles Bridge, Prague — Photo by Anthony DELANOIX

On a Tuesday, 18th September 2018, I received an offer for a Javascript Developer position at Socialbakers in Prague, Czech Republic. I’d actually been in contact for a few months prior, and went through several steps before making a final decision. Here, I want to share my experience so it may enlighten you if you decide to pursue a similar path in your career.

There are multiple factors that make someone want to change their lives. The biggest motivators for change are pain and desire. Pain motivates change simply because evolution told us that pain is an indicator of something…


⚠️ WARNING ⚠️

This article contains spoilers about the movie Avengers: Infinity War. If you already watched it or don’t care about these things, you’re free to go ahead.

You should’ve gone for the head, Thor.

The upcoming movie Avengers: Endgame is one of the most anticipated movies of 2019. It’ll bring an end to the plot of Thanos and a conclusion to the war that’s being teased for almost a decade now.

The previous movie, Avengers: Infinity War, presented Thanos and his quest to obtain the Infinity Stones in order to achieve his ultimate goal: wipe out half of the sentient beings in the universe.

If you watched the…


Photo by Baim Hanif on Unsplash

There’s a lot of important topics to learn as a developer. Algorithms, data structures, programming languages, there’s too many to count. That’s before we start on programming languages. Go is trending right now. JavaScript is the most popular language of 2018. 3 billion devices run Java (since the 90’s apparently). It’s hard to pick a language when you don’t know what it’s used for.

This article isn’t about these topics, because these are often taught at computer science schools and similar courses. This article is about the tools and skills that aren’t taught at schools and will make a huge…


Woman using laptop computer besides person wearing hat. Unsplash

You’re a junior developer that recently landed on the JavaScript ecosystem. There’s so much going on that you have no idea where to start. Maybe try React? That library is cool, I should try it. Why isn’t this working?

One thing that I found is that being part of the ecosystem is the quickest way to understand it. That’s why in this article you’ll learn how to publish a npm package and get it working in your projects as fast as possible.

We’ll be using babel and webpack 4 to ship compact and idiomatic JavaScript code.

You can clone the…


O build quebrou, como faz?

No post anterior expliquei um pouco do processo criativo e a primeira solução por trás da jornada pela integração contínua. Dessa vez vou falar um pouco sobre a solução final que atendeu todas as expectativas, o Bitbucket Pipeline.

O Bitbucket é uma ferramenta da Atlassian semelhante ao Github, que cuida do versionamento de código da aplicação num repositório compartilhado, também conhecido como SCM. Um dos adicionais do Bitbucket é o Pipeline, uma ferramenta de integração contínua disponível por padrão em todos os planos.

Ferramentas similares existem em produtos do Github e Gitlab também.

O Pipeline

A ideia do Pipeline é extremamente simples…


Continuous Integration. Porque quem faz o build, tem pressa.

Antes de falar da jornada é relevante falar da motivação. A integração contínua, deploy contínuo ou o Bonde do deploy como a gente chama por aqui, é um tópico recorrente nas conversas da Engenharia. A mentalidade “Release early, release often” é um consenso da equipe, mas por conta da arquitetura atual ainda não é a regra. Muitos buscam de alguma forma facilitar o processo de deploy, e a equipe de SRE (System Reliability Engineer) trabalhou bastante para deixar a vida dos desenvolvedores mais fácil.

Nesta série de artigos vou contar um pouco do que eu consegui fazer para deixar a…


A common yet not trivial problem that any developer have encountered (or is yet to encounter) is counting elements. You have a dataset, and you want to count things inside it. How many kids in each grade at a school? How many items of each kind do you have in stock? How many pizzas of each flavor did you eat in your entire life?

How would you even retrieve this kind of data? Do you keep a diary for everytime you eat pizza?

There’s a bunch of ways to approach this problem, but let keep this simple for the sake…


ES6 introduced a new syntax for functions, the so-called Arrow Functions. They are more concise and usually a better way of describing functions. Let’s see how they work:

https://gist.github.com/vmarchesin/72e6cf8a6836ddcf1f06284b1d76164d

By default the arrow function is anonymous, so you need to assign it to a variable if you want to call it later. The same could be done using the function keyword.

Cool! But why should I use it? For starters, it looks better, doesn’t it? Take a look at how my code looks before and after using arrow functions.

https://gist.github.com/vmarchesin/df50cb8692918557379b54aa03cd3e05

Looks a lot better now! Take a good look and…


It’s been quite a while since React came out, and since then many changes were introduced. Some of those impact the React Component Lifecycle, so I figured it would be good for both veterans and newcomers to the framework to get a glimpse of how the most recent lifecycle methods works. If you already know what each method does, I hope this gives a better overview of the process.

This article is based on the most recent version of React, which is v16.4.2.

Vinicius Marchesin Araujo

Front-end developer and dolphin impersonator. Currently working as a JavaScript Developer at @Socialbakers in Prague. | https://vmarches.in

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store