Joining Loft as a Software Engineer

Bruno Assis
May 22, 2020 · 9 min read
Image for post
Image for post

If you're reading this, it means you're interested at joining Loft. Or you might be at least curious about it, right? That's amazing!

First of all, I have good news for you. We're hiring! And we'll probably keep hiring for a long time after I finish writing this post. 😉 We can't keep growing the way we do 🦄 if we stop hiring great engineers.

We believe that the selection process works both ways: it's a time we spend together so Loft can make sure you're the right person for us, but also for you to make sure that Loft is the place you want to be in.

To have a great match, both for you and for us, we have a thorough selection process. In this post I'll give you a quick overview of how it works and what you should expect if you want to be a Lofter.

Overall, the process is the same for all roles in the Software Engineering career. Depending on your specialization (e.g. backend, frontend, full stack…) there will be some differences here and there in some of the interviews, but the assessed points will be the same.

Even for people in the Management track, the process is pretty much the same, with hands-on technical exercises as well. We want people managers with great technical knowledge to help our engineers and our company grow faster.

Step 1: Applying

After applying, we'll reach out to you as soon as possible. 😄

Quick note: maybe you landed here in this post after already entering the process somehow — maybe one of our recruiters or someone in our leadership team contacted you via LinkedIn or WhatsApp. If that's the case, don't worry, you're already applied and can safely skip to Step 2.

Step 2: Online assessment

Image for post
Image for post

You'll receive an e-mail inviting you to an online challenge in the Codility platform — an online coding environment. It's like the IDE you know and love, but inside the browser.

In this challenge, you'll have from 45 to 120 minutes to solve 2-3 coding problems in varying difficulties. The time and the quantity of questions vary because we're always testing different formats and different questions. However, "more time" generally means "more complicated" questions.

After clicking "Start" in the platform, the clock starts ticking! ⏰ If the time is over, the code will be submitted as it is.

Make sure you reserve some time in your schedule, you're in a quiet place, you have good connection and enough battery to make every second count! Visiting the restroom before starting the clock is also not a bad idea. 😂

Pro tips

  • You can choose any language you want, from the Codility supported languages ("Fundamental Tasks" section). Pick the language you're most familiar with, we won't use the language as a selection criteria.
  • Read all the questions first to plan how much time you'll spend on each.
  • Codility will show you some test cases to validate your code, but it won't show many others. These hidden test cases will impact your score, so make sure your code covers corner cases.
  • Performance counts. Make sure your code performs good i.e. it has a good runtime complexity.

After completing the test, we'll reach out to you as soon as possible with your feedback. If you passed we'll also schedule the next step of the process, the In-person interviews.

Step 3: In-person interviews

Image for post
Image for post

In this step, we'll schedule with you some remote interviews, using Zoom. At the early stages of the company (about a year ago 😆) we used to do all these steps in-person but, now, mostly due to the social distancing caused by COVID-19, we're doing everything remotely.

Those interviews are:

  • 2 chats with our Leadership and People team to assess your background, your soft-skills and cultural fit with us. These chats take from 30 to 60 minutes each.
  • 3 technical whiteboards, taking from 45 to 60 minutes each.

Yeah, I know, that’s a lot; but I promise you’ll also have fun and meet awesome people during the process. 😄

Typically, you'll start with the technical interviews in one day and do the other interviews in another, but that’s not always the case. There are candidates who split the interviews in more days or start with the soft-skills interviews. That depends in the availability of everyone involved.

At the end of each of these interviews, you'll have 5 to 10 minutes to either take a break, grab a snack, go to the restroom, have some coffee; or to ask the interviewers about Loft or about themselves.

Some candidates feel awkward to not ask questions during break time, because they think they'll be seen as "not interested enough in Loft" but don't worry about that, use your break time as it fits you, we won't use "if you asked questions or not" as a selection criteria .

There are also candidates who don’t feel comfortable in asking the same questions to different people for the same reason, thinking they already "spent" a question with a different interviewer, but asking the same thing to different people might even be good to gather different points of view on the same subject!

Sometimes the interview will be conducted by a single person and sometimes by two people. The interviews with two people aren't harder (or easier 😝) than the ones conducted by a single person, it's simply a way for us to train other Lofters on how to conduct interviews, in a process called interview shadowing.

Cultural fit interviews

Bring real-life, specific and timely examples, not "generic" ones.

For example, suppose you remember a time where your manager, at your previous company, praised you for a project you delivered:

Tell it like this: "There was this time at company X, last year, where my manager told me I was doing a good job, because project Y that I delivered increased sales by 3% monthly". The situation is clear, your role in it is clear and the outcome is clear.

Don't tell it like this: "I always get good feedbacks from my managers, like in the latest projects my team delivered". This raises questions such as: how often is "always"? Which "managers" are those? Why are you receiving a good feedback? Which part of the delivery was owned by you?

Technical whiteboards

Image for post
Image for post

All technical interviews follow a "whiteboard" format, meaning that you'll have to write code, draft ideas and design systems in a… well… whiteboard.

The problems will start small and then grow up in complexity and difficulty as you solve them. Make sure to ask clarifying questions and to be aware of runtime and space complexity trade-offs; responsibility between components trade-offs and architectural trade-offs.

Whiteboard #1: Coding and Algorithms

One of the criteria we’ll use to assess your code is algorithmic analysis (e.g. runtime and space complexities, Big-O notation) and usage of data structures, so make sure you review those!

Again, use the language you're most familiar with, you won't be assessed by your choice of language, but you might be assessed in how good you know the chosen language.

Whiteboard #2: Code/Component Design

You might be asked to write some code to demonstrate some of the features of your application, but not in the same level of detail you did in the Coding and Algorithms interview.

Whiteboard #3: Architecture

Overall, in this interview you’ll be given an entire business situation to be solved using high-level components such as services and databases for Backend and pages, style and components for Frontend. The scope of it will be an entire business scenario. You'll be expected to evaluate and explain trade-offs and choose between different solutions.

Online tooling

For code, we normally use Codility or a simple Google Docs document. Use the tool in your favor. If it gives you syntax highlighting and compilation capabilities, use that to your advantage, such as using "print" statements to help you debug. On the other hand, if the tool doesn't give you that, you can expect more room to make mistakes, e.g., if you don't remember whether the method is called "length", "lenght" or "size", that's fine.

For the other interviews, we'll probably use some drawing tool, such as Miro or Don’t worry about doing a “pretty” drawing and don’t spend too much time drawing the perfect arrows and choosing the perfect graphical representation for your component. Making your point clear is important, but that will be achieved more by talking and explaining and less by “drawing the right 'database shape' instead of a 'square'”.

Pro tips

  • Come up with test cases for the given problems. When walking through your code, walk through the actual code that's written, not the one "in your mind". It's easy to mistakingly read/assume a loop as "i < size", even if it's written "i ≤ size".
  • Think out loudly. Interviews are conversations between you and the interviewers and sometimes the process is even more important than the end result. That said, it's always good to let the interviewers know what you're thinking. Describing possible solutions, possible ways of finding a solution, or even describing why you're stuck gives the interviewer a good overview on your thinking process and makes it easier for the interviewer to help you get unstuck.
  • You can also check this post with additional tips 😄

After completing all interviews, we'll meet together to compare notes and discuss how well you went in the process.

Typically, in the next week after interviewing, you'll receive an Offer letter if you passed the interviews. 🎉

If you didn't pass, that's not too bad also, you'll receive a feedback letter and you can try again after 3 months. 😉

Step 4: Welcome 🥳

Typical Tuesday at a Loft office

Congratulations, your hard work has paid off! 👏

For an overview of how your first weeks might be, take a look at this post: 30 Dias de Loft (in Portuguese).


Q: “Hey, the process seems really nice! But I have some questions…”

Q: “What’s the difference between a Tech Lead, a Software Engineering Lead and a Software Engineering Manager?”

  • Tech Lead is the person who leads a Squad technically, defining the technical strategy of it, writing code and promoting engineering quality among other Squads. This person doesn't do people management.
  • Software Engineering Lead is the person who manages one or two Squads. This person focuses in people management at a Squad-level. It's important to say that coding isn't part of this person daily job, even though we want leads who can code really well, as they'll have to mentor their teams and review or write code sporadically.
  • Software Engineering Manager is the person who manages Software Engineering Leads. This person focuses in people management at a Tribe-level.

Q: “I understand that you use TypeScript/Javascript/React/Python/{insert-anything-here} in your stack. Do I have to know it already to pass the interviews?”

Q: “Can I work 100% remote?”

Q: "I have another question which isn't covered in this FAQ. Who do I talk to?"

Or any other Lofter, really! 😄


Espaço para compartilhar o que acontece de inovação e…

Thanks to Loft and Carlos Eduardo

Bruno Assis

Written by

Contador de causos e historietas, escrivinhador de software e labrador humano. Minhas opiniões não refletem meu empregador, beleza?



Espaço para compartilhar o que acontece de inovação e tecnologia na Loft Confira nossas vagas:

Bruno Assis

Written by

Contador de causos e historietas, escrivinhador de software e labrador humano. Minhas opiniões não refletem meu empregador, beleza?



Espaço para compartilhar o que acontece de inovação e tecnologia na Loft Confira nossas vagas:

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

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