Loft’s Interviewing Data Contract (for Software Engineers)

Fabio Imada
Loft
Published in
4 min readSep 23, 2019

#BeALofter

We have done lots of interviews in this past year and we won’t be stopping anytime soon, in fact we’ll be scaling it! But as the traffic increases, we noticed the need to establish a contract for this short-period we have to get to know each other to optimize our exchange.

First, meet Loft! We’ve put down a lot of work to show you what we’ve been doing and where we’re going, here’s our resume:

And more specifically VNT, our team of Tech+Product+Design which I’m proud to part of:

We’ve talked about our hiring process in a previous post, so this time around we’ll touch on how you can prepare for Meeting Loft!
As mentioned in the beginning, this is not a study guide but an alignment so you can ready your facade for the interview. You have the substance, let’s settle on the form!

Before the interview

Review some Computer Science fundamentals:

Object-oriented programming: interfaces, inheritance, polymorphism, design patterns
Algorithm thinking: brute force, greedy, divide and conquer, recursion
Sorting: bubble, selection, merge, quick, heap
Computational complexity: Big-O
Data Structures: Lists, arrays, stacks, queues, trees, hash tables

Tech Screening

We’ll send a link to an online assessment tool which consists of a few coding questions, leetcode style.

Pay particular attention to the problem constraints, they’ll hint at the level of optimization expected. For example, when N upper limit is 1.000.000 (10⁶) and assuming ~1 nanosecond per iteration (1GHz), these would be the order of magnitude for the running time:
O(1): 0.001 μs ❤️
O(log N): 0.020 μs
O(N): 1 ms
O(N log N): 20ms
O(N²): 16.7 min
O(N!): ∞ ☠️

Which means that an upper limit of 10⁶ has to be solved with a N log N solution (same as the average complexity for sorting).

Finally, Meeting Loft!

Algorithm and Data Structures Interview

The interviewer will be assessing how you approach a coding problem, so getting to the optimal solution doesn’t imply nailing the interview.

Remember you’re not alone in the room and work with your interviewer, we want to get a glimpse of your thought process, in particular when find yourself looking for other ways. Try a few simple examples to make sure you got it right!

As mentioned before, we’ll expect you to know your big-O complexities and also the most common data structures operations. We’ve seen candidates using a list instead of a hash set to store visited nodes, turning a linear method quadratic. 😱

Finally, try to break your solution! Manage your time to have enough left at the end to go over your code, run a few test cases and fix any glaring bugs. Writing clean code always makes it easier to understand your algorithm, and identify potential bugs.

Domain specific interview

There’ll be another segment scoped to the job position (front-end, back-end, architecture). In all of them, mind your communication and make sure you’re solving the right problem.

Don’t be shy about asking questions to get clarity on the requirements and the scope, and always state your assumptions, we’ll let you know if they are not accurate. The problems are usually broad enough to give you the chance to show off your strengths, so do focus on your expertise area and talk about alternatives, pros and cons, and particular scenarios. We are eager to listen.

Be comfortable, you’re our guest!

It’s normal to feel anxious in an interview and we know it. There are still humans on the other side. We seek to provide you with a glimpse of our culture and workplace and hope you like it, even if we are not the best fit for each other at the moment!

Finally, follow the link to our open positions and join us!
https://jobs.lever.co/loft

--

--

Fabio Imada
Loft
Writer for

Between dreams and reality is the vault of your soul.