
Backend
Basic Interview Q&A
1. Define the purpose of the back-end.
The back-end, also known as the server-side software, powers a website and app. It is responsible for storing and organizing data, handling user requests, and delivering content to the front-end.
2. Name the key back-end development responsibilities that you held in your previous job.
For the recruiter, this question helps in gauging if the candidate is fit for the company/role applied. Conversely, for the applicant this may help to get in the right role. Some key responsibilities applicants may mention include server improvements, database creation, etc.
3. Tell us about your experience working as a part of a team.
Back-end developers are required to work in a team. In answering the interview question, candidates should be able of giving a few examples of times when they worked in a group.
As a developer, you can mention any collaboration done with other developers in the past to achieve a goal and what tools they used to communicate with other team members.
4. Are you able to maintain task focus even in remote environments?
Here interviewers can know if the applicants are able to complete tasks on their own. For developers, they can describe the turnaround time for different tasks.
5. How do you overcome the challenges of time management and organizational skills as a remote developer?
This is an extension of the previous question. Here interviewers want to see that you are organized and can complete tasks on time. The tools you use, such as Slack, Excel sheets, and Calendar, could be mentioned. You could mention the tools you have been using to keep on track. This question reveals how seriously the interviewee takes remote work and whether they are willing to work on the daily challenges.
6. What assistance can we offer to help you perform your job efficiently?
As an interviewer, you may ask the candidates about the resources they might need to do the job efficiently (example- software access) to sense their approach to work. And, as a developer, you can talk about all that you consider necessary for working efficiently and effectively in remote environments.
7. Could you describe when you faced a challenge and how you overcame it?
This question tells the interviewer a great deal about the candidate. Here, developers can discuss a situation where a lack of a specific resource was a problem (example, you discovered a free online solution that helped you overcome the challenge). This question is designed to assess a developer's ability to think independently and their presence of mind.
8. Do you have a designated place for work in the home office?
Through this question, an interviewer can know if the candidate is actually serious about work and can be free of distractions. Here, a developer should try to assure the interviewer of the separate workspace and how it is free of distractions.
9. What are you most passionate about remote work?
Working remotely requires self-discipline. With this question an interviewer can know what inspires the developer to go remote. Here, developers can highlight the reasons such as living with parents if they are getting older, zero commute and work-life balance, having peace of mind while still being close to your family, etc.
10. As per your opinion, what are the top skills for remote working success?
A developer can outline skills such as task focus, time management, careful planning, and the ability to not be distracted. Also, they can mention skills like initiative and self-learning. At this point interviewers can dig in deep by asking how these skills contributed to their project success.
11. How do you prioritize your work when working remotely?
Here the interviewer can ascertain how working remotely, developers were able to access and work with systems such as Trello, Slack, and Asana. Here developers can mention how they prioritized work, maintained the workflow or any other systems to determine work status and assess outstanding tickets to reach goals on time.
12. What would you do if you were to resolve an intra-team conflict?
It is difficult to deal with office politics and team resentment, especially in remote teams. With this question, an interviewer can access the candidate's lead skills in a remote team. As a developer you can elaborate on how you find out the root cause of the problem, what perspective you took into account, and then the negotiation strategies.
13. What is the typical workflow to implement a new feature on the back-end?
The workflows used to implement features on the back-end may vary depending on what technology stack the company uses. A typical workflow would include discussing the feature with stakeholders, prototyping and designing the feature, writing code, and quality assurance (QA).
The back-end developer will usually work with the front-end developer to ensure data is properly transmitted between the client and server. It is also important to make sure that new features are compatible with older versions of the application.
14. What is a web server?
A web server can be described as a computer that stores web pages and distributes them. When you enter a URL into a browser, the browser contacts a web server to request the page. The page is then sent back to the browser by the web server which is displayed on the screen.
NGINX and Apache are two of the most widely used web servers by back-end apps. Web servers are also capable of hosting other resources such as videos and images.
15. What are the DRY and DIE principles?
Software developers must not duplicate code according to the DRY principle (Don't Repeat Yourself). Duplicated code can cause maintenance problems as multiple changes must be made. Similar to the DRY principle, DIE (Duplication Is Evil) goes one step further and states that even small amounts of duplication should be avoided.
16. What's the difference between GET and POST?
A GET query retrieves data from a web server. A POST query sends data to a web server. A GET request passes parameters in the URL. With a POST request parameters are included in the request's body.
17. Differentiate between software architecture and software design.
Software architecture refers to the program structure. As such, it can be understood as the bare skeleton of a program. Software design refers to the actual implementation of the code for the software requirements. So, software architecture can be considered as the program blueprint and software design can be considered as the process of how to build the program.
As far as development is concerned, software design gets into the details. Both software architecture and software design are two separate processes that work together to form an integrated development process.
18. Talk about continuous integration and continuous delivery.
Continuous integration and continuous delivery are two interconnected software engineering processes. Continuous integration is a process that takes place in an ongoing manner to ensure that the program is built and tested regularly. Continuous delivery, on the other hand, is the ongoing development process that takes place in the latter part of the program lifecycle just before production.
These two processes form a cohesive automated process that keeps the work on track and increases production speed by getting rid of the inconsistencies between the development and operations teams.
19. How can you build scalability into a software program?
Scalability is an important aspect to be considered for enhancing productivity, especially concerning higher user demands and adaptation of functions and elements to higher amounts of user data. To determine the lifetime value of a software program, one must check its scalability.
Lack of scalability warrants the need for rewriting the application with a new tech stack that adapts to the growth in audience. The scalability of a program can increase with features like cache, states, API, sort, and asynchronous programming. Moreover, tools like databases and frameworks have greater scalability than some others.
20. Why is Microservices architecture used?
Microservices architecture is characterized by integrating several small but independently deployable services into one application. It makes the operation more versatile as different programming languages can be used for writing individual services. Thus, different languages can be leveraged for different services.
Maintenance is also easier as, even though the services are integrated, they are loosely connected. The microservices architecture model works well with and is preferred by larger teams, however, it may not be completely free of challenges like debugging.
21. What are NoSQL databases? Mention different types of NoSQL databases.
With the increase in big data, the internet has become a complex place. NoSQL databases help solve this problem. The NoSQL databases are neither traditional nor relational database management systems.
NoSQL stands for ‘Not Only SQL’. With the growing amounts of data, a large percentage, close to 85%, is unstructured, messy, and complicated. NoSQL database handles and sorts such data. Thus, NoSQL offers a storage and retrieval mechanism for data that is modeled using other means and not the tabular relations used in the Relational Database Management System (RDBMS).
Types of NoSQL databases include
- Graph
- Key-value
- Document oriented
- Column-oriented
22. Explain SQL injection.
An SQL injection can destroy the database by injecting malicious code or hack your database by injecting a hacking code. This occurs because there is little separation between the program code and the user input. SQL injection is a common type of injection attack on databases.
An injection attack can be prevented in the following ways:
- Prepare statements with queries that have defined parameters
- Have pre-defined and stored procedures
- Have a validation process for the input whereby you can blacklist or whitelist the input
- Use the principle of least privilege, i.e. do not provide premium administrator type access to the public database server. So, even if the hacker is able to hack into the application, it would not compromise the integrity of the database as they wouldn’t be able to access it.
23. Differentiate between acceptance and functional tests.
The differences are as follows:
Functional testing: Functional testing is done to verify whether the product, especially the application, is working as required or not. It ascertains whether the created software meets the business needs.
Acceptance testing: Acceptance testing is done to validate whether or not you built the right product. It validates that the product meets the customer’s needs. Acceptance tests ascertain that the user (customer) is actually benefiting from the product and is using it for the purpose it was meant for.
24. Mention some performance testing steps.
Below are some performance testing steps:
- Determine the environment for testing
- Finalize what performance metrics to use
- Create a plan and design for the performance test
- Configure the environment for the test
- Implement the design for the test
- Execute the performance tests
- Conduct test analysis, create test report, and advise retest for underperforming applications
25. Mention some advantages of web services.
Web services have the following advantages:
- Interoperability: Web services can be accessed over the network and run using HTTP/SOAP protocols. For transporting data, web services use XML/JSON, thus, they can be rendered using different programming languages.For example, a web service that is written in Java is accessible over the network, runs on HTTP/SOAP protocol, and uses XML/JSON to transport data, hence it can be developed in any programming language. Web service can be written in java programming with PHP as the client and vice versa.
- Reusability: Many client applications can use the same web service at the same time.
- Loose Coupling: Web services client code does not depend on server code, thus, loose coupling is possible in the application.
- It is easy to deploy and integrate, exactly like web applications.
- Several versions of the service can run at the same time.
26. Differentiate between clustered and non-clustered indexes?
A clustered index physically stores the rows on the disk in the order they appear on the index. Thus, only one clustered index is possible. A clustered index tells the database to store values that are close next to one another on the disk.
A non-clustered index has a second list with pointers to the physical rows. There can be several non-clustered indexes, every new index increases the time for writing new records.
If all columns are needed as is, then reading from a Clustered index is faster. You need not go to the index and table in that order. However, if the data must be rearranged, writing to a table with a clustered index can slow down the process.
27. What are some common problems with ORMs?
ORMs often have performance issues, incorrect data mapping, and difficulties with complex queries.
28. What is the CAP theorem?
CAP theorem which is also known as Brewer’s theorem states that a distributed databases system can only guarantee two of the three characteristics: consistency, availability, and partition tolerance.
This theorem is the foundation for modern distributed computing methods. The world's largest traffic companies (e.g. Amazon, Google, Facebook) use this basis for their application architecture.
29. What does REST stand for?
Representational States Transfer (REST) is a software architecture that specifies how an API should operate. REST was first created to provide a framework for managing communication on complex networks like the internet.
30. What is object-oriented programming?
Object-oriented Programming (OOP), a type of computer programming, organizes software design around objects or data rather than functions and logic.
31. How do you capitalize the first letter in a string in Python?
The capitalize() method in Python capitalizes the first letter in a string. If the string contains a capital letter at its beginning, it returns the original string.
32. How to convert a string to all lowercase in Python?
The lower() function is used to convert a string into lowercase.

Output: abcd
33. How to delete files in Python?
To delete the file in Python, the OS module must be imported. Then, you have to utilize the os.remove() function.

Wrapping up
Now, you know the types of questions that can be asked and can prepare accordingly. The interview is often conducted in multiple parts. Back-end technical interview questions are only one part. When hiring back-end developer candidates, there are many factors to take into account. Candidates must also be ready for questions regarding communication, team management, and social skills. The recruiters need to ensure that the back-end developer they hire fits the company's culture.
You can apply for positions as a senior back-end developer in Silicon Valley companies by taking the Turing test. Turing is also available to help you hire the top 1% of back-end programmers.
Hire Silicon Valley-caliber Backend developers at half the cost
Turing helps companies match with top quality remote JavaScript developers from across the world in a matter of days. Scale your engineering team with pre-vetted JavaScript developers at the push of a buttton.
Tired of interviewing candidates to find the best developers?
Hire top vetted developers within 4 days.
Leading enterprises, startups, and more have trusted Turing
Check out more interview questions
Hire remote developers
Tell us the skills you need and we'll find the best developer for you in days, not weeks.










