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 Developer archetypes
Business Logic/API Engineer
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
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.
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
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).