Understanding & Hiring Back-End Developers

What is a Back-End Developer?

A back-end developer writes code that runs on the servers that the end users' browsers or devices will connect to. It usually involves storing and retrieving the data needed to display the application or web page, as well as writing the logic that determines its behavior.

What skills are required to be a Back-End Developer?

Back end developers can work in any programming language, but some of the most popular ones are Ruby, PHP, Python, JavaScript, Java, and C++ . They also need to understand technologies like databases, caches, and messaging queues.

Back-End Developer archetypes

Business Logic/API Engineer

Archetype

This is a back-end engineer who focuses on building APIs and supporting complex business logic. They are familiar with multiple back-end programming languages. Databases are an area of strength. They are strong in system design (caching, API design, schema design). They likely have some familiarity with DevOps (deployment, containerization, CI/CD). However, their experience stops short of true large-scale distributed systems.

CS-Focused Back-End Engineer

Archetype

This is a back-end engineer with strong CS fundamentals. They are comfortable doing complexity analysis and reasoning about binary heap data structures. They enjoy solving mathy programming problems. Their experience is in back-end engineering (and they want to work in this area). However, what stands out about them is their skill solving hard programming problems.

Data Engineer

Archetype

This is a back-end engineer who works on data systems. This is not a machine learning specialist, or data scientist. Rather, this is an engineer who builds data systems to support machine learning pipelines (or other types of data systems). They may be familiar with technologies like Spark or Hadoop. They may have some knowledge of machine learning. However, what stands out about them is their experience building data pipelines.

Scaling/Distributed Systems Engineer

Archetype

This is a back-end engineer with experience with high-scale systems. They are familiar with multiple back-end programming languages. Their area of strength is system design, extending to discussions of horizontal scaling—sharding, consistent hashing, read replicas, heartbeat protocols, etc. They can explain how Akamai uses a bloom filter to optimize edge node performance. Interestingly, they may not have as much experience with basic low-scale web applications (because most of their experience may be at a large company).

Browse all engineers