I applied online. The process took 2 weeks.
The process is divided into several stages. The first one is that basic (remote) interview where they tell you a bit about the company and you talk about yourself, your experiences, and why you want to work there. They also take the opportunity to tell you what the whole process will be like and give you a technical challenge that must be solved in a functional language within a two-week deadline. After that, there is the in-person interview, where you basically present your solution from the previous phase and explain your design decisions. Finally, you spend a normal day at the company with your potential future team, or something like that. Although communication was clear, I had a very negative experience with the process.
In my case, I learned the functional language and solved the test in 1 week. Shortly after, we scheduled the in-person interview. I explained the details of my code to the interviewer, probably for him to make sure I didn't pay someone to answer the test for me. Eventually, he would ask questions or offer constructive criticism, showing new approaches and explaining the conventions they use. But, in all cases, he always added that this was the conventional way, that they didn't expect someone who had just learned the language to already know this, or that there was time to pick up those tricks. He also stressed several times: "but don't worry, this won't impact your evaluation."
Two days later, I receive the response. Rejected! The reason? The exact same ones the interviewer said wouldn't impact my evaluation. The worst part is that these reasons were strictly related to the code; it wasn't a matter of plagiarism, theoretical deficit, or something that could only be detected live. Given that a development team had already analyzed my code beforehand (the interviewer told me), I concluded that I had already been rejected even before arriving for that interview. After all, nothing I said in person could make the interviewer change his mind about my code. I couldn't get it out of my head that the interviewer already knew everything and, ironically, wasn't lying when he said nothing would impact my already-decided result. Couldn't they just have sent me the rejection email?
I kept wondering if this happens to everyone or if I was the only one made a fool of, wasting my time and money on a trip to Nubank for nothing. At the end of the interview, he even led me on a guided tour. Thinking in retrospect, it must be a tactic to leave candidates in awe of the company. Especially because the rejection email said not to give up and try again in the future. Hmm... I don't think so.
Have you ever worked with Haskell, Scala, Clojure, or another functional language?
The following metrics were computed from 10 interview experiences for the Nubank Software Engineer role in São Paulo, São Paulo.
Nubank's interview process for their Engenheiro De Software roles in São Paulo, São Paulo is very selective, failing most engineers who go through it.
Candidates reported having good feelings for Nubank's Software Engineer interview process in São Paulo, São Paulo.