Engineer Onboarding at Nubank

How does Nubank onboard engineers so fast and so well, with such a different stack? Find more information in this article

You probably might have some curiosity about the engineer stack that we use here at Nubank. The Clojure language and the Datomic database are quite peculiar and unique. As human beings, our first impression is that we need to learn the stack before applying to Nubank, with the risk of being fired if we don’t deliver fast enough.

You don’t need to know anything about the stack of Nubank to work here.

However, Nubank truly doesn’t care if you know the stack or not, because we have an outstanding way of Onboarding the new Engineers, or Nuvinhos as we call it, to learn the technologies in the pace we desire, already immersed in Nubank’s context.

What is the Engineer Onboarding?

The word “onboarding” must be a bit confusing when you look at it for the first time, nevertheless it consists of a group of actions or processes that will help a newcomer to be integrated in a new scope. 

Onboarding is a group of processes to integrate people to a new scope.

In Nubank, we have a precise and constantly evolving definition of processes that we call onboarding, and now it has a great maturity level. We’re able to capacitate engineers of different levels and seniorities in short periods of time.

Moreover, in Nubank we don’t have only Engineer Onboarding for new hires, we also do it for engineers that are doing some lateral transfer, changing their teams, for example, and need to have a period to adapt and get used to that new business unit.

How does Onboarding happen for newcomers?

The Onboarding process starts on the very first day you arrive at Nubank. We don’t want and don’t even expect that you’re going to spend time working extra hours at your home learning our technologies, so we created a process that in most cases will make you comfortable enough to start doing things on your own in a nice period of time.

The period of onboarding varies from seniority level, as some engineers might need more time and others less time. Nevertheless, we always allow anyone to use the time they need to feel comfortable. In our vision of onboarding, we stipulate that an engineer will need around 3 months to start coding and building features on his own, with a good knowledge of the language and some context. And that in 6 to 9 months the engineer will be fully integrated to the technologies and team’s context.

The Onboarding

We have some phases on the onboarding:

  1. Nubank’s Overview: We always show everything about Nu, the structure, products, divisions and how we organize ourselves.
  2. Engineer’s Talk: We also have many presentations about everything that an engineer might have contact with, an overview of each important technology and processes.
  3. Self learn period: In which you are able to study the technologies by yourself, doing courses and reading documentations.
  4. Mob Sessions: Collective programming sessions to learn faster. We’ll be back to this topic soon.
  5. Business Sessions: We do have a general overview of Nubank’s Business, but this is mostly contained in the phase of Nubank’s overview. At this moment, we’ll learn about the business of the context we are going to be working in. So, you will learn about all the processes and metrics that your team you will be working on.
  6. Daily activities with the team itself.

All those phases normally happen in unison, as we think it’s too boring to deep dive in a single one, and it probably will only frustrate the new engineer instead of aggregating something.

And all those phases vary in time spent depending on the level of the engineer, but it will normally take at least 3 weeks. Normally, in those first 3 weeks you’re not really involved in the team’s activities yet, as you have many mandatory training sessions that are splitted in the phases mentioned above.

What makes the Onboarding process so effective and efficient?

There are two actions that in my opinion guarantee that the onboarding happens so fast and so well. The first is the before mentioned Mob Sessions, which is one of the phases, but also something that we rely on in our daily team activities at Nubank. The second is the buddy system, which assigns a person from your team to help you in your first 3 months.

Mob sessions

For those that haven’t heard about this outstanding technique, mob sessions are collective programming sessions to speed the development of a feature, the knowledge sharing and even learn programming languages itself. 

It’s quite similar to pair programming, but with more people involved. During onboarding we normally have Nuvinho’s focused Mob sessions, in which one of our engineers will bring a real task from its team to be done with the new engineers. The main idea with that is to make the newcomers to exercise logical thinking and learn with the consolidated engineer about how we organize our microservices and how to implement their ideas in Clojure.

Mob sessions are hands-on activities that put you in a real problem-solving situation.

During the whole session only the Nuvinhos will be coding, we do timed rounds of rotation, from 5-10 min, to keep everyone’s attention and participation. Furthermore, this is so effective, because you have hands-on activity in real situations, which facilitates the application of the knowledge acquired.

We really believe in this approach, and that’s why we use it in our routine as well. There are team’s that reserve spots during the week to code together, while there are others that prefer to keep it open and use it just to resolve critical tasks. Nevertheless, we see lots of gain in this action, as it helps the process of disseminating knowledge around everyone.

Buddies

The buddy will be the person that will be available to help you with any question. It’s always someone in the same chapter as our newcomer,, and the knowledge level of this person doesn’t really matter. We frequently have junior engineers being the buddies of senior ones, because what counts is normally the period of time that this person is at Nubank. So, normally your buddy will be working here for at least 6 months.

The buddy will be your go-to person to ask about technical issues, difficulties to set up something, get tips on how to make your life easier, know more about the business process and do as much pairings as you feel like it. So, it’s the designated person to bother at any time. We want to make sure that you won’t be stuck with a problem because you’re embarrassed of asking someone, so the job of the buddy is to be this flexible contact.

The buddy is a relevant activity here at Nubank, because it’s part of our principles of helping Nubank’s grow, growing people to help in our missions. This activity will be mandatory for 3 months and after that it will be optional if you want to keep doing it or not.

However, it’s something very important for us and that helps the newcomers to be easily integrated into the team and more comfortable.

Having said all that, Nubank does a great job onboarding engineers and we don’t expect that people know anything about our stack when applying for a position. We truly believe that the mindset and the logical thinking is much more important and relevant, and technology can always be learned. Furthermore, we hire people thinking in the long term, so the time of onboarding will bring us a return.