How to hack our backend engineering interviews

The steps you can take to hack our interviews and land a backend engineering role at Funding Societies.

Hai Le Gia
Technology @ Funding Societies | Modalku

--

Let me show you the tricks. Photo by Web Donut on Unsplash

As a staff engineer in Funding Societies | Modalku, I have had the opportunity to interview numerous people, for both senior and junior positions. Many of the interviews went very well. I can still remember the amazing moments when I actually said “wow”. One time, a candidate showed me how he used a one-line bash command to find all of the PNG files in a directory and convert them to JPEG format. He didn’t list bash on his CV, and I was expecting him to use his Python experience to come up with the solution. But yeah, it was quick!

However, not all the interviews have sparked this much joy. Some go so badly that I feel like we did something wrong.

Now you may be asking, why does this guy want to let us hack the interview? I must confess that the title is a little bit of click-bait, but it’s also what I actually intend to do. I will tell you how to cheat us. If you read this article, and you take the time to learn how to beat our system, then congratulations, you’re actually the person we need! Further, by giving you these hacks, I actually just did myself a favour. I’d end up with loads of productive interview sessions, instead of mediocre ones.

Before we go on, I want to tell you some facts about our interview sessions:

  1. The interviewers want you to pass. We are there to help you, not to fail you. It takes us time to interview people and time is precious so we don’t want to waste it.
  2. We use data structure and algorithm questions for all software development positions (no matter whether the role is frontend, backend, or full-stack). We want to see your problem-solving skills, and how you communicate your ideas and solutions.
  3. We don’t use tricky questions. Many of the interview questions out there are not really useful or practical. We avoid those. Instead, we choose the questions that are relevant to what we do on a daily basis. This question is a good example, please check it out.
  4. During the interview sessions, you’re required to write code on a shared text editor. There is no code suggestion, so make sure to know the syntax of the language of your choice well.

The facts are out. Now let me tell you how to hack our interviews.

Impress us with your CV

You can search the Internet to find the hallmarks of a good CV. But at a minimum, your CV should highlight your achievements, and yours alone. We’re not as interested in your team, because we are not hiring them.

On top of that, give us some quantifiable numbers to entertain. We know that you helped to improve the performance of an API, but how much better? Is it 1% faster, or 300% faster?

Do yourself and us a favour. Do not include the skills that you have abandoned. It may seem tempting to fill your CV with a bunch of skills, but trust me when I say that it won’t be cool when we ask you questions about those skills, only to find out you do not remember them.

If you’re working on the resume, I recommend you to try this great website out. It comes with many designs for you to choose from. Hence, you just need to focus on building the content, paint us a great picture of you. And just for you to know, the site was built by one of your future colleagues here. 😎

Treat our interviews like dates

Would you go to a date unprepared? I think not and I believe you will try to be the best version of yourself. So, why don’t you do the same with interviews?

Many candidates asked me if they can use pseudo-code. Hmm, you’re supposed to show off your fluent coding skill and impress the interviewers. So, you tell me, should you use pseudo-code?

I’d recommend brushing up on the following concepts before your first d̶a̶t̶e̶ interview with us:

  1. Review common data structures: array, stack, queue, set, heap, and map are the musts. We also expect you to understand them in-depth. We won’t ask you to reimplement them, but you need to know why Map can do their operations on average O(1); or what a hash function is. These are the Lego blocks of Software development. The more you know them, the easier it will be for you to build great software.
  2. Review space and time complexity. We want to write fast and efficient code, so know how to speak the language of Big-O.
  3. Review common algorithms and strategies: brute force; divide and conquer; recursion; sorting; binary search; DFS; BFS; tree traversal; etc.

Useful Resources:

  1. https://algoexpert.io/
  2. https://leetcode.com/
  3. https://www.geeksforgeeks.org/

How to nail our database questions?

At Funding Societies | Modalku, we mainly use PostgreSQL. There are some components that use MongoDB/DynamoDB but they are exceptions. That’s why we love to see how you write optimised SQL queries. Here are the concepts you need to know:

  1. Basic SQL: WHEREvs HAVING; writing sub query; etc.
  2. How to join tables and their use cases.
  3. Indexing: single index vs composite index; partial index; etc.
  4. Database transactions and CRUD properties.

One of my favourite topics is the Isolation Level. It’s very challenging, and understanding them can help you to prevent a lot of data consistency errors. Hence, I recommend you check it out. I always have a local PostgreSQL Docker running and psql is my friend.

How to nail our system design questions?

If you’re applying for a backend, full-stack, or Engineering Manager role, then you need to know how to pass this round. We’re using a Microservices architecture, so this will be the main topic you should brush up on. To impress us in this session, you will need to grasp the concepts of:

  1. Divide and conquer, or how to split a big system into smaller components.
  2. Distributed caching.
  3. Partitioning (hash, range, consistent hashing, etc.).
  4. Microservice Patterns: service discovery; asynchronous message passing; circuit breaker; orchestration (such as the saga pattern); etc.
  5. You should also familiarise yourself with load balancers; API gateways; and event-driven systems.

Useful resources:

  1. https://github.com/donnemartin/system-design-primer
  2. https://www.educative.io/courses/grokking-the-system-design-interview
  3. https://www.algoexpert.io/systems/fundamentals

Final words

We know and appreciate that technical interviews are tough and exhausting. It’s a big investment for both you and the company. At Funding Societies | Modalku, we want our candidates to have the best experience by making our process and expectations transparent. As I said above, if you really take time mastering all the topics above, you will be a great candidate and we’d want you to be our colleague as well. Wishing you luck and hoping to meet you soon!

--

--