3

I have noticed lately that a lot of companies have dropped the Leetcode-style interview questions from their interview process. Instead, they have "real world" in-person coding exercises that are supposed to simulate things I would see on-the-job. As a back-end engineer, this could mean all sorts of things.

I have one such interview coming up, and all they told me is that no outside tech/frameworks are required. With Leetcode-eque challenges, there are a ton of online resources I can use for practice. But for these "real-world" challenges, I'm not sure what to expect or how to prepare for them?

9
  • 9
    Why do you think you need some extra prep? This is an interview to determine if you are fit for the job they need, so probabyl if you want to brush up on something, check what was asked for in the job ad.
    – Aida Paul
    Sep 30, 2023 at 16:29
  • 1
    If you need extra prep, it's probably not the right job.
    – keshlam
    Sep 30, 2023 at 20:08
  • There is no standardization of such tests. But they don't have any reason to want to do more than establish whether you can actually do the job you are applying for. "Leet" trickery isn't needed. Ability to understand the assignment (you can ask questions if anything is unclear), write and document a clean solution that is well suited to the assignment, and explain why you chose that approach and not others, are what's being tested. (If you're still using the term leet, i hope you're looking for your first job...)
    – keshlam
    Oct 1, 2023 at 15:05
  • For one, the most unrealistic coding assignments that have to be done in an unrealistic timeline.
    – Pete B.
    Oct 2, 2023 at 10:48
  • google has a video explaining how a real-world interview works and how it will go youtube.com/watch?v=XKu_SEDAykw
    – Elerium115
    Oct 3, 2023 at 8:55

5 Answers 5

2

A real-world scenario test may be intended to test your skills to implement a routine and practical work or product that you do at your daily job.

This test may include some simple designing, coding, and debugging a very simple product within the time constraint. They will also want you to explain your design to them to evaluate your communication skills. Even if you don't have time to implement the whole product, at least they want to see how well you could describe your work process or work flow to them.

I know that you are a backend engineer.

However, just for the sake of argument, suppose the candidate is a web designer and the job is about designing websites, the company may ask the candidate to build a simple website that has one or more of the followings:

  1. A simple GUI for users to input some comments,
  2. A text box to enter email address to sign up for updated news,
  3. Some text boxes to enter the credit card info (in a secured environment),
  4. Some text boxes that connect to a simple database for the customers to enter and retrieve their phone numbers and addresses, etc...

In addition, some companies may even want you to submit your code to GitHub and invite your coworkers to review your code to see how familiar you are with GitHub.


So, to prepare for this real-world scenario, you can go over the skills required at your daily job, and review the whole design, coding, review, test, and delivery processes that your job requires.

Their job description may give you a hint of what you want to focus on.

7

But for these "real-world" challenges, I'm not sure what to expect or how to prepare for them?

Brush up on whatever the interviewers or job description suggest you would see on the job.

If you are strong in the skills listed as requirements, you should be fine.

1

Any technical interview question, real-world or contrived puzzle, is meant to demonstrate the same thing: your ability to understand and solve technical problems. It is more important to ask the right questions than to have all the answers. In the real-world, work is collaborative; you get to talk to your colleagues. You also spend a lot of time checking documentation, testing and debugging your work.

In an interview, you may be given a simple feature to implement: add or modify an api or database query, something along those lines. Your task is to demonstrate your understanding of the problem and associated code. Remember that this is a demonstration. Be verbose. Ask questions. Think out loud. There will likely be aspects of the problem that extend beyond what you can solve in the interview setting (things like tests, documentation, dependencies, the unreasonable demands of the front-end team). Be sure to discuss these. If you are being given a "real-world" problem, solve it in the "real-world" way.

If you are not sure what to study, put some work into your own coding projects and make note of what problems you have and how you solve them. Work on your process and thoroughness.

This has been my experience at least, your mileage may vary.

1

I am answering from the perspective of an employer, when I used to do coding interviews on prospective candidates.

  1. I would sort the CVs in terms of the number of years experience required, qualifications, frequency of job changes and references.

  2. To this pile I would ask to write a small application with two tables, 3 fields each, a one to many relationship. They could use any DB, present at least two screens, three operations (add, delete, scroll), and have a navigator. This was a real world test, knowing that they could ask their friends or google for help.

    The solution was not the completeness of the project. In the following interview I wanted to know their reasons for making the choices they did. And I was looking for tidyness of code, why they did or did not use classes etc.

  3. Now the Live coding interview. I had two simple challenges for them.

    1. I gave them a small program with a functional description, about a page long. And asked them to find an obvious bug by perusal. It would be a simple error in if/then/else or the case statement. This tested their ability to understand the code.

    2. I asked them to write a program in 20 mins, For example it would be to sort the characters in a string in ascending order. I was looking for completeness, coding style etc. If the code actually ran, it was an extra point.

So, you can't study for it. Either you are a competent developer or you are not.

PS. I tested these exercises on the current developers to ensure that they could be achieved in the time frame and that they were the right level of difficulty.

In your case, the question or exercises will be different, but the focus is the same, Do you know how to program at a level you have indicated. As an employer, you have to do this, because so many candidates lie about their abilities, experiences and references.

0

If you're a back-end developer, look for:

  • Connect to a database and retrieve data. Expect some use of aggregation functions
  • Interact with a REST or SOAP web service.
  • Read and consume configuration data within an application from a configuration store.
  • Demonstrate the correct use of dependency injection.
  • Demonstrate your understanding of SOLID principles. Correctly segregate application layers for maintainability.
  • Correctly dispose of unmanaged resources as relates to database connections and otherwise.
  • Show an understanding of HTTP status codes and authentication schemes (OAuth, JWT).

These can apply regardless of platform.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .