paint-brush
These Coding Interview Questions Will Separate the Pros From the Amateursby@shcheglov
6,440 reads
6,440 reads

These Coding Interview Questions Will Separate the Pros From the Amateurs

by Viktor ShcheglovApril 18th, 2024
Read on Terminal Reader
Read this story w/o Javascript

Too Long; Didn't Read

Coding Interview Questions are designed to go beyond technical skills. They delve deeper into a developer's thought process, problem-solving approach, teamwork abilities, and other crucial qualities. These questions are not for the faint of heart. The questions are compiled by Coder.com's Coding Interview Questionnaire team.
featured image - These Coding Interview Questions Will Separate the Pros From the Amateurs
Viktor Shcheglov HackerNoon profile picture

Greetings, fellow developers!

Throughout my career, I've conducted over 100 interviews with developers of all levels, from junior devs to seasoned veterans. And you know what? In that time, I've crafted a set of 10 tricky questions that I pose to every new candidate.


Why? Well, it's simple: these questions allow me to go beyond merely assessing someone's technical skills. They delve deeper, into their thought process, problem-solving approach, teamwork abilities, and other crucial qualities.


Are you ready for this intellectual battle? Then brace yourselves, because these questions aren't for the faint of heart!


1. Preventing Concurrent Editing of Articles

Suppose you are implementing a journal editing system where editors can edit articles in the admin panel. How would you prevent two editors from simultaneously editing the same article and overwriting each other's changes?


2. Principles of Zero Downtime Deployment

What are the principles of zero downtime deployment, an approach that deploys an application without service downtime? How is this achieved?


3. Criticisms of Your Preferred Framework

Name aspects of your preferred framework that you dislike or that don't work the way you'd like. Explain how and where these issues arise and how they could be improved.


4. Handling Long-Running Cron Jobs

What could happen if your cron job, which runs every minute, starts taking more than one minute to execute? How can this be prevented?


5. Denormalizing Data in Databases

Have you ever encountered the need to denormalize data in a database? If so, what problem were you trying to solve, what challenges did you face, and how could it have been done better?


6. Mocking External Calls in Tests

If you write tests, how do you circumvent the issue of external calls made by the code you're testing? Consider the scenario where external calls are prohibited on CI (continuous integration). Why is this a good practice?


7. Synchronizing Email Changes with External Systems

Suppose your system implements email change functionality. However, the email is also stored in an external system, such as a payment processor, which sends emails to users (but users don't directly interact with it). How would you implement email synchronization with the external system?


8. Discovering Production Errors

How do you learn about errors that occur in production? Do you rely on user reports or have automated mechanisms in place?


9. Designing a Simple Chat Application

How would you design a simple chat application? You can ask the backend engineer about the backend part and the frontend engineer about the frontend part. There could be many branches in this conversation.


10. Isolating Tests in a Multi-User Environment

How is test isolation ensured when multiple tests run concurrently and access the database, potentially modifying it? If your framework doesn't provide isolation, how would you implement or improve it?


Additional Tips:

Encourage the candidate to elaborate on their thought process and reasoning behind their answers.

Assess their problem-solving skills, ability to think critically, and knowledge of relevant technologies.

Gauge their communication and collaboration skills throughout the interview.



This article was inspired by twitter @mokevnin