Software Engineer Backend Interview Questions

15,501 software engineer backend interview questions shared by candidates

First Interview - overall explanation about the company. Second interview - They had a nice assignment to test your debugging skills in Python. the interview invite will be called "Rick and morty" if it's the same drill. You have a few methods in a Google Colab which fetches data from the Rick and Morty API (https://rickandmortyapi.com/documentation/) the background story is: The code suddenly stopped working (nothing new has been pushed) and you need to figure out why. The code fetches data about characters from Rick and Morty in 2 different ways, and compares if the result is the same. it was not, and the issue was that one of the methods used an API that uses paging, and the number of pages to query was a constant - so not all of the characters were fetched (the site had about 42 pages, while we only fetched data for 30 pages). I'm assuming they can change the issue, so here are the key principles I suggest going over: 1. Talk about the API documentation - you'll need to view it in order to see which field contains the count of characters in the given request 2. log method calls before and after execution using fstring (The interviewer thought I did not know Python because my go-to wasn't fstring) 3. The code is relatively short - i suggest you to go over the entire code before running it. I would have caught the fixed amount of pages right away 4. do it FAST, as the feedback I got was that I wasn't fast enough. here's the code: import requests BASE_URL = f'https://rickandmortyapi.com/api/character/' # https://rickandmortyapi.com/documentation def get_page(number): str_number = str(number) return requests.get(BASE_URL + '?page=' + str_number).json() def get_characters_total_number(): return get_page(1)['info']['count'] def get_all_characters(): pages_number = 30 characters = [] for page_index in range(1,pages_number+1): response = get_page(page_index)['results'] for character in response: characters.append(character['name']) return characters def verify_number_of_characters(characters): if len(characters) == get_characters_total_number(): print('all good') else: raise 'There are missing characters' def verify_number_of_characters_with_bold(characters): # please write properly print('________________________________________________') verify_number_of_characters(characters) print('________________________________________________') def insert_to_db(data): #_______starting doing something_______ # this is a wrapper method that replicate insertion to database # but for the exercise, we just print. print(data) #_______ended doing something__________ def verify_number_of_characters_with_bold_and_timer(characters): verify_number_of_characters_with_bold(characters) print(f'the fetching took:{duration} sec') if __name__ == '__main__': duration = None characters = get_all_characters() for character in characters: insert_to_db(character) verify_number_of_characters_with_bold_and_timer(characters)
Oct 7, 2024

First Interview - overall explanation about the company. Second interview - They had a nice assignment to test your debugging skills in Python. the interview invite will be called "Rick and morty" if it's the same drill. You have a few methods in a Google Colab which fetches data from the Rick and Morty API (https://rickandmortyapi.com/documentation/) the background story is: The code suddenly stopped working (nothing new has been pushed) and you need to figure out why. The code fetches data about characters from Rick and Morty in 2 different ways, and compares if the result is the same. it was not, and the issue was that one of the methods used an API that uses paging, and the number of pages to query was a constant - so not all of the characters were fetched (the site had about 42 pages, while we only fetched data for 30 pages). I'm assuming they can change the issue, so here are the key principles I suggest going over: 1. Talk about the API documentation - you'll need to view it in order to see which field contains the count of characters in the given request 2. log method calls before and after execution using fstring (The interviewer thought I did not know Python because my go-to wasn't fstring) 3. The code is relatively short - i suggest you to go over the entire code before running it. I would have caught the fixed amount of pages right away 4. do it FAST, as the feedback I got was that I wasn't fast enough. here's the code: import requests BASE_URL = f'https://rickandmortyapi.com/api/character/' # https://rickandmortyapi.com/documentation def get_page(number): str_number = str(number) return requests.get(BASE_URL + '?page=' + str_number).json() def get_characters_total_number(): return get_page(1)['info']['count'] def get_all_characters(): pages_number = 30 characters = [] for page_index in range(1,pages_number+1): response = get_page(page_index)['results'] for character in response: characters.append(character['name']) return characters def verify_number_of_characters(characters): if len(characters) == get_characters_total_number(): print('all good') else: raise 'There are missing characters' def verify_number_of_characters_with_bold(characters): # please write properly print('________________________________________________') verify_number_of_characters(characters) print('________________________________________________') def insert_to_db(data): #_______starting doing something_______ # this is a wrapper method that replicate insertion to database # but for the exercise, we just print. print(data) #_______ended doing something__________ def verify_number_of_characters_with_bold_and_timer(characters): verify_number_of_characters_with_bold(characters) print(f'the fetching took:{duration} sec') if __name__ == '__main__': duration = None characters = get_all_characters() for character in characters: insert_to_db(character) verify_number_of_characters_with_bold_and_timer(characters)

Viewing 2071 - 2080 interview questions

Glassdoor has 15,501 interview questions and reports from Software engineer backend interviews. Prepare for your interview. Get hired. Love your job.